Wordpress WP_Query不使用url查询值中的关键字?

时间:2015-05-05 21:24:28

标签: php wordpress wp-query

我正在使用表单更改自定义帖子类型的WP_Query中的值。我有2个选择字段使用分类值和关键字搜索。选择字段工作正常,但关键字不会影响查询(尽管它显示在url查询字符串中)。

关键字字段的代码是:

<input type="text" placeholder="Välj" name="referenser_keyword">

以及获取查询值的代码是:

global $wp_query;

if (isset($wp_query->query_vars['referenser_material'])) {

    $materialVal = $wp_query->query_vars['referenser_material'];

} else {

    $materialVal = '';

}

if (isset($wp_query->query_vars['referenser_segment'])) {

    $segmentVal = $wp_query->query_vars['referenser_segment'];

} else {

    $segmentVal = '';

}

if (isset($wp_query->query_vars['referenser_keyword'])) {

    $keywordVal = $wp_query->query_vars['referenser_keyword'];

} else {

    $keywordVal = '';

}

$filteredLoop = new WP_Query(
        array(
            'post_type'             => 'referenser',
            'posts_per_page'        => 4,
            'referenser_material'   => $materialVal,
            'referenser_segment'    => $segmentVal,
            's'                     => $keywordVal,
            'exact'                 => false,
            'sentence'              => true
        )
    );

如果我将$keywordVal中的} else {值从''更改为字符串,则可以使用我输入的值进行操作,这让我觉得它总是不是设置(并在查询中显示为空)。

1 个答案:

答案 0 :(得分:0)

我没有正确定义查询变量,将以下内容添加到functions.php修复了它。

function referenser_query_vars_filter( $vars ){
  $vars[] = "referenser_material";
  $vars[] = "referenser_segment";
  $vars[] = "referenser_keyword";
  return $vars;
}
add_filter( 'query_vars', 'referenser_query_vars_filter' );