【问题标题】:Sorting ASC and DESC on same Link在同一链接上对 ASC 和 DESC 进行排序
【发布时间】:2016-01-29 00:31:02
【问题描述】:

目前我正在使用 WordPress,并且有一个列表,我可以在其中按顺序排列帖子,但带有单独的链接,例如“A-Z”和“Z-A”。

我想要实现的是能够让用户单击与单击时列表按 asc 和 desc 排序相同的链接。

以下是我目前拥有的代码,但我不确定如何将其合并到一个链接中。

<?php
$type = 'test';
$args=array(
  'post_type' => $type,
  'post_status' => 'publish',
);

if( isset( $_GET['sort'] ) && "titleasc" == $_GET['sort'] ){
    $args['orderby'] = 'title';
    $args['order'] = 'ASC';
}

if( isset( $_GET['sort'] ) && "titledesc" == $_GET['sort'] ){
    $args['orderby'] = 'title';
    $args['order'] = 'DESC';
}

我的示例链接是标准的:

<th>Title <span><a href="?sort=titleasc">A-Z</a> <a href="?sort=titledesc">Z-A</a></span> </th>

我想我可以写一个elseif,但是当我尝试它时,它要么中断,要么根本没有改变。我认为这个想法是代码需要检查它是否已经是 asc 或 desc 然后做相反的事情。我只是不完全确定如何以我有限的知识编写它。

给出的任何指示都会非常有帮助!谢谢

【问题讨论】:

    标签: php sorting


    【解决方案1】:

    您所要做的就是在您的 HTML 中添加您在 php 中使用的相同逻辑(当然是 php ;-))

    <?php
    if( isset( $_GET['sort'] ) && "titleasc" == $_GET['sort'] ){
        echo '<a href="?sort=titledesc">Z-A</a>';
    }
    
    if( isset( $_GET['sort'] ) && "titledesc" == $_GET['sort'] ){
        echo '<a href="?sort=titleasc">A-Z</a>';
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多