Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress搜索查询帖子_Php_Mysql_Wordpress - Fatal编程技术网

Php Wordpress搜索查询帖子

Php Wordpress搜索查询帖子,php,mysql,wordpress,Php,Mysql,Wordpress,我正在为我的wordpress网站开发自定义搜索。。。 这是一个网站,你们可以看到大多数字段都是自定义字段,除了“Kategorija”是类别和“Grad”是帖子标题 我的问题是: query_posts(array( 'orderby' => 'date', 'category_name' => $_POST['kategorija'], 'post_type' => 'post', 'post_title' => $_POST['gra

我正在为我的wordpress网站开发自定义搜索。。。 这是一个网站,你们可以看到大多数字段都是自定义字段,除了“Kategorija”是类别和“Grad”是帖子标题

我的问题是:

query_posts(array(
    'orderby' => 'date',
    'category_name' => $_POST['kategorija'],
    'post_type' => 'post',
    'post_title' => $_POST['grad'] //This line doesnt work
)
主要是让“post_title”发挥作用

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


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

基于此解决方案,您应该在wp\u查询中的posts\u where属性上定义一个过滤器。

使用此代码,您可以定义自定义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);

我无法尝试代码片段,但我认为这是一个很好的入门指南

post\u title
不是
query\u post
中的选项。你应该使用
add_filter
过滤文章标题。如何做到这一点。。。你能给我举个例子吗?