【发布时间】:2014-03-31 23:05:35
【问题描述】:
我觉得我一直在网上四处寻找这个问题的答案,而这真的开始磨砺我的齿轮了。
不确定这是否是正确的方法,但我想以 query_arg 的形式将 query_posts 数组添加到 URL。这是我们的查询:
query_posts( array( 'meta_key' => 'rank', 'orderby' => 'meta_value_num', 'order' => 'DESC' , 'paged' => $paged,
如何使用 add_query_arg 将其传递给 URL,以便使用 meta_key/query_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_key/meta_value 对类别页面上的帖子进行排序。有点类似于执行 ?orderby=date 的方式,除了使用 meta_key。
这是可以做到的,对吧?因为我开始认真地认为这是不可能的。
来自拉希尔的回答
<?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_posts 数组一起正常工作的相同值,帖子不会重新排序。
【问题讨论】: