我有一个相当简单的问题,我希望这个问题相当普遍,但经过数小时的搜索和测试后,我有点卡住了。
我试图这样做,扩展了我的自定义帖子类型页面上默认的“搜索帖子”功能的搜索功能。这是我的代码,但是当我搜索已知的电子邮件地址时,它什么也没有返回。我觉得我可能会完全咆哮错误的树。任何人都可以推荐一个解决方案......
function iymp_modify_mp_posts_search($query) {
/*
* If admin and if my custom post type
*/
if (is_admin() && $query->query_vars['post_type'] === 'mp_post') {
/*
* Show 200 posts per page in ascending order
*/
$query->set('posts_per_page', '200');
$query->set( 'order', 'ASC' );
/*
* If user entered a search term
*/
if (isset($_GET['s'])) {
/*
* As well as searching in the title (default behaviour), search in
* the _email_key field as well.
* *** Doesn't work ***
*/
$query->query_vars['meta_query'][] = array(
'key' => '_email_key',
'value' => $_GET['s'],
'compare' => 'LIKE',
);
}
}
}
add_action( 'pre_get_posts', 'iymp_modify_mp_posts_search' );
问题可能是WP正在对标题和_email_key字段中的搜索进行AND运算。如果那是问题,我该怎么做呢?
答案 0 :(得分:0)
问题确实是WP在标题和_email_key字段中进行AND搜索。
要进行OR搜索,我尝试合并WP_Query结果,如此处所示 - https://wordpress.stackexchange.com/questions/55519/can-i-merge-2-new-wp-queryvariable-s - 在guidod的答案中。这不是一个很好的解决方案,并导致不稳定的行为。
我找到的正确解决方案是使用WP自定义查询修改查询,如代码所示(需要进行一些修改) - http://codex.wordpress.org/Custom_Queries ..