我正在尝试为我的帖子实施分页。虽然我有点困在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中。那么如何(以及在循环中的哪个位置)我'引用'这个函数,以便显示分页。
答案 0 :(得分:1)
有两种方法可以实现此代码。看起来你现在处于两者之间。
第一种方法是将您的分页代码直接添加到模板中,它将在循环内的某个位置使用(很可能在结束<?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(); ?>
放入我上面说明的相同位置以调用分页功能。
我还没有真正测试过你的代码,所以假设它有效,一切都应该有效。