Wordpress搜索查询帖子

时间:2014-11-09 13:36:30

标签: php mysql wordpress

我正在为我的wordpress网站开发自定义搜索... http://www.nekretnine-oglasi.me/这里是网站,你可以看到大多数字段都是自定义字段,除了'Kategorija'是类别,'Grad'是post_title ..

这是我的问题:

query_posts(array(
    'orderby' => 'date',
    'category_name' => $_POST['kategorija'],
    'post_type' => 'post',
    'post_title' => $_POST['grad'] //This line doesnt work
)

主要是让'post_title'工作......

然后让其他自定义字段工作......

通过此查询,我可以从类别中获取帖子,但不会从类别和post_title获取帖子。

1 个答案:

答案 0 :(得分:1)

基于此解决方案,您应该在wp_query中的posts_where属性上定义一个过滤器。 https://wordpress.stackexchange.com/questions/18703/wp-query-with-post-title-like-something

使用此代码,您可以定义自定义SQL where语句:

add_filter( 'posts_where', 'wpse18703_posts_where', 10, 2 );
function wpse18703_posts_where( $where, &$wp_query )
{
    global $wpdb;
    if ( $wpse18703_title = $wp_query->get( 'wpse18703_title' ) ) {
        $where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'' . esc_sql( $wpdb->esc_like( $wpse18703_title ) ) . '%\'';
    }
    return $where;
}

你可以在这样的查询中使用:

$args = array(
    'orderby'     => 'date',
    'post_type' => 'post',
    'wpse18703_title' => $_POST['grad']
  );
$wp_query = new WP_Query($args);

我无法尝试代码片段,但我认为这对初学者指南很有用。