我有自定义搜索模板,我希望搜索结果包括一个自定义字段的值。我测试了这个代码include custom fields in WP search results, 而且效果很好。但是,它会搜索所有自定义字段。如果有许多不同的自定义字段,它会减慢搜索速度,当然也不需要所有自定义字段都是可搜索的,有时它只是用不相关的结果填充搜索结果。
我想只允许在自定义搜索模板上搜索一个自定义字段。理想情况下,在该模板上,我甚至不需要搜索帖子标题/内容,只需搜索该自定义字段的内容。
如何在搜索结果中只包含特定的自定义字段?
UPDATE
$search_term = get_search_query(); // Get current search term
$args = array(
\'post_type\' => \'post\', // Post type is post.
\'post_status\' => \'publish\', // Post is published.
\'posts_per_page\' => 4, // Posts per page.
\'meta_query\' => array(
array(
\'key\' => \'my_custom_field\', // Custom field to search
\'value\' => $search_term, // Value of custom field is search term
\'compare\' => \'LIKE\',
),
),
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();
include \'post-content.php\';
endwhile;
}
wp_reset_query();
我用上面的代码设法从一个自定义字段中获得结果,但我丢失了分页。现在我在/page/x上没有内容。在这种情况下如何允许分页?
最合适的回答,由SO网友:TheDeadMedic 整理而成
我会完全忽略这篇文章并使用a meta query:
$query = new WP_Query([
\'meta_query\' => [
[
\'key\' => \'my_custom_field\',
\'value\' => \'search_term\',
\'compare\' => \'LIKE\',
]
]
]);