我想创建一个自定义搜索,不仅在标题和/或内容中,而且在帖子元中,通过关键字搜索帖子。
例如,在用户单击搜索后,我从$wp\\u query->query\\u vars[\'s\')中得到了一个单词“plastic”。
那么我有两条路可以使用它:添加pre_get_posts 操作以筛选metas中包含该关键字的所有帖子,或创建新查询,然后在模板中筛选帖子。
我知道第一种情况-是正确的情况,我应该使用它,但我真的不明白如何通过metas中的关键字查找过滤器帖子。
示例代码:
function d_search( $query ) {
if ($query->is_search()) {
$query->set( \'posts_per_page\', 12 );
$query->set(\'meta_query\', array(
array(
\'key\' => \'something\',
\'value\' => $wp_query->query_vars[\'s\'], //plastic
\'compare\' => \'LIKE\'
)
));
}
}
add_action( \'pre_get_posts\', \'d_search\' );
我的带有“某物”键的元帖子具有“塑料之爱”的价值,正如你所看到的,我的query\\u vars[\'s]或“塑料”位于“塑料之爱”行中。为什么它不起作用?只是不过滤任何东西。
以秒为单位:
当我使用我的另一个案例时,我有一个搜索页面http://localhost/search
.我在全局查询中筛选了帖子,我有一个分页。
分页中每个按钮的链接如下所示http://localhost/search/plastic/page/2/
但它不起作用。如果我打开它,我只会看到我的404模板。
如果我使用http://localhost/search/plastic?paged=2
这也行不通。
如何使用第一个案例或如何修复第二个问题?(请不要使用插件)