我觉得我一直在网络上到处寻找答案,现在我真的开始磨磨蹭蹭了。
不确定这是否是正确的方法,但我想以query\\u arg的形式向URL添加query\\u posts数组。这是我们的问题:
query_posts( array( \'meta_key\' => \'rank\', \'orderby\' => \'meta_value_num\', \'order\' => \'DESC\' , \'paged\' => $paged,
如何使用add\\u query\\u arg将其传递到URL,以便使用meta\\u键/query\\u posts数组重新排序帖子?我试过了,它似乎并没有改变帖子的顺序,我这里缺少了一些东西。
<a href="<?php echo $by_rank;?>"> Rank </a>
<?php $by_rank= esc_url(add_query_arg(array(\'meta_key\' => \'rank\', \'orderby\' => \'meta_value_num\', \'order\' => \'DESC\'))); ?>
我想将查询变量添加到URL字符串的原因是,用户可以根据meta\\u键/meta\\u值对类别页面上的帖子进行排序。有点像这样?orderby=日期,但带有meta\\u键的除外。
这是可以做到的,对吗?因为我真的开始认为这是不可能的。
编辑:-尝试了这个,它可以按ASC/DESC顺序对帖子进行排序,但不能按meta\\u键
<?php
$meta_key = (isset($_GET[\'meta_key\'])) ?
sanitize_text_field($_GET[\'meta_key\']) : \'rank\'; // use default value here \'\'
$orderby = (isset($_GET[\'orderby\'])) ?
sanitize_text_field($_GET[\'orderby\']) : \'meta_value_num\'; // use default value here \'\'
$order = (isset($_GET[\'order\'])) ?
sanitize_text_field($_GET[\'order\']) : \'DESC\'; // use default value here \'\'
$by_rank = esc_url(add_query_arg(array(
\'meta_key\' => $meta_key,
\'orderby\' => $orderby,
\'order\' => $order
)));
?>
<a href="<?php echo $by_rank;?>"> Rank </a>
我应该补充一点,如果我将query\\u posts数组直接添加到页面模板中,它就可以正常工作。