在搜索结果中包括一个自定义字段

时间:2016-11-28 作者:Advanced SEO

我有自定义搜索模板,我希望搜索结果包括一个自定义字段的值。我测试了这个代码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上没有内容。在这种情况下如何允许分页?

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

我会完全忽略这篇文章并使用a meta query:

$query = new WP_Query([
    \'meta_query\' => [
        [
            \'key\'     => \'my_custom_field\',
            \'value\'   => \'search_term\',
            \'compare\' => \'LIKE\',
        ]
    ]
]);

相关推荐

nothing happen in search form

我想创建搜索表单,但当我搜索时什么都没有发生,这是代码:索引。php: <div class=\"tech-btm\"> <?php get_search_form();?> </div> 搜索表单:<form role=\"search\" method=\"get\" id=\"searchform\" action=\"<?php echo home_url(\'/\')?>\"> &