使用GET_POST的Orderby分类术语ID不起作用

时间:2016-04-28 作者:joshuaiz

我正在遍历一系列自定义帖子类型,然后根据分类术语对它们进行分组。这很有效,但是我还不能按term_id.

我使用var\\u转储检查term_id 正如预期的那样。事实上,没有orderby 参数完全正常工作-它们总是按分类术语标题排序。在这种情况下,我的分类是issue_area 比如“人类服务”、“教育”等等。

我错过了什么?

以下是我正在使用的循环:

<?php

$terms = get_terms(\'issue_area\'); // this is my custom taxonomy
foreach( $terms as $term ):
$termed =  preg_replace(\'/\\d/\', \'\', $term->name ); // split out numbers
?>                          

<h3 class="expert-term"><?php echo $termed; // Print the term name ?></h3>

<?php var_dump($term->term_id); ?> <?php // this returns an int as expected ?>

    <ul class="experts">

    <?php $posts = get_posts(array(
     \'post_type\' => \'uwmc_experts\', // my cpt
     \'taxonomy\' => $term->taxonomy,
     \'term\' => $term->slug,
     \'orderby\' => $term->term_id, // tried: taxonomy_term_id
     \'order\' => \'ASC\', // tried DESC - no change
     \'numberposts\' => -1,
    ));

    foreach($posts as $post): 
     setup_postdata($post); 
    ?> 

    <?php if( have_rows(\'experts\') ): ?> <?php // acf repeater ?>

    <?php while( have_rows(\'experts\') ): the_row(); 

        $image = get_sub_field(\'expert_photo\');
        $content = get_sub_field(\'expert_bio\');
        $areas = get_sub_field(\'areas\'); ?>

        <li class="expert">

        <?php // rest of repeater loop stuff here ?>

1 个回复
SO网友:joshuaiz

而不是通过orderby 参数,我走了另一个方向。

从逻辑上讲orderby 上述参数仅适用于每个分组中的帖子,而不适用于分类术语分组本身,因此不适用于此。

我最后做的是在分类术语名称本身中添加01、02、03等,然后使用PHP将其去掉。因此,我有如下术语:

01 Human Services
02 Education 
03 Financial Stability
我按照我想要的顺序对它们进行了编号,因为它们不会动态变化。然后,我使用以下方法从术语中去掉数字,并重复更新后的术语:

<?php
// Output all Taxonomies names with their respective items
$terms = get_terms(\'issue_area\');
foreach( $terms as $term ):
$termed =  preg_replace(\'/\\d/\', \'\', $term->name );
?>                          

<h3 class="expert-term"><?php echo $termed; // Print the term name ?></h3>
显然,这比复杂的SQL查询要简单得多,并提供了所需的结果。

这是一个活生生的例子:http://pressroom.uw-mc.org/meet-our-experts/

我原来的问题也用我的答案更新了。

相关推荐

Get_Terms()在自定义帖子类型上提供了错误的自定义分类Childs计数

我有一个自定义的分类法,我们称之为;指示;。我们将其与自定义帖子类型“配合使用”;产品;。我们对术语Parent->;小孩父级从未与产品建立连接。我使用它来创建一个自定义的select字段,并且需要父字段作为optgroup标题。是否使用此结构父级子级1(根据后端的2篇帖子)子级2(根据后端的1篇帖子)但是如果我查询子主题并检查计数,它总是显示为NULL。在Wordpress仪表板中,它使用2和1正确定位。为什么不在前端呢。 $args = array( \'hide_e