0

我的 wordpress 插件中有以下情况:我有一个数据库条目的详细信息页面,可以这样访问:

http://localhost:8888/studio/wp-admin/admin.php?page=myplugin-details&id=42

接下来是向此页面添加排序选项,我用以下代码解决了它:

网址将是:

http://localhost:8888/studio/wp-admin/admin.php?page=myplugin-details&id=42&orderby=answer&order=asc



<?php
            if (!empty($_GET['orderby'])) {
                $pos = strpos($_SERVER["REQUEST_URI"], 'orderby');
                $url = substr($_SERVER["REQUEST_URI"], 0, $pos-1); 
                if ($_GET['order'] == 'desc') {
                    echo '<th class="sortable desc">';
                    echo '<a href="'.$url.'&orderby=answer&amp;order=asc">';
                } else {
                    echo '<th class="sortable asc">';
                    echo '<a href="'.$url.'&orderby=answer&amp;order=desc">';
                }
            } else {
                echo '<th class="sortable desc">';
                echo '<a href="'.$_SERVER["REQUEST_URI"].'&orderby=answer&amp;order=asc">';
            }
            ?>

这工作正常,但我必须做那个 URL/REQUEST_URI 的东西还是有一个更简单的解决方案?

谢谢!

4

1 回答 1

1

在我看来,您不应该使用strpos来提取 URL。如果您稍后对代码进行更改,事情可能会变得很奇怪。您可以str_replace改用:

if ($_GET['order'] == 'desc') {
    echo '<th class="sortable desc">';
    echo '<a href="'.str_replace("order=desc", "order=asc", $_SERVER["REQUEST_URI"]).'">';
} else {
    echo '<th class="sortable asc">';
    echo '<a href="'.str_replace("order=asc", "order=desc",$_SERVER["REQUEST_URI"]).'">';
}
于 2013-09-09T20:23:18.880 回答