WP_GET_POST_TERMS按不工作排序

时间:2013-02-15 作者:idontknowhow

wp\\U get\\U post\\U条款订单不工作

我的代码在这里

query_posts(array(\'post_type\' => \'product\',\'post__in\' => $product_ids,));

while (have_posts()) : the_post();
    global $post;

$args = array(\'orderby\' => \'name\', \'order\' => \'ASC\', \'fields\' => \'all\');
$product_terms = wp_get_object_terms($post->ID, \'productcategory\',$args);
if(!empty($product_terms)){
  if(!is_wp_error( $product_terms )){
    echo \'<ul>\';
    foreach($product_terms as $term){
      echo \'<li><a href="\'.get_term_link($term->slug, \'product\').\'">\'.$term->name.\'</a></li>\'; 
    }
    echo \'</ul>\';
  }
}

endwhile;
我在文档中读到,它支持数组$args按“名称”订购术语,但我不知道为什么它不起作用

1 个回复
SO网友:birgire

你的头衔是

wp_get_post_terms Order by not working
但如果您使用自定义帖子类型,则需要使用wp_get_object_terms()

我不确定您的目标是什么,但下面是一个代码示例,您可以尝试:

$my_post_type="post"; // edit this 
$my_taxonomy="category"; // edit this

$my_query = new WP_Query(array(\'post_type\' => $my_post_type,\'posts_per_page\'=>10));

if ($my_query->have_posts()) : 
    while ($my_query->have_posts()) : $my_query->the_post(); 
        $product_terms = wp_get_object_terms(get_the_ID(), $my_taxonomy, array(\'orderby\' => \'name\', \'order\' => \'ASC\', \'fields\' => \'all\'));
        if(!empty($product_terms)){
            if(!is_wp_error( $product_terms )){
                echo \'<ul>\';
                foreach($product_terms as $term){
                    echo \'<li><a href="\'.get_term_link($term->slug, $my_taxonomy).\'">\'.$term->name.\'</a></li>\'; 
                }
            echo \'</ul><hr>\';
        }
    }
    endwhile;
endif;
ps:我对你的代码做了一些修改,所以现在我们使用WP_Query() 而不是不推荐的query_posts().

Edit:

下面是一个输出示例,其中术语按nameASC

aaa
bbb
ccc
---
aaa
ccc
---
bbb
ccc
有秩序地DESC

ccc
bbb
aaa
---
ccc
aaa
---
ccc
bbb

结束

相关推荐

JQuery.accordion即使在排队时也不是一个函数

我正在尝试为我们的客户实现一个jQuery手风琴。基本上,这是本教程(http://wp.tutsplus.com/tutorials/creative-coding/create-an-faq-accordion-for-wordpress-with-jquery-ui/) 但是在排队jQuery时遇到了问题。基本上,这是试图将教程中的手风琴脚本排队的代码:-add_action( \'wp_enqueue_scripts\', \'fl_enqueue\' ); function f