WordPress 根据自定义字段搜索文章内容

文 / @WordPress主题

自定义查询实现

在网站开发过程中,有时候需要通过内容属性进行搜索,WordPress的默认搜索功能只能搜索文章标题和内容,这时候就需要自定义查询来实现。下面详细介绍如何实现自定义查询。

建立自定义查询表单

首先,我们需要建立一个自定义查询表单,用于输入搜索内容。

<form class="pure-form" role="search" method="get" id="searchform" action="http://www.yousite.com/phonesearch/">
  <input type="text" name="phone" id="s" class="pure-input-1-2" placeholder="输入电话号码" value="输入电话号码">
  <button type="submit" class="button button--primary">查询</button>
</form>

添加自定义查询参数

WordPress的公共查询参数中没有自定义字段,所以我们需要添加一个自定义查询参数,来传递需要查询的数据。

add_filter('query_vars','add_query_vars_filter');
function add_query_vars_filter($vars){
  $vars[]="phone";
  return $vars;
}

需要注意的是,自定义查询参数不能与WordPress内置查询参数发生冲突。

获取自定义查询参数

获取自定义查询参数的方法与获取内置查询参数的方法相同,通过`get_query_var`函数即可。

$phone = get_query_var('phone') ? get_query_var('phone) : '';

构建查询参数,新建查询

获取了自定义查询参数后,就可以通过WordPress的meta参数查询相应的文章。

$args = array(
  'meta_key'=>'phone'
  'meta_value'=>$phone,
);
$wp_query = new WP_Query($args);

输出自定义查询结果

通过循环来输出查询到的数据,方法和普通的文章输出一样。

while($wp_query->have_posts()):
  $wp_query->the_post();
  get_template_part('content', 'stars');
endwhile;

除了搜索功能,还可以通过直接给链接加参数的方法实现多条件过滤。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。