Pre_Get_Posts或$Where,使用哪一个?

时间:2015-01-16 作者:Ray Flores

我有一个自定义搜索小部件,它只搜索一个包含大于或等于1的meta\\u键的自定义帖子类型,我在其中收集帖子id。在所有这些帖子id中,我想排除那些具有meta\\u键“\\u start\\u date”(存储方式为01-16-2015)且值>=”search\\u input\\u start\\u date“和meta\\u key“\\u end\\u date”(存储方式为01-16-2015)且值lt=”的帖子类型search\\u input\\u end\\u date\'。

我的问题是:我应该使用操作“pre\\u get\\u posts”和上面的$args,还是应该使用过滤器“posts\\u where”并直接转到$wpdb?

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

一般来说,这在pre_get_posts 因为您可以将条件表示为元查询,并让WP计算SQL。

在您特定的情况下,这是行不通的,因为这种格式对于编程比较来说是可怕的。除非您可以将格式更改为更友好的格式,否则您可能需要编写一些非常自定义的SQL来使其正常工作。

结束

相关推荐

Custom Wordpress Table wpdb

查询自定义表和获取结果时遇到问题。从Wordpress 3.9开始,我不能再运行mysql\\u query(),必须使用$wpdb->query();因此,请记住:旧代码:<?php if (!empty($_GET[\'msg\'])) { global $wpdb; $vuser_id = $_GET[\'id\']; $sql = \"SELECT * FROM wp_quiz WHERE quiz_id=\'$vuser_id\'\";&#x