{"id":304955,"date":"2026-05-05T10:00:09","date_gmt":"2026-05-05T10:00:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/term-order-per-post\/"},"modified":"2026-05-05T09:59:43","modified_gmt":"2026-05-05T09:59:43","slug":"whaze-term-order-for-posts","status":"publish","type":"plugin","link":"https:\/\/pcm.wordpress.org\/plugins\/whaze-term-order-for-posts\/","author":15469386,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"8.2","requires_plugins":null,"header_name":"Whaze Term Order for Posts","header_author":"J\u00e9r\u00f4me Buquet","header_description":"Order taxonomy terms individually per post, directly from the Gutenberg editor sidebar.","assets_banners_color":"546174","last_updated":"2026-05-05 09:59:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/whaze\/whaze-term-order-for-posts","header_author_uri":"https:\/\/profiles.wordpress.org\/whaze\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"whaze","date":"2026-05-05 09:59:43"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3523180,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3523180,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3523180,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3523180,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[148857,148076,1896,91,1901],"plugin_category":[57],"plugin_contributors":[261914],"plugin_business_model":[],"class_list":["post-304955","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-gutenberg","plugin_tags-order","plugin_tags-taxonomy","plugin_tags-terms","plugin_category-taxonomy","plugin_contributors-whaze","plugin_committers-whaze"],"banners":{"banner":"https:\/\/ps.w.org\/whaze-term-order-for-posts\/assets\/banner-772x250.png?rev=3523180","banner_2x":"https:\/\/ps.w.org\/whaze-term-order-for-posts\/assets\/banner-1544x500.png?rev=3523180","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/whaze-term-order-for-posts\/assets\/icon-128x128.png?rev=3523180","icon_2x":"https:\/\/ps.w.org\/whaze-term-order-for-posts\/assets\/icon-256x256.png?rev=3523180","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Whaze Term Order for Posts lets developers enable per-post custom ordering of taxonomy terms directly from the Gutenberg editor sidebar. The plugin is entirely code-driven: no settings page, no configuration UI.<\/p>\n\n<p><strong>For developers:<\/strong><\/p>\n\n<p>Register a post type \/ taxonomy combination:<\/p>\n\n<pre><code>add_action( 'init', function () {\n    whaze_term_order_for_posts_register( 'post', 'category' );\n    whaze_term_order_for_posts_register( 'movie', 'genre' );\n} );\n<\/code><\/pre>\n\n<p>Retrieve ordered terms in templates or REST:<\/p>\n\n<pre><code>$terms = whaze_term_order_for_posts_get_terms( get_the_ID(), 'category' );\n<\/code><\/pre>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Drag-and-drop reordering panel in the block editor sidebar.<\/li>\n<li>Order saved automatically with the post \u2014 no separate AJAX call.<\/li>\n<li>Falls back to default WordPress term order when no custom order is set.<\/li>\n<li>Unused order entries are cleaned up automatically when terms are removed.<\/li>\n<li>REST API field <code>term_order<\/code> for headless use cases.<\/li>\n<li>Fully translatable (i18n-ready).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Call <code>whaze_term_order_for_posts_register()<\/code> in your theme or plugin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20custom%20post%20types%20and%20taxonomies%3F\"><h3>Does this work with custom post types and taxonomies?<\/h3><\/dt>\n<dd><p>Yes. Pass any registered post type and taxonomy slug to <code>whaze_term_order_for_posts_register()<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20no%20order%20is%20defined%20for%20a%20post%3F\"><h3>What happens if no order is defined for a post?<\/h3><\/dt>\n<dd><p>whaze_term_order_for_posts_get_terms() falls back to the standard <code>wp_get_object_terms()<\/code> result \u2014 the plugin is completely transparent.<\/p><\/dd>\n<dt id=\"is%20this%20multisite%20compatible%3F\"><h3>Is this multisite compatible?<\/h3><\/dt>\n<dd><p>Yes. The order is stored as post meta and is therefore scoped to each site in the network.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Order taxonomy terms individually per post, directly from the Gutenberg editor sidebar.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/304955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=304955"}],"author":[{"embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/whaze"}],"wp:attachment":[{"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=304955"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=304955"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=304955"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=304955"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=304955"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcm.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=304955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}