{"id":231347,"date":"2025-05-05T12:34:54","date_gmt":"2025-05-05T12:34:54","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/set-tag-order\/"},"modified":"2026-08-23T15:52:02","modified_gmt":"2026-08-23T15:52:02","slug":"set-tag-order","status":"publish","type":"plugin","link":"https:\/\/te.wordpress.org\/plugins\/set-tag-order\/","author":21135085,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Set Tag Order","header_author":"Adam Greenwell","header_description":"Allows setting custom order for post tags in the block editor","assets_banners_color":"","last_updated":"2026-08-23 15:52:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/adamgreenwell\/set-tag-order","header_author_uri":"https:\/\/adamgreenwell.com","rating":0,"author_block_rating":0,"active_installs":20,"downloads":842,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"adamgreenwell","date":"2025-05-05 12:39:56"},"1.1.2":{"tag":"1.1.2","author":"adamgreenwell","date":"2025-10-17 17:56:31"},"1.1.3":{"tag":"1.1.3","author":"adamgreenwell","date":"2026-06-05 18:03:31"},"1.2.0":{"tag":"1.2.0","author":"adamgreenwell","date":"2026-08-23 15:37:01"},"1.2.1":{"tag":"1.2.1","author":"adamgreenwell","date":"2026-08-23 15:52:02"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1","1.1.2","1.1.3","1.2.0","1.2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[148857,155767,9857,91],"plugin_category":[57],"plugin_contributors":[241260],"plugin_business_model":[],"class_list":["post-231347","plugin","type-plugin","status-publish","hentry","plugin_tags-block-editor","plugin_tags-classic-editor","plugin_tags-post-tags","plugin_tags-taxonomy","plugin_category-taxonomy","plugin_contributors-adamgreenwell","plugin_committers-adamgreenwell"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/set-tag-order.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>The Set Tag Order plugin enhances the WordPress tagging system by allowing users to specify a custom display order for post tags in both the Block Editor and Classic Editor. This plugin provides a user-friendly interface for rearranging tags using drag-and-drop functionality, ensuring that tags are displayed in the desired order on the front end of the website.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Custom Tag Order<\/strong>: Easily rearrange tags in the desired order for posts, providing better control over how tags are presented to users.<\/li>\n<li><strong>Custom Tag Separator<\/strong>: Specify a custom character to separate tags in the output, allowing for greater flexibility in how tags are displayed. Users can leave this field empty for no separator.<\/li>\n<li><strong>Custom CSS Classes<\/strong>: Add custom CSS classes to tag links, enabling users to style tags according to their theme's design. This feature allows for separation of multiple classes with spaces.<\/li>\n<li><strong>Compatibility<\/strong>: Works seamlessly with both the Classic Editor and the Block Editor, ensuring a consistent user experience across different editing environments.<\/li>\n<li><strong>Debug Mode<\/strong>: Debug mode can be enabled to log diagnostic information, which is useful for troubleshooting and development purposes.<\/li>\n<\/ul>\n\n<h3>Usage<\/h3>\n\n<p>After installation, you can access the settings under Settings &gt; Set Tag Order.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your admin panel, go to Plugins &gt; and click the Add New button.<\/li>\n<li>Click Upload Plugin and Choose File, then select the plugin .zip file. Click Install Now.<\/li>\n<li>Click Activate to use your new plugin right away.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Run the settagord_ordered_tags filter exactly once per render, and on posts that have no saved order. Callbacks previously never saw unordered posts, and ran twice on ordered ones.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Add WordPress 7.1 compatibility, including the always-iframed editor and the jQuery UI 1.14.2 update.<\/li>\n<li>Stop replacing the core\/post-terms block renderer. Tag order and CSS classes are now applied before the block renders, so the block keeps its own wrapper markup, alignment, link colour, block supports, and prefix and suffix text.<\/li>\n<li>Apply custom tag CSS classes without rebuilding the link, preserving rel=\"tag\" and attributes added by other plugins.<\/li>\n<li>Fix tag order synchronization when loading a post in the Classic Editor, which never ran because it required a nonce WordPress does not issue.<\/li>\n<li>Replace the custom tag separator only between tags, no longer inside tag names or URLs.<\/li>\n<li>Load the separator stylesheet from a plugin-owned handle so it still applies on themes that do not load the core block styles.<\/li>\n<li>Reduce front-end overhead: debug logging no longer formats messages when debug mode is off, and the supported post type lookup is cached per request.<\/li>\n<li>Add accessible labels to the Block Editor reorder buttons and translate the panel strings.<\/li>\n<li>Raise the minimum WordPress version to 6.3, which the plugin already required in practice.<\/li>\n<li>Remove a REST API filter that could never run, and an unused separator filter for a hook that does not exist in WordPress.<\/li>\n<li>Add keyboard reordering to the Classic Editor tag box. Reordering was previously drag-only, leaving no way to change tag order without a mouse.<\/li>\n<li>Add a Sort A-Z control to both editors.<\/li>\n<li>Announce reordering, adding, and removing to screen readers.<\/li>\n<li>Translate the plugin. Settings, the tag box, and the editor panel were previously hardcoded English despite the plugin declaring a text domain; a translation template now ships in languages\/.<\/li>\n<li>Add a Settings link to the plugin's row on the Plugins screen.<\/li>\n<li>Add uninstall handling so deleting the plugin removes its options and tag order metadata, across all sites on multisite.<\/li>\n<li>Add settagord_ordered_tags, settagord_separator, and settagord_link_classes filters for theme and plugin authors.<\/li>\n<li>Follow the editor colour scheme in both editors instead of using fixed greys.<\/li>\n<li>Validate the Tag CSS Class setting as CSS class names rather than free text.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Add Classic Editor support for creating new tags from the custom tag box.<\/li>\n<li>Improve tag order synchronization when tags are added or removed.<\/li>\n<li>Preserve tag order metadata saved by older plugin versions.<\/li>\n<li>Restore legacy template helpers for existing theme integrations.<\/li>\n<li>Add PHPUnit and GitHub Actions coverage for WordPress 7.0 compatibility.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fix conflict with core\/post-terms default block<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed JavaScript enqueueing to use WordPress standards<\/li>\n<li>Refactor function names to prevent conflicts with other plugins<\/li>\n<li>Remove restricted verbs from function names<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Refactored the plugin to follow WordPress plugin development guidelines.<\/li>\n<li>Improved sanitization and validation for all input\/output variables.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added improved support for block-based themes like Twenty Twenty-Five<\/li>\n<li>Fixed issue with tags not displaying in post-terms blocks<\/li>\n<li>Improved DOM manipulation for more reliable class and separator handling<\/li>\n<li>Implemented custom block renderer for better tag order control<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Improve classic or block editor usage detection<\/li>\n<li>Retain tag integrity when switching editors<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added support for Classic Editor<\/li>\n<li>Fixed application of tag classes and separators<\/li>\n<li>Added explicit debug log option<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Refactor GitHub Updater class to prevent conflict with other plugins<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Update block editor panel presentation with more clear UI elements<\/li>\n<li>Better initialization before a tag order is set<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Allows a user to set a specific post tag order in either the classic or block editor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/231347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=231347"}],"author":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/adamgreenwell"}],"wp:attachment":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=231347"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=231347"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=231347"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=231347"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=231347"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=231347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}