当前位置: 首页 > 知识库问答 >
问题:

为什么我不能从get\u terms或WP\u term\u查询中排除术语ID?

拓拔霄
2023-03-14

我有一个自定义帖子tipe(“artigo”),这个CPT有一个注册分类法(“artigo_eixo”),其中有3个注册术语。

我想在该页面中显示一个侧边栏,列出除当前术语外的所有术语,在该页面中列出所有使用该术语的帖子(http://localhost/mytaxonomy/current_term/)

但是,我不能从查询中排除当前术语。

我试图获得一个分类术语列表,但从列表中排除了某个术语。我试图按照codex的示例进行操作,但没有成功,使用了get\u terms()WP\u Term\u query()

共有3个术语,ID分别为13、14、15。没有具有这些ID的帖子或CPT项目。

我刚刚测试了get_queried_object_id(),它似乎返回了正在显示的术语的正确术语ID——也就是说,如果我正在查看带有ID 13的术语的URL,函数将返回13,依此类推。

它也不能使用硬编码值,不管是字符串、整数还是这些类型的数组。这两种方法都不起作用:

'exclude' => 14
'exclude' => '14'
'exclude' => array(14)
'exclude' => array('14')

PHP或WP调试日志没有显示错误。

if (is_tax( 'artigo_eixo' )) {

    $current_eixo = get_queried_object_id();

    $args = array(
        'taxonomy' => 'artigo_eixo',
        'exclude' => $current_eixo
    );

    $eixos = get_terms( $args );
if (is_tax( 'artigo_eixo' )) {

    $current_eixo = get_queried_object_id();

    $args = array(
        'taxonomy' => array('artigo_eixo'),
        'exclude' => $current_eixo
    );

    $eixos = new WP_Term_Query( $args );
    $eixos = $eixos->terms;

共有1个答案

谭翔
2023-03-14

原来有一个函数钩住了过滤器list_terms_exclusions,返回的是一个逻辑错误的条件。我修复了它,现在术语查询排除按预期工作。

 类似资料:
  • 我一直在努力让tax_query在WP_Query工作。代码如下: 肯定有帖子类型为“谈话”——如果我去掉tax_query部分,正确的帖子显示得很好。有5个谈话使用正确的分类术语“周日谈话”(如果我试图使用ID而不是鼻涕虫,也不起作用)。 奇怪的是,如果我将帖子类型改为“post”,将分类法改为“category”,并省略“field”和“terms”部分,那么它会返回我唯一一篇没有任何术语的帖

  • 我正在运行这样一个简单的SQL连接和select,但在运行查询时,我遇到了非常奇怪的错误。 警告:mysqli_fetch_array()希望参数1是mysqli_结果,布尔值在第23行的C:\xampp\htdocs\Webmaster\run\forum_mc.php中给出 警告:mysqli_query():第24行()上C:\xampp\htdocs\Webmaster\run\forum

  • 以下代码有效 然而,当我尝试重构异步方法调用时,如下所示 它没有给我以下错误 在上一个异步操作完成之前,在此上下文上启动了第二个操作。使用“await”确保在该上下文上调用另一个方法之前已完成任何异步操作。任何实例成员都不能保证线程安全。 这是为什么?我怎么才能做到这一点? 更新: Db在基本控制器中声明如下 WebSiteDb扩展DbContext如下 如果我在方法内部等待,则会从方法内部抛出错

  • 可能重复: 分析错误:语法错误,中出现意外的“(”,应为“,”或“;” 我正在做以下工作: 如果我这样做,我会收到一个编译错误,上面说: 语法错误,意外'(',期待','或';' 如果我在类外执行,它工作得很好。 如果我将分配给局部变量,它工作得很好。 有人知道为什么我不能将其分配给实例变量吗?

  • 问题内容: 我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。 你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S” 问题答案: 更换 与 它将起作用,因为字符串是不可变的,因此不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配给由返回的字符串 另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。 而且,您也

  • 我想让下面的代码对我的自定义posttype(产品类型)进行排序。因此,我的活动页面将只显示“油”一词的帖子,而不是“燃料”和“轮胎”。 //编辑,作为对以下3个答案的回复 我假设foreach循环是WP_查询方法的替代,但是tax_查询对我来说是新的,现在我知道它存在,我在codex中查找了它,但是它仍然不起作用。我诚实地认为,这就像我在tax_查询中错误地命名一样简单,因此我将在这里显示我的分