为每个帖子分别排序术语

时间:2015-01-27 作者:user1706680

我有一个名为author 包含多个术语。前端的默认输出顺序为字母顺序。但我喜欢每个帖子的作者都被单独排序,例如。

第一贴:萨姆·迈耶、伊莎贝尔·普利姆、约瑟夫·彼得斯

第二名:伊莎贝尔·普利姆、约瑟夫·彼得斯、山姆·迈耶

我发现this question 有一个相对详细的答案,但我没能成功。

问题:

-我必须将术语order metabox«的»HTML放在哪里?

<?php
echo \'<ul id="the-terms">\';
$terms = get_the_terms( $post->ID, $taxonomy );
   foreach ( $terms as $term ) {
   echo \'<li class="item" id="term-\'.$term->term_id.\'">\'. $term->name .\'</li>\';        
   }
   echo \'</ul>\';
   echo \'<a href="javascript: void(0); return false;" id="save_term_order" class="button-primary">Update Order</a>\';
?>
-使上述列表可排序并使用ajax保存订单的»JavaScript«是否必须像这样排队?

<?php function myscript() { ?>
<script>

jQuery(document).ready(function() {  
// Make the term list sortable
    jQuery("#the-terms").sortable({
        items: \'.item\',
        placeholder: \'sortable-placeholder\',
        tolerance: \'pointer\',
        distance: 1,
        forcePlaceholderSize: true,
        helper: \'clone\',
        cursor: \'move\'
    });
    // Save the order using ajax        
    jQuery("#save_term_order").live("click", function() {
        var postID = $("#post_ID").val();
        jQuery.post(ajaxurl, {
        action:\'save_term_order\', 
        cache: false, 
        post_id: postID,  
        order: jQuery("#the-terms").sortable(\'toArray\').toString(),
        success: ajax_response()
       });
       return false; 
    });   
});

</script>
<?php } ?>
<?php add_action( \'wp_footer\', \'myscript\' ); ?>

1 个回复
SO网友:Steven

对于第一个问题:

-我必须将术语order metabox«的»HTML放在哪里?

看看add_meta_box codex页面,这里的示例显示了如何在posts管理页面上放置metabox。

关于你的第二个问题:

-使上述列表可排序并使用ajax保存顺序的»JavaScript«是否必须像这样排队?

您应该在插件中使用admin\\u enqueue\\u脚本。类似这样:

function my_admin_scripts(){
  // js
  wp_enqueue_script( \'my_admin_js\', plugins_url(\'myPlugin/js/my_admin.js\') );
}
add_action( \'admin_enqueue_scripts\', \'my_admin_scripts\' );
这两段代码都应该从插件中调用。Wordpress有一个创建插件的指南Writing a Plugin

结束

相关推荐

Pre_Get_Posts操作中的多个orderby

我过去能够按2个条件对查询结果进行排序(“先按状态=未售出的ASC,然后按日期描述排序结果”),如下所示:add_action( \'pre_get_posts\', \'my_get_posts\' ); function my_get_posts( $query ) { if (is_admin()){ return; } if (is_post_type_archive(\'objet\')){