允许用户选择分页或下一个/上一个(合并)

时间:2012-06-13 作者:AndrettiMilas

我正在构建一个主题选项面板,希望用户能够在我的存档和主页中的下一个/上一个链接或分页之间进行选择。

我需要帮助将下面的两个函数(分页和下一个上一个)结合起来,以创建一个基于用户选择的函数。

我想我添加到选项面板的功能如下所示:

array( "name" => "Paginate or next/previous links?",
    "desc" => "Choose your option",
    "id" => $shortname."_next_prev_or_paginate",
    "type" => "select",
    "options" => array("Next/Previous Links", "Pagination"),
    "std" => ""),
我这样称呼分页:

<?php
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
    \'base\' => str_replace( $big, \'%#%\', get_pagenum_link( $big ) ),
    \'format\' => \'?paged=%#%\',
    \'current\' => max( 1, get_query_var(\'paged\') ),
    \'total\' => $wp_query->max_num_pages
) );
?>
以下是我如何调用下一个/上一个链接:

<?php previous_posts_link (\'Newer\') ?>
<?php next_posts_link(\'Older\') ?>

3 个回复
最合适的回答,由SO网友:shabushabu 整理而成

一个简单的if语句应该这样做,如下所示:

function my_theme_navigation() {
    if( get_option( $shortname .\'_next_prev_or_paginate\' ) == \'Next/Previous Links\' ) :
        // the block for next-prev navigation
    else :
        // the code for pagination
    endif;
}
我无法知道您的第一个代码块中的数组究竟做了什么,但我想我是对的。你唯一要做的就是替换$shortname 不管这个变量是什么。如果是全局的,那么只需添加global $shortname; 到函数的顶部。我还假设select选项的值与标题相同。

SO网友:WouterB

我同意@shabushabu的观点,只要两个函数都准备好了,if语句可能会很好地完成这项工作。我也会考虑添加wp_pagenavi 作为一个选项,它本质上结合了您的两个选项。wp_pagenavi

SO网友:akamaozu

干得好,但我会做得有点不同:

function get_pagination_option() {
$option = get_option(your_option_name_here);
if ($option)? return $option : return \'no_selection\';
}

function display_pagination() {
$option = get_pagination_option();

  switch($option) {
    case \'no_selection\':
      //handle no pagination selected condition
    break;

    case \'previous_next\':
      //handle previous/next pagination selection
    break;

    case \'full_pagination\':
      //handle full pagination selection
    break;

  }

}
为什么?

开关/机箱速度略快。这并不是游戏突破性的更快,但养成了尽可能节省每一微秒的习惯是很好的。

无论出于何种原因,处理没有选择的情况。

通常,给你的功能一件事做。它做得越多,灵活性就越差,其他人就越难调试它。

我承认在这项工作完成之前提供的解决方案,但这更符合“最佳实践”;)

结束

相关推荐

Pagination on custom taxonomy

我很难做到这一点。这不是我第一次遇到分页问题,或者说是WPs URL系统的问题。基本上我有这个URL:http://example.com/location/dc 并加载taxonomy-location.php 样板现在,我将为主题添加分页功能。所以我有一个URL:http://example.com/location/dc/page/2 它不会加载taxonomy-location.php 模板,它实际上加载404 样板这是调试栏显示的内容:看起来它得到了正确的值,WP只是没有加