0

我正在尝试为我的帖子实现分页。虽然我有点卡在 php 函数以及如何调用它。

我猜这个简单的方法是:

<?php posts_nav_link(); ?>

但是如果我想要自定义分页怎么办?

这是我当前的代码:

<?php 
    global $wp_query;
    $total = $wp_query->max_num_pages;
    if ( $total > 1 )  {
         if ( !$current_page = get_query_var('paged') )
              $current_page = 1;
         echo paginate_links(array(
              'base' => get_pagenum_link(1) . '%_%',
              'format' => '?paged=%#%',
              'current' => $current_page,
              'total' => $total,
              'mid_size' => 4,
              'type' => 'list'
         ));
    }
?>

这是正确的,我该怎么称呼它?在 index.php 中?在哪里循环?谢谢。

编辑澄清:如何实现此代码?目前我已经把它放在我的functions.php中。那么我如何(以及在​​循环中的哪个位置)“引用”这个函数以便显示分页。

4

1 回答 1

2

有两种方法可以实现此代码。看起来你现在介于两者之间。

第一种方法是将您的分页代码直接添加到模板中,它将在循环内的某个地方使用(很可能是在结束<?php endwhile; ?>标记之前的某个地方)。如果您使用的是 single.php 模板,则将其放入其中,如果没有,请将其放入 index.php。将其放置在循环内取决于您希望分页出现在页面上的位置。

第二种方法是将分页代码添加到 functions.php 文件(您已经完成)。但是,您需要为此修改代码。您需要将代码包装在一个函数中,并为该函数命名。我用过your_custom_pagination一个例子。您的 functions.php 文件很可能已经包含在 php 标记中,因此我已将其删除。

function your_custom_pagination() {
    global $wp_query;
    $total = $wp_query->max_num_pages;
    if ( $total > 1 ) {
        if ( !$current_page = get_query_var('paged') ) {
            $current_page = 1;
        }
        echo paginate_links(array(
            'base' => get_pagenum_link(1) . '%_%',
            'format' => '?paged=%#%',
            'current' => $current_page,
            'total' => $total,
            'mid_size' => 4,
            'type' => 'list'
        ));
    }
}

然后,您需要进入您正在使用的模板,并将此代码<?php your_custom_pagination(); ?>放入我上面说明的同一位置以调用分页函数。

我还没有真正测试过你的代码,所以假设它是有效的,一切都应该工作。

于 2012-05-02T20:16:39.937 回答