{"id":35039,"date":"2015-03-12T12:03:07","date_gmt":"2015-03-12T12:03:07","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/page-parts\/"},"modified":"2025-11-26T13:13:17","modified_gmt":"2025-11-26T13:13:17","slug":"page-parts","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/page-parts\/","author":123724,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.5","stable_tag":"1.5","tested":"6.8.5","requires":"3.9","requires_php":"","requires_plugins":null,"header_name":"Page Parts","header_author":"Ben Huson","header_description":"","assets_banners_color":"9ecf0d","last_updated":"2025-11-26 13:13:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/benhuson\/page-parts","header_author_uri":"https:\/\/github.com\/benhuson","rating":5,"author_block_rating":0,"active_installs":50,"downloads":6727,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.7":{"tag":"0.7","author":"husobj","date":"2015-04-23 07:57:08"},"0.8":{"tag":"0.8","author":"husobj","date":"2015-09-18 10:33:41"},"0.9":{"tag":"0.9","author":"husobj","date":"2016-08-04 13:39:25"},"1.0":{"tag":"1.0","author":"husobj","date":"2016-09-13 08:52:17"},"1.1":{"tag":"1.1","author":"husobj","date":"2017-02-01 00:00:29"},"1.2":{"tag":"1.2","author":"husobj","date":"2017-04-07 12:37:35"},"1.3":{"tag":"1.3","author":"husobj","date":"2018-05-03 08:18:57"},"1.3.1":{"tag":"1.3.1","author":"husobj","date":"2019-11-05 14:07:03"},"1.4":{"tag":"1.4","author":"husobj","date":"2021-12-28 23:52:09"},"1.4.1":{"tag":"1.4.1","author":"husobj","date":"2021-12-29 23:21:27"},"1.4.2":{"tag":"1.4.2","author":"husobj","date":"2023-03-22 16:38:06"},"1.4.3":{"tag":"1.4.3","author":"husobj","date":"2024-02-07 20:18:36"},"1.4.4":{"tag":"1.4.4","author":"husobj","date":"2024-11-21 21:23:48"},"1.4.5":{"tag":"1.4.5","author":"husobj","date":"2024-11-29 09:07:33"},"1.5":{"tag":"1.5","author":"husobj","date":"2025-11-26 13:13:17"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"1"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1111054,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1111054,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":1111054,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1111054,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.7","0.8","0.9","1.0","1.1","1.2","1.3","1.3.1","1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1111054,"resolution":"1","location":"assets","locale":"","width":735,"height":203},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1111054,"resolution":"2","location":"assets","locale":"","width":735,"height":296},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1111054,"resolution":"3","location":"assets","locale":"","width":735,"height":346},"screenshot-4.png":{"filename":"screenshot-4.png","revision":1111054,"resolution":"4","location":"assets","locale":"","width":735,"height":152},"screenshot-5.png":{"filename":"screenshot-5.png","revision":1111054,"resolution":"5","location":"assets","locale":"","width":300,"height":151}},"screenshots":{"1":"Page Parts meta box.","2":"Page Parts meta box with 3 Page Parts.","3":"Support for Page Part theme locations (like theme_location for WordPress Menus) and featured images.","4":"Page Part URLs are rewritten to their parent page passing the page part slug as an anchor.","5":"Page Part meta box with link back to parent page and option to add a new sibling page part."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[225,243],"plugin_category":[],"plugin_contributors":[77999],"plugin_business_model":[],"class_list":["post-35039","plugin","type-plugin","status-publish","hentry","plugin_tags-cms","plugin_tags-pages","plugin_contributors-husobj","plugin_committers-husobj"],"banners":{"banner":"https:\/\/ps.w.org\/page-parts\/assets\/banner-772x250.png?rev=1111054","banner_2x":"https:\/\/ps.w.org\/page-parts\/assets\/banner-1544x500.png?rev=1111054","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/page-parts\/assets\/icon-128x128.png?rev=1111054","icon_2x":"https:\/\/ps.w.org\/page-parts\/assets\/icon-256x256.png?rev=1111054","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/page-parts\/assets\/screenshot-1.png?rev=1111054","caption":"Page Parts meta box."},{"src":"https:\/\/ps.w.org\/page-parts\/assets\/screenshot-2.png?rev=1111054","caption":"Page Parts meta box with 3 Page Parts."},{"src":"https:\/\/ps.w.org\/page-parts\/assets\/screenshot-3.png?rev=1111054","caption":"Support for Page Part theme locations (like theme_location for WordPress Menus) and featured images."},{"src":"https:\/\/ps.w.org\/page-parts\/assets\/screenshot-4.png?rev=1111054","caption":"Page Part URLs are rewritten to their parent page passing the page part slug as an anchor."},{"src":"https:\/\/ps.w.org\/page-parts\/assets\/screenshot-5.png?rev=1111054","caption":"Page Part meta box with link back to parent page and option to add a new sibling page part."}],"raw_content":"<!--section=description-->\n<p>Manage subsections of a page. Create 'page parts' as children of a page to display in different areas of your templates. Requires WordPress 3.4.<\/p>\n\n<p>For more information, view the documentation link on the admin plugins page after activating the plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>plugin-name.php<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20do%20i%20order%20page%20parts%3F'><h3>How do I order Page Parts?<\/h3><\/dt>\n<dd><p>Either enter numbers in the order fields or drag them into the order you want.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>Unreleased<\/h4>\n\n<h4>1.5<\/h4>\n\n<p><strong>Added<\/strong>\n- Page part templates now support in child themes.<\/p>\n\n<h4>1.4.5<\/h4>\n\n<p><strong>Fixed<\/strong>\n- Fix error caused by incorrectly implemented wp_kses().<\/p>\n\n<h4>1.4.4<\/h4>\n\n<p><strong>Security<\/strong>\n- Escape URLs and HTML output to prevent XSS.<\/p>\n\n<h4>1.4.3<\/h4>\n\n<p><strong>Fixed<\/strong>\n- Page parts now work with parent set to pending\/private\/future\/trash status.<\/p>\n\n<h4>1.4.2<\/h4>\n\n<p><strong>Fixed<\/strong>\n- Fix compatibility with WPML plugin where page part translations are duplicated.<\/p>\n\n<h4>1.4.1<\/h4>\n\n<p><strong>Fixed<\/strong>\n- Fix deprecated <code>contextual_help<\/code> implementation.<\/p>\n\n<h4>1.4<\/h4>\n\n<p><strong>Added<\/strong>\n- Apply <code>page_part_theme_templates_depth<\/code> filter when getting template images.\n- Tested up to WordPress 5.8.2<\/p>\n\n<p><strong>Fixed<\/strong>\n- Fix deprecated jQuery ready.<\/p>\n\n<h4>1.3.1<\/h4>\n\n<p><strong>Fixed<\/strong>\n- Fix page part permalink when parent is a child of other pages.<\/p>\n\n<h4>1.3<\/h4>\n\n<p><strong>Added<\/strong>\n- Add default template image filter <code>page_part_theme_default_template_image<\/code>.\n- Allow found templates to be filtered before locating using the <code>page_part_locate_templates<\/code> filter.\n- Added <code>page_part_theme_templates<\/code> filter to change the maximum folder depth where page part templates can be found in the theme.\n- Add Template column to page parts admin table.<\/p>\n\n<p><strong>Changed<\/strong>\n- Search 2 levels deep for Page Part templates in theme folder.<\/p>\n\n<p><strong>Fixed<\/strong>\n- Fix revisions not saving.<\/p>\n\n<h4>1.2<\/h4>\n\n<p><strong>Added<\/strong>\n* Add <code>page_part_show_default_template<\/code> filter.\n* Pass <code>$page-part<\/code> object to <code>page_part_theme_templates<\/code> filter.<\/p>\n\n<p><strong>Changed<\/strong>\n* Use __construct() for class constructor methods.<\/p>\n\n<h4>1.1<\/h4>\n\n<p><strong>Added<\/strong>\n* Add <code>page-attributes<\/code> meta box to Page Parts (includes \"order\" field).\n* Add <code>page_parts_default_template_name<\/code> filter so that the Default Template name can be changed in admin menus.\n* Add <code>page-part-default<\/code> class to page parts with no template assigned.<\/p>\n\n<h4>1.0<\/h4>\n\n<p><strong>Added<\/strong>\n* Add support for Page Part templates.\n* Show parent hierarchy in page parts admin.<\/p>\n\n<p><strong>Changed<\/strong>\n* Improved documentation accessible via the plugins admin page.\n* Use wp_update_post() when updating <code>menu_order<\/code> via AJAX.<\/p>\n\n<p><strong>Fixed<\/strong>\n* If page part has no title, show \u201c(no title)\u201d in admin edit list table.<\/p>\n\n<h4>0.9<\/h4>\n\n<p><strong>Changed<\/strong>\n* Better handling of default permalinks with anchors (where page part is a child of another page part).<\/p>\n\n<h4>0.8<\/h4>\n\n<p><strong>Added<\/strong>\n* Add option to set parent ID manually (if page part is not connected to a post).\n* Add page part column to post type admin pages.<\/p>\n\n<p><strong>Changed<\/strong>\n* Don't show Page Parts meta box in admin nav menus.<\/p>\n\n<p><strong>Fixed<\/strong>\n* Textdomain should be a string - using a variable causes issues for parsers.<\/p>\n\n<p><strong>Security<\/strong>\n* Check and escape filtered URLs.<\/p>\n\n<h4>0.7<\/h4>\n\n<p><strong>Added<\/strong>\n* Added API to specify theme locations.\n* Added theme locations documentation.<\/p>\n\n<p><strong>Security<\/strong>\n* Tightened up AJAX security with better POST validation and nonces.<\/p>\n\n<h4>0.6<\/h4>\n\n<p><strong>Added<\/strong>\n* Add \"Add new page part\" button on page parts to add a new part to the parent.\n* Add support for author, excerpt, custom-fields and revisions.\n* Added contextual documentation.\n* Added <code>page-parts<\/code> constant.<\/p>\n\n<h4>0.5<\/h4>\n\n<p><strong>Added<\/strong>\n* Add plugin documentation (link on plugins page).\n* Add <code>page_parts_supported_post_types<\/code> filter to enable support for other post types.\n* Added <code>page_parts_admin_columns<\/code> and <code>page_parts_admin_column_{$column_name}<\/code> filters for adding extra columns to the page parts table.<\/p>\n\n<h4>0.4<\/h4>\n\n<p><strong>Added<\/strong>\n* Improve drag and drop interface - uses a 'handle' so as to not interfere with links etc.<\/p>\n\n<p><strong>Changed<\/strong>\n* Admin table displayed using <code>WP_List_Table<\/code> class.<\/p>\n\n<p><strong>Fixed<\/strong>\n* Order now updated immediate after drag and drop via AJAX.<\/p>\n\n<h4>0.3<\/h4>\n\n<p><strong>Added<\/strong>\n* Shows post thumbnail if available.\n* Added language support.\n* Display page part status in admin list.\n* Added <code>register_page_part_args<\/code> filter.<\/p>\n\n<h4>0.2<\/h4>\n\n<p><strong>Added<\/strong>\n* First public release.<\/p>","raw_excerpt":"Manage subsections of a page. Create &#039;page parts&#039; as children of a page to display in different areas of your templates. Requires WordPress 3.4.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/35039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=35039"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/husobj"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=35039"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=35039"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=35039"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=35039"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=35039"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=35039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}