使用wordpress中的自定义字段进行搜索

时间:2013-12-03 13:03:56

标签: wordpress

我正忙着使用WordPress开发Web应用程序。我创建了一个包含一些自定义字段的自定义帖子。当我使用WordPress搜索框搜索帖子时,只发布与搜索字符串匹配的标题。我想在搜索域中添加自定义字段。

我有一个可以在WordPress中按自定义字段值进行搜索吗?

2 个答案:

答案 0 :(得分:1)

以下可以做到

$args=array(
'post_type'=>'custom post',
'order'=>'ASC',
'orderby'=>'menu_order',
'meta_query' => array (
            array (
              'key' => 'meta-key',
              'value' => 'meta-value',
            )
          )
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo the_title();

                }
} 
wp_reset_postdata();

答案 1 :(得分:0)

要查询一堆自定义字段,我发现更容易使用搜索过滤器。

http://codex.wordpress.org/Custom_Queries向下滚动到插件表中的"关键字搜索"部分为例。

以下是我的自定义&posts; where_where'的快速代码片段。过滤,这样你就可以得到一个想法:

function custom_search_where($where) {
    // put the custom fields into an array
    $customs = array('custom_field1', 'custom_field2', 'custom_field3');

    foreach($customs as $custom) {
        $query .= " OR (";
        $query .= "(m.meta_key = '$custom')";
        $query .= " AND (m.meta_value  LIKE '{$n}{$term}{$n}')";
        $query .= ")";
    }

    $where = " AND ({$query}) AND ($wpdb->posts.post_status = 'publish') ";
    return($where);
}

add_filter('posts_where', 'custom_search_where');

还有更多代码,但在Codex示例和上面的代码段之间,它应该会给你一个好主意。