之前大叔介绍过很多wordpress的分类列表分页和评论的分页,一直没介绍过文章内容的分页,今天有空写个教程来给大家学习一下,首先,wordpress文章分页要从编辑器和分页定义函数两个地方来实现,现在我们就直接走教程吧。
首先,将下面的代码放入wordpress主题文件夹的functions.php内
// 在 WordPress 编辑器添加“下一页”按钮
add_filter('mce_buttons','add_next_page_button');
function add_next_page_button($mce_buttons) {
$pos = array_search('wp_more',$mce_buttons,true);
if ($pos !== false) {
$tmp_buttons = array_slice($mce_buttons, 0, $pos+1);
$tmp_buttons[] = 'wp_page';
$mce_buttons = array_merge($tmp_buttons, array_slice($mce_buttons, $pos+1));
}
return $mce_buttons;
}
//内容分页
function custom_wp_link_pages( $args = '' ) {
$defaults = array(
'before' => '<div class="pagelist">分页阅读:',
'after' => '</div>',
'text_before' => '',
'text_after' => '',
'next_or_number' => 'number',
'nextpagelink' =>'下一页',
'previouspagelink' =>'上一页',
'pagelink' => '%',
'echo' => 1
);
$r = wp_parse_args( $args, $defaults );
$r = apply_filters( 'wp_link_pages_args', $r );
extract( $r, EXTR_SKIP );
global $page, $numpages, $multipage, $more, $pagenow;
$output = '';
if ( $multipage ) {
if ( 'number' == $next_or_number ) {
$output .= $before;
for ( $i = 1; $i < ( $numpages + 1 ); $i = $i + 1 ) {
$j = str_replace( '%', $i, $pagelink );
$output .= ' ';
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= _wp_link_page( $i );
else
$output .= '<span>';
$output .= $text_before . $j . $text_after;
if ( $i != $page || ( ( ! $more ) && ( $page == 1 ) ) )
$output .= '</a>';
else
$output .= '</span>';
}
$output .= $after;
} else {
if ( $more ) {
$output .= $before;
$i = $page - 1;
if ( $i && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $previouspagelink . $text_after . '</a>';
}
$i = $page + 1;
if ( $i <= $numpages && $more ) {
$output .= _wp_link_page( $i );
$output .= $text_before . $nextpagelink . $text_after . '</a>';
}
$output .= $after;
}
}
}
if ( $echo )
echo $output;
return $output;
}
给编辑器加了下一页按钮,也定义了分页函数,下面就是到single.php文章页面的相应位置里插入调用函数,即可前端显示分页按钮了,调用函数如下:
<?php custom_wp_link_pages();?>
到了这步,分页就出来了。。。
CSS我也贴出吧,比较简约。。。如果你的css技术流弊的话,欢迎分享给大家
.pagelist { padding: 10px 0; background: #f3f3f3; text-align: center; margin-top: 20px }
.pagelist>span,.pagelist>a{background-color: #fff ;border: 1px#ddd solid ;color: #000;margin-left: 5px;padding: 4px 10px ;text-transform: uppercase; }
.pagelist>a:hover,.pagelist>span{background-color: #363636;color: #fff !important;}