使用分页对存档页面上的自定义帖子进行排序

时间:2014-06-24 作者:Luke Seall

我有定制的分类法归档页面,其中有一个下拉列表,允许用户对帖子重新排序。它基本上是等待用户从下拉列表中进行选择,然后使用array_merge( $wp_query->query..... 创建新查询并对帖子重新排序。这很好用。我还使用wp分页来显示编号分页。这也很好。

问题是,当用户对列表重新排序,然后单击分页转到第2页时,新的排序将丢失并恢复为原始排序。我无法解决这个问题。有什么想法吗?

1 个回复
SO网友:Manolis

我也有同样的问题。我使用表单对数据进行排序,并使用paginate_links. 我的解决方案是$_SESSIONS 存储$_POST 来自排序的数据(而不仅仅是解析$_POST 数据),并将窗体操作设置为get_permalink(). 如果未使用分页或未使用分页,请确保取消设置会话$_POST 正在初始化排序窗体。

<script>
function submitform(val) {
    document.getElementById(\'sort-option\').value = val;
    document.getElementById(\'form-sort\').submit();
}
</script>

<form id="form-sort" action="<?php echo get_permalink(); ?>" method="post">
    <ul>
        <li>Sort By:</li>
        <li><a href="#!" onclick="javascript: submitform(\'newest\');">Newest rating</a>
        </li>
        <li><a href="#!" onclick="javascript: submitform(\'highest\');">Highest rating</a>
        </li>
        <li><a href="#!" onclick="javascript: submitform(\'lowest\');">Lowest rating</a>
        </li>
    </ul>
    <input type=\'hidden\' id=\'sort-option\' name=\'sort-option\' value=\'\'>
</form>
-

if($wp_query->get(\'page\') == 0 && empty($_POST) && !empty($_SESSION)) session_unset();

if(!empty($_POST) || !empty($_SESSION)) {

    switch($_POST[\'sort-option\']) {
        case \'newest\':
            $_SESSION["sort"] = SORT_DESC;
            $_SESSION["sort_by"] = \'review_date\';
            break;
        case \'highest\':
            $_SESSION["sort"] = SORT_DESC;
            $_SESSION["sort_by"] = \'rating\';
            break;
        case \'lowest\':
            $_SESSION["sort"] = SORT_ASC;
            $_SESSION["sort_by"] = \'rating\';
            break;
    }

    foreach($reviews as $k => $v) {
        $column_id[$k] = $v[$_SESSION["sort_by"]];
    }

    array_multisort($column_id, $_SESSION["sort"], SORT_NUMERIC, $reviews);

}
如果您显示一些代码,我可能可以为您提供更多帮助。

结束

相关推荐

Pagination Custom post type

我有一个名为“doel”的自定义帖子类型。我制作了一个页面模板来显示所有doel项目在这个页面模板中,我循环使用“doel”post类型,在其中6个之后,我想进行分页。仅显示分页。我开始上网,这似乎是wp 3.4版之后的常见问题我在这个网站和wp论坛上尝试了一些解决方案,但没有一个有效。例如,我尝试的是调整循环,因此分页将在循环中、循环外或endwhile和endif之间。此外,我还尝试了wp pagenavi插件和最初的wp previous和next post链接,但它们都不起作用,所以我认为我的循环