【问题标题】:WP Query Custom Taxonomy but exclude current termWP 查询自定义分类但排除当前术语
【发布时间】:2016-02-28 08:52:08
【问题描述】:

我正在设置一个 wp_query 来列出自定义分类中的所有术语。但是,我想修改下面的代码以排除当前的分类术语。

例如,在“term1”的archive.php页面上,我希望将其排除在外,这意味着我只剩下“term2”、“term3”等。

<? 
$args = array(
    'taxonomy' => 'topic',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => '-1'
);
?>
<? $tax_menu_items = get_categories( $args );
    foreach ( $tax_menu_items as $tax_menu_item ):?>
        <li>
            <a href="<? echo get_term_link($tax_menu_item,$tax_menu_item->taxonomy); ?>">
                <? echo $tax_menu_item->name; ?>
            </a>
        </li>
    <? endforeach; ?>

【问题讨论】:

  • 理论上,如果您查看应该是当前分类法的全局 $post 对象 - 并且从中您可以获得要为您的论点排除的 id。如果您需要进一步解释,请告诉我 :) 您可以使用 codex.wordpress.org/Class_Reference/WP_Post 作为参考。
  • 嗨@SimonPollard,感谢您的建议。您是否有机会帮助我调整上面的代码以实现这一目标?我对 wp_query 还很陌生...

标签: php wordpress


【解决方案1】:

试试这个,这取决于你在哪里使用它

// Get the category ID
$catID = get_query_var('topic');
// Now run the query excluding the current taxonomy
$args = array(
    'exclude' => $catID,
    'taxonomy' => 'topic',
    'orderby' => 'title',
    'order' => 'ASC',
    'posts_per_page' => '-1'
);

然后是上面的其余代码。有关 get_categories() 的更多信息,请查看 https://codex.wordpress.org/Function_Reference/get_categories exclude 参数绝对是您需要的 - 它只是确保您排除了正确的类别 ID。

【讨论】:

  • 不幸的是,我正在使用archive.php页面上的代码,这意味着您已经在通过该查询显示的选项之一的页面上?
  • 嗨,西蒙。不幸的是,再次没有运气,我应该明确说明我在这里使用自定义分类法,所以“猫”的术语可能不正确?
  • 可能是的...尝试在 get_query_var 位中使用“主题”以防万一。理想情况下,我们只是想找到那个神奇的 ID,然后一切都会奏效
  • 不,不走运。我们并不是要排除“主题”。 '主题是自定义分类的名称,而我的查询显示该分类中的术语。
  • get_query_var('topic') 应该返回您正在查看的主题的当前 ID - 出于兴趣,您是如何创建自定义类别的?需要确保它是可公开查询的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-18
  • 2016-10-01
  • 2016-08-04
  • 2015-09-11
  • 1970-01-01
  • 2022-01-06
相关资源
最近更新 更多