对首先,为了能够突出显示当前的排序方法,我们尝试检索GET变量sort_by
在url中发生:
<?php switch ($_GET["sort_by"]) {
case \'most_recent\':
$active = \'most_recent\';
break;
case \'most_favourite\':
$active = \'most_favourite\';
break;
case \'most_viewed\':
$active = \'most_viewed\';
break;
default:
// However you sort by default
$active = \'most_recent\';
}?>
如果存在有效的排序顺序,
$active
设置为此。否则将设置为默认顺序。我们稍后会用到这个。
接下来,我们检索url,然后删除sort_by
获取变量。这允许我们稍后手动将其添加到链接中,而无需重复。
<?php
//Retrieve _GET variables
$params = $_GET;
//Retrieve \'sort_by\' variable
unset($params[\'sort_by\']);;
//Rebuild url without \'sort_by\' variable
$url = get_pagenum_link();
$url = strtok($url, \'?\');
$url =$url.\'?\'.http_build_query($params);
?>
最后,我们构建链接。这里我用过
$active
在当前使用排序方法时有条件地添加“active”类。
<ul>
<li <?php if($active == "most_recent"): ?> class="active"<? endif ?>><a href="http://<?php echo $url ?>&sort_by=most_recent">Most recent </a></li>
<li <?php if($active == "most_favourite"): ?> class="active"<? endif ?>><a href="http://<?php echo $url ?>&sort_by=most_favourite">Most favourite</a></li>
<li <?php if($active == "most_viewed"): ?> class="active"<? endif ?>><a href="http://<?php echo $url ?>&sort_by=most_viewed">Most viewed </a></li>
</ul>
以上所有代码都应该出现在您希望链接出现的任何地方。你可以把它放在你的
functions.php
, 但是,在函数内部,然后在希望链接出现的任何地方调用该函数。
希望这有帮助:D