我正在使用表单更改自定义帖子类型的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 {
值从''
更改为字符串,则可以使用我输入的值进行操作,这让我觉得它总是不是设置(并在查询中显示为空)。
答案 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' );