{"id":334454,"date":"2026-07-10T02:18:11","date_gmt":"2026-07-10T02:18:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fieldify\/"},"modified":"2026-07-10T05:14:59","modified_gmt":"2026-07-10T05:14:59","slug":"plinth-custom-fields","status":"publish","type":"plugin","link":"https:\/\/ru.wordpress.org\/plugins\/plinth-custom-fields\/","author":23525798,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"trunk","tested":"7.0.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Plinth Custom Fields","header_author":"Shobhit Verma","header_description":"Custom fields manager with repeater support, location rules, and JSON import\/export \u2014 no other plugins required.","assets_banners_color":"565e6d","last_updated":"2026-07-10 05:14:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/shobhitverma.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3602204,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3602204,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3602204,"resolution":"1544x500","location":"assets","locale":"","width":1540,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3602204,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3602204,"resolution":"1","location":"assets","locale":"","width":2612,"height":3245},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3602204,"resolution":"2","location":"assets","locale":"","width":2612,"height":4268},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3602204,"resolution":"3","location":"assets","locale":"","width":2558,"height":1212}},"screenshots":{"1":"Field Groups list page","2":"Field group editor \u2014 adding fields and location rules","3":"Repeater field on the post edit screen"}},"plugin_section":[],"plugin_tags":[2010,1487,249083,1264,2244],"plugin_category":[],"plugin_contributors":[270776],"plugin_business_model":[],"class_list":["post-334454","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-fields","plugin_tags-custom-post-types","plugin_tags-field-groups","plugin_tags-meta-box","plugin_tags-repeater","plugin_contributors-shobhitverma","plugin_committers-shobhitverma"],"banners":{"banner":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/banner-772x250.png?rev=3602204","banner_2x":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/banner-1544x500.png?rev=3602204","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/icon-128x128.png?rev=3602204","icon_2x":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/icon-256x256.png?rev=3602204","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/screenshot-1.png?rev=3602204","caption":"Field Groups list page"},{"src":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/screenshot-2.png?rev=3602204","caption":"Field group editor \u2014 adding fields and location rules"},{"src":"https:\/\/ps.w.org\/plinth-custom-fields\/assets\/screenshot-3.png?rev=3602204","caption":"Repeater field on the post edit screen"}],"raw_content":"<!--section=description-->\n<p>Plinth Custom Fields lets you build custom field groups and attach them to post types, page templates, specific pages, or post statuses \u2014 without depending on any other plugin.<\/p>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li>12 field types: Text, Textarea, Number, Email, URL, Image, Select, Radio, Checkbox, True\/False, WYSIWYG Editor, and Repeater<\/li>\n<li>Repeater fields with drag-to-reorder rows and nested sub-fields<\/li>\n<li>Location rules with AND\/OR logic \u2014 show fields only where you need them<\/li>\n<li>Import and export field groups as JSON, so you can move configurations between sites<\/li>\n<li>Template functions for theme developers: <code>plinth_get_field()<\/code>, <code>plinth_the_field()<\/code>, <code>plinth_get_image()<\/code>, <code>plinth_get_rows()<\/code>, <code>plinth_have_rows()<\/code>, <code>plinth_the_row()<\/code>, <code>plinth_get_sub_field()<\/code>, <code>plinth_the_sub_field()<\/code><\/li>\n<li>All data stored in standard <code>wp_postmeta<\/code>, prefixed with <code>_plinth_<\/code> so it never collides with other plugins<\/li>\n<li>Zero external dependencies \u2014 works entirely on top of WordPress core<\/li>\n<\/ul>\n\n<h4>For Theme Developers<\/h4>\n\n<p>Once a field group is created and assigned to a location, pull the values into any template file:<\/p>\n\n<pre><code>&lt;?php\n$title = plinth_get_field( 'hero_title' );\n$image = plinth_get_image( 'hero_image', null, 'large' );\n\nif ( plinth_have_rows( 'team_members' ) ) :\n    while ( plinth_rows_remaining() ) : plinth_the_row(); ?&gt;\n        &lt;h3&gt;&lt;?php plinth_the_sub_field( 'name' ); ?&gt;&lt;\/h3&gt;\n    &lt;?php endwhile;\nendif;\n?&gt;\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>plinth-custom-fields<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>Plinth Custom Fields \u2192 Add New<\/strong> to create your first field group.<\/li>\n<li>Set Location Rules to choose where the field group should appear.<\/li>\n<li>Edit a matching post or page to see your custom fields in a meta box.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20any%20other%20plugin%3F\"><h3>Does this require any other plugin?<\/h3><\/dt>\n<dd><p>No. Plinth Custom Fields is fully self-contained and has zero dependencies on any other plugin.<\/p><\/dd>\n<dt id=\"can%20i%20move%20field%20groups%20between%20sites%3F\"><h3>Can I move field groups between sites?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Plinth Custom Fields \u2192 Import \/ Export<\/strong> to export a JSON file of your field groups, then import that same file on another site.<\/p><\/dd>\n<dt id=\"how%20do%20repeater%20fields%20store%20their%20data%3F\"><h3>How do repeater fields store their data?<\/h3><\/dt>\n<dd><p>Repeater rows are stored as individual <code>wp_postmeta<\/code> rows (a row-count meta key plus one meta key per cell), which keeps the data simple to query directly from the database if needed.<\/p><\/dd>\n<dt id=\"will%20this%20conflict%20with%20my%20theme%27s%20existing%20custom%20fields%3F\"><h3>Will this conflict with my theme's existing custom fields?<\/h3><\/dt>\n<dd><p>All meta keys are prefixed with <code>_plinth_<\/code> and the leading underscore keeps them out of WordPress's native Custom Fields panel, minimizing collision risk with other plugins or theme code.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>12 field types including Repeater with drag-sort and nested sub-fields.<\/li>\n<li>Location rules engine with AND\/OR logic.<\/li>\n<li>JSON import\/export for field groups.<\/li>\n<li>Template functions for theme developers.<\/li>\n<\/ul>","raw_excerpt":"A self-contained custom fields manager with repeater support, location rules, and JSON import\/export \u2014 no third-party dependencies required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/334454","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=334454"}],"author":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shobhitverma"}],"wp:attachment":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=334454"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=334454"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=334454"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=334454"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=334454"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=334454"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}