WordPress:如何从自定义分类查询中排除子分类中的帖子?

2023-12-19

我的 WordPress 主题有一个名为“集合”的自定义分类法。自定义分类是分层的,因此存在子集合。

我有一个名为“书籍”的集合和一个名为“小说”的子集合。有些帖子只在“书籍”中,有些帖子则在“小说”中。我希望“书籍”集合的页面仅显示主“书籍”集合中的帖子,而不是“小说”子集合中的帖子。但默认情况下,WordPress 在分类查询中包含“子集合”中的帖子。

如何从分类查询中排除子术语中的帖子?这对于类别来说很容易,但似乎没有内置的方法可以使用自定义分类法来做到这一点。


Update:Jan 的解决方案非常有效。这是我使用的代码,放置在index.php中的循环上方:

// if is taxonomy query for 'collections' taxonomy, modify query so only posts in that collection (not posts in subcollections) are shown.
if (is_tax()) {
 if (get_query_var('collection')) {
  $taxonomy_term_id = $wp_query->queried_object_id;
  $taxonomy = 'collection';
  $unwanted_children = get_term_children($taxonomy_term_id, $taxonomy);
  $unwanted_post_ids = get_objects_in_term($unwanted_children, $taxonomy);

  // merge with original query to preserve pagination, etc.
  query_posts( array_merge( array('post__not_in' => $unwanted_post_ids), $wp_query->query) );
 }
}

似乎是 WP_Query 类始终包括分层分类法的所有项目 http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/query.php#L2050。如果你想解决这个问题,你可以使用他们使用的相同技巧:获取分类项的所有子项,然后获取这些子项中的所有帖子 ID,然后将它们放入post__not_in范围:

$unwanted_children = get_term_children($taxonomy_term_id, $taxonomy);
$unwanted_post_ids = get_objects_in_term($unwanted_children, $taxonomy);

这将导致一个查询AND posts.ID IN (1, 2, 3) AND posts.ID NOT IN (2, 3),它只会返回 ID 为 1 的这篇文章。非常不优雅,但它有效。

当然,如果你走这条路,你也可以只传递你想要的帖子 ID,而不告诉查询任何有关分类的信息。

您如何对类别执行此操作?查询代码似乎也包含子项。 http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/query.php#L1890

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WordPress:如何从自定义分类查询中排除子分类中的帖子? 的相关文章

  • 使用订单详细信息创建 Woocommerce 短代码

    我正在尝试创建一些与 woocommerce 订单数据相关的短代码 我有一个自定义页面 订单完成后客户将被重定向到该页面 访客结帐已禁用 因此所有购买的客户都将拥有一个帐户 在页面中 我想通过简码插入订单中的一些数据 这是一个例子 您好 c
  • Codeigniter 加入多个条件

    我正在使用 Codeigniter Active Records 课程 我想加入我的users与我的桌子clients表 这样我就可以显示用户的 真实 姓名 而不仅仅是他们的 ID 这是什么clients表看起来像 示例 列 a 1 a 2
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 在 MacOSX10.6 上运行 python 服务器时 MySQLdb 错误

    运行我的服务器 python manage py runserver 产生以下错误 django core exceptions ImproperlyConfigured 加载 MySQLdb 模块时出错 没有名为 MySQLdb 的模块
  • 社交应用程序的数据库设计和优化注意事项

    通常的情况 我有一个简单的应用程序 允许人们上传照片并关注其他人 因此 每个用户都会有类似 墙 或 活动源 的东西 他或她可以在其中看到他 她的朋友 他或她关注的人 上传的最新照片 大多数功能都很容易实现 然而 当涉及到这个历史活动源时 由
  • 为什么 MySQL 创建带有 _seq 后缀的表?

    我创建了一个 InnoDB 表 名为foo在 MySQL 中 一旦我对表执行插入操作 我就会看到另一个表foo seq被建造 如果我删除自动生成的表 它会在下一次插入后出现 是什么原因造成的 听起来像是正在创建一个序列 您是否有自动生成的主
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • mysql-如何向列申请补助?

    用户名 撤销对数据库的选择 Person I set GRANT SELECT id ON database Person TO username localhost 不是工作 gt SELECT secret FROM Person Go
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 第三个下拉菜单不从数据库填充

    我有以下 Index php
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri

随机推荐

  • 您多久更新一次 SQL Server 2000 中的统计信息?

    我想知道更新统计数据之前是否对您有帮助 您是如何知道更新它们的 exec sp updatestats 是的 如果您发现查询的性能未达到应有的效果 更新统计信息会非常有帮助 这可以通过检查查询计划并注意何时执行表扫描或索引扫描而不是索引查找
  • 在 Web 应用程序中记录用户活动

    我希望能够在网络应用程序中记录用户活动 我目前正在使用 log4j 它可以很好地记录错误等 但我不确定记录用户 执行的 servlet 方法和方法参数的最佳方法是什么 我正在使用 spring security 进行身份验证 典型的 Ser
  • 如何向网络服务发送和接收表情符号[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要在我的 Android 应用程序中使用表情符号进行聊天 我正在使用这个库https github com rockerhieu
  • gdb 堆栈奇怪

    我有时会得到这个奇怪的回溯 gdb bt 0 0x00002b36465a5d4c in AY16 Loop M16 from opt intel mkl 10 0 3 020 lib em64t libmkl mc so 1 0x0000
  • Python fastcgi 客户端

    我正在用 python 编写一个工具来监控 fastcgi 应用程序 我唯一需要 fastcgi 的是加载 ping 和状态页面 如果失败则返回某种错误 有很多库 从 python fasctgi 绑定到twisted 似乎能够做到这一点
  • Zend Framework 2 模块在 Bootstrap 控制器之间共享变量

    是否可以在 Module php 中创建变量甚至共享对象 如数据库适配器 以在所有视图控制器中使用 Zend 框架 2 例如 class Module public function onBootstrap MvcEvent e modul
  • python:腌制c对象

    首先 我并不期待解决方案 只是希望得到一些关于如何开始的指导 我有一个带有嵌入式 Python 解释器的 C 程序 程序用作输入的 Python 脚本显然是指 C 定义的对象和函数 我现在想让其中一些对象可腌制 pickle 文档描述了如何
  • Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象?

    我正在尝试使用绑定的源对象获取自动完成小部件以表单 z3c form 呈现 在接口类中 Parent schema Choice title u A Parent source ParentSourceBinder required Fal
  • Bootstrap Validator - 验证成功时发出警报

    我在用着引导验证器 http bootstrapvalidator com 插件来验证我的表单 我试图在表单成功验证时发出警报 HTML
  • LINQ To Entities 无法识别数组索引

    我的代码中有以下功能 public List
  • 如何以不同的方式设置标准 GWT 组件 (TabBar) 的样式?

    我正在使用 TabBar 并且想以不同的方式设置组件的样式 所以一次是这种风格 另一次是那种风格 我以为这会起作用 但事实并非如此 TabBar t new TabBar t addTab 1 t addTab 2 t addStyleNa
  • 将 stdint 与 swig 和 numpy.i 一起使用

    我正在开发一个模块来使用c inline在Python代码中基于swig 为此我想做numpy数组可访问于C 到目前为止我使用的 C 类型如下unsigned short但我想使用类似的类型uint16 t from stdint h保存我
  • Python 文档 (:obj:`str`) 与 (str)

    我一直在读这个Google 风格 Python 文档字符串示例 http sphinxcontrib napoleon readthedocs io en latest example google html了解 Python 文档的编写程
  • 创建查询以获取未完成呼叫的计数

    有表 waiter log 作为 call id queue num curr ast num curr proceed wait f27de4f 9010 2 1 f27de4f 9002 5 1 f27de4f 9003 1
  • WatchOS 3 中的本地通知

    我正在使用 WatchOS 3 beta 并尝试在手表上启动本地通知 该界面只是一个按钮 它调用下面代码中的 buttonPushed 方法 该应用程序运行良好 但我从未收到通知 应用程序结构是 Xcode 8 中 WatchKit 应用程
  • 如何调整mysql命令行的显示设置?

    mysql 命令行未正确显示结果 我的意思是表的某些列位于第一行 某些列位于第二行 输出也分为两行 如何调整这些设置才能正确显示结果 您可以使用 G命令 而不是 在 SQL 查询的末尾 Example SELECT FROM USER G
  • 使用NamedParameterJdbcTemplate将数据发送到DataBase

    package com techm template import java sql Types import java util Date import java util HashMap import java util Map imp
  • 如何计算 TCP 校验和

    我正在编写一个内核模块 它使用 Netfilter 挂钩来修改一些 TCP 标头信息 显然 在发送之前 我想重新计算校验和 我还在接收端编辑了标头 所以我也需要在那里重新计算它 在网上搜索 我发现有人说我可以简单地将其设置为0 它会为我计算
  • 排除迁移的属性[重复]

    这个问题在这里已经有答案了 I have 特性在我的模型上 我不想在中生成字段tables迁移后 是否可以排除特性实体框架核心迁移 我的模型上是否有模型的属性或某些 Fluent API 方法DbContext为了这 您应该能够指定 Not
  • WordPress:如何从自定义分类查询中排除子分类中的帖子?

    我的 WordPress 主题有一个名为 集合 的自定义分类法 自定义分类是分层的 因此存在子集合 我有一个名为 书籍 的集合和一个名为 小说 的子集合 有些帖子只在 书籍 中 有些帖子则在 小说 中 我希望 书籍 集合的页面仅显示主 书籍