我试图使用搜索查询和一系列参数来缩小搜索结果的范围,但我失败得很厉害。这就是我目前所拥有的。
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$query_string = \'s=test&category=wordpress\'
$s_array = array(
\'post_type\' => \'blog\',
\'caller_get_posts\' => 1,
\'paged\' => $paged,
\'meta_query\' => array(
array(
\'key\' => \'votes_percent\',
\'value\' => \'50\',
\'compare\' => \'>\',
\'type\' => \'numeric\',
)
)
);
$s_query = http_build_query($s_array);
$is_query = \'&\' . $s_query;
$s_streaming = $query_string . $is_query;
query_posts($s_streaming);
在播放$s\\U流媒体时,我得到
s=test&category=wordpress&post_type=blog&caller_get_posts=1&paged=1&meta_query%5B0%5D%5Bkey%5D=votes_percent&meta_query%5B0%5D%5Bvalue%5D=50&meta_query%5B0%5D%5Bcompare%5D=%3E&meta_query%5B0%5D%5Btype%5D=numeric
如果我删除meta\\u查询键,它就会工作,所以我猜这就是我的问题所在。
这样很好用
query_posts($s_array); //just using the array to filter
query_posts($query_string); //just using the search query
//$query_string = \'s=test&category=wordpress\';
我正在尝试构建要查询的字符串,因为这失败了。
query_posts($query_string . $s_array); //using both
有人能给我指出正确的方向吗?
最合适的回答,由SO网友:John P Bloch 整理而成
我建议不要使用$query_string
简化事情。如果使用的是数组,请使用查询变量的数组形式:
global $wp;
$paged = ((int)get_query_var(\'paged\')) ? (int)get_query_var(\'paged\') : 1;
$s_array = array(
\'post_type\' => \'blog\',
\'caller_get_posts\' => 1,
\'paged\' => $paged,
\'meta_query\' => array(
array(
\'key\' => \'votes_percent\',
\'value\' => \'50\',
\'compare\' => \'>\',
\'type\' => \'numeric\',
)
)
);
$new_query = array_merge( $s_array, (array)$wp->query_vars );
query_posts($new_query);
SO网友:Rutwick Gangurde
如果你想合并$query_string
和$s_array
, 试试这个。。。
<?php
//We use values of \'s\' and \'category\' to add values to $s_array
$query_string = \'s=test&category=wordpress\';
$s_array = array(
\'post_type\' => \'blog\',
\'caller_get_posts\' => 1,
\'paged\' => $paged,
\'meta_query\' => array(
array(
\'key\' => \'votes_percent\',
\'value\' => \'50\',
\'compare\' => \'>\',
\'type\' => \'numeric\',
)
),
\'s\' => \'test\',
\'category\' => \'wordpress\'
);
//Use $s_array for query_posts directly
query_posts($s_array);
?>
我想这会有用的。。。