wp-tag-order
                                
                                 wp-tag-order copied to clipboard
                                
                                    wp-tag-order copied to clipboard
                            
                            
                            
                        ↕︎ Order tags independently in each posts (not site-globally) on WordPress.
 WP Tag Order
 WP Tag Order
Order tags independently in each posts (not site-globally) on WordPress with simple Drag-and-Drop ↕︎ sortable feature.
 
[!IMPORTANT] This plugin is NOT compatible with Gutenberg on WordPress 5.x. Consider using Classic Editor Plugin.
Get Started
- Clone this Repo into your wp-content/pluginsdirectory.
$ cd /path-to-your/wp-content/plugins/
$ git clone [email protected]:sectsect/wp-tag-order.git
- Activate the plugin through the Pluginsmenu in WordPress.
- Go to Settings->WP Tag Orderpage to select which taxonomies to enable ordering for.
Features
- Support post_tagandnon-hierarchical taxonomy.
- Support multiple non-hierarchical taxonomiesin a post-type.
- Support Multisite.
Notes
- When creating a new post, you need to save it once to enable tag ordering.
- To apply ordering to existing posts, "Add and Remove" any tag once.
- To bulk-update multiple posts at once, go to Settings->WP Tag Orderpage and click 'Apply' under the Advanced Settings.
- Tested on WordPress v6.3.1.
Requirements
- WordPress 5.6+
- PHP 8.0+
APIs
| Function | Description | 
|---|---|
| get_the_tags_ordered() | Based on get_the_tags()- Codex | 
| get_the_terms_ordered() | Based on get_the_terms()- Codex | 
| get_the_tag_list_ordered() | Based on get_the_tag_list()- Codex | 
| get_the_term_list_ordered() | Based on get_the_term_list()- Codex | 
| the_tags_ordered() | Based on the_tags()- Codex | 
| the_terms_ordered() | Based on the_terms()- Codex | 
Usage Example
get_the_tags_ordered()
<?php
$terms = get_the_tags_ordered();
if ( $terms && ! is_wp_error( $terms ) ) :
?>
<ul>
    <?php foreach ( $terms as $term ) : ?>
        <li>
            <a href="<?php echo get_term_link( $term->slug, 'post_tag' ); ?>">
                <?php echo $term->name; ?>
            </a>
        </li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>
get_the_terms_ordered()
<?php
$terms = get_the_terms_ordered( $post->ID, 'post_tag' );
if ( $terms && ! is_wp_error( $terms ) ) :
?>
<ul>
    <?php foreach ( $terms as $term ) : ?>
        <li>
            <a href="<?php echo get_term_link( $term->slug, 'post_tag' ); ?>">
                <?php echo $term->name; ?>
            </a>
        </li>
    <?php endforeach; ?>
</ul>
<?php endif; ?>
get_the_tag_list_ordered()
<?php echo get_the_tag_list_ordered(); ?>
get_the_term_list_ordered()
<?php echo get_the_term_list_ordered( $post->ID, 'post_tag' ); ?>
the_tags_ordered()
<?php the_tags_ordered(); ?>
the_terms_ordered()
<?php the_terms_ordered( $post->ID, 'post_tag' ); ?>
For Developers
- 
The ordered tag data is serialized and stored in the wp_postmetatable under keys likewp-tag-order-{taxonomy}.meta_id post_id meta_key meta_value 19 7 wp-tag-order-post_tag s:91:"a:7:{i:0;s:1:"7";i:1;s:1:"5";i:2;s:2:"10";i:3;s:1:"4";i:4;s:1:"6";i:5;s:1:"8";i:6;s:1:"9";}";
- 
This Plugin does not hosting on the wordpress.org repo in order to prevent a flood of support requests from wide audience. Your feedback is welcome. 
Change log
See CHANGELOG file.
License
See LICENSE file.
✌️
A little project by @sectsect