使用QUERY_POST(数组和查询字符串)

时间:2011-10-24 作者:TimothyJr

我试图使用搜索查询和一系列参数来缩小搜索结果的范围,但我失败得很厉害。这就是我目前所拥有的。

$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
有人能给我指出正确的方向吗?

2 个回复
最合适的回答,由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);
?>
我想这会有用的。。。

结束

相关推荐

我用index.htm隐藏了站点,但现在无法访问index.php

我正试图在网上建立一个新的Wordpress网站。我通过建立索引来“隐藏”网站。htm,以便访问者看到此html,其中包含一些关于“维护”的文本,而不是Wordpress站点。但现在如果我去www.example。com/索引。php它重定向到www.example。com/and显示索引。htm。我无法预览我在管理中正在执行的操作。无论如何,我可以更改Wordpress设置,使其不会重定向/索引。php到/?提前谢谢。