基于自定义分类元表的全局帖子查询

时间:2014-06-18 作者:Cody Mays

我已经完成了为我的站点中的自定义帖子类型创建自定义分类法+管理面板的过程。这些分类法将各种元数据存储在wp_taxonomymeta 表,并使用get\\u metadata/set\\u metadata来获取和设置这些字段的值。此分类法中的一个字段是启用/禁用标志。

我想全局排除禁用标志设置为true的帖子。我正迷上pre_get_posts, 但我不知道如何修改查询以便在wp_taxonomymeta 用于在查询中排除应隐藏的帖子。有人能对此提供一些见解吗?我在谷歌上找不到多少有用的建议。如果需要澄清,请询问,我将尽最大努力澄清任何混淆。

EDIT FROM COMMENTS

我正在尝试修改主查询。这个想法最终是能够基于分类法的元数据标志值在整个站点上全局隐藏/显示。所以我有一个插件,它实现了pre_get_posts 钩子,但我无法用自定义表来计算查询(至少在典型的wordpress方式中,原始SQL是蛋糕,但我想修改主查询)。

由于在wordpress中使用这些分类表似乎是一种有争议的方式,因此没有太多文档可供使用。

1 个回复
SO网友:Cody Mays

对于那些将来遇到问题的人,我是这样做的:

我做了我的pre_get_posts 如果分类法ID不在列表中,则将分类法作为常规查询以进行测试的函数:

            $q->set( \'tax_query\', array(array(
                    \'taxonomy\' => \'tax\',
                    \'field\' => \'id\',
                    \'terms\' => tax_get_inactive(),
                    \'operator\' => \'NOT IN\'
            )));
然后,我实现了tax_get_inactive 如上所示的函数,用于查询taxonomymeta 表并构建排除列表。这不是最优雅的方式,但它可以工作,并且如果考虑到性能,可以轻松缓存排除列表。

结束

相关推荐

Taxonomy vs Post Status

我正在构建一个web应用程序,因此可扩展性是我开发时的主要关注点之一。在我正在构建的应用程序上,我有一个名为“项目”的帖子类型。项目可以是:我不需要任何类型的UI,只需要能够查询处于一种或多种状态的所有项目。我假设,由于post\\u status位于posts表中,使用此方法执行这些查询比使用分类法更快?所以,我的问题是,如果有100000个项目,查询哪个会更快?发布状态还是分类法?干杯

基于自定义分类元表的全局帖子查询 - 小码农CODE - 行之有效找到问题解决它

基于自定义分类元表的全局帖子查询

时间:2014-06-18 作者:Cody Mays

我已经完成了为我的站点中的自定义帖子类型创建自定义分类法+管理面板的过程。这些分类法将各种元数据存储在wp_taxonomymeta 表,并使用get\\u metadata/set\\u metadata来获取和设置这些字段的值。此分类法中的一个字段是启用/禁用标志。

我想全局排除禁用标志设置为true的帖子。我正迷上pre_get_posts, 但我不知道如何修改查询以便在wp_taxonomymeta 用于在查询中排除应隐藏的帖子。有人能对此提供一些见解吗?我在谷歌上找不到多少有用的建议。如果需要澄清,请询问,我将尽最大努力澄清任何混淆。

EDIT FROM COMMENTS

我正在尝试修改主查询。这个想法最终是能够基于分类法的元数据标志值在整个站点上全局隐藏/显示。所以我有一个插件,它实现了pre_get_posts 钩子,但我无法用自定义表来计算查询(至少在典型的wordpress方式中,原始SQL是蛋糕,但我想修改主查询)。

由于在wordpress中使用这些分类表似乎是一种有争议的方式,因此没有太多文档可供使用。

1 个回复
SO网友:Cody Mays

对于那些将来遇到问题的人,我是这样做的:

我做了我的pre_get_posts 如果分类法ID不在列表中,则将分类法作为常规查询以进行测试的函数:

            $q->set( \'tax_query\', array(array(
                    \'taxonomy\' => \'tax\',
                    \'field\' => \'id\',
                    \'terms\' => tax_get_inactive(),
                    \'operator\' => \'NOT IN\'
            )));
然后,我实现了tax_get_inactive 如上所示的函数,用于查询taxonomymeta 表并构建排除列表。这不是最优雅的方式,但它可以工作,并且如果考虑到性能,可以轻松缓存排除列表。

相关推荐

如何控制根据Taxonomy术语显示什么模板?

我正在建立一个商业目录,并将给出一些背景,然后在最后有2个问题。The development URL is: http://svcta.lainternet.biz/The website I am rebuilding is: https://www.visitsimivalley.com/当前网站要求每个分类法类型具有唯一的业务概要文件。例如,如果您是一家酒店,并且您也有会议室和婚礼场地,那么您最终会得到3个列表,一个用于酒店,一个用于会议,一个用于婚礼。我希望有一个主配置文件,其中包含我们将显示的