分页导航菜单是一个网站必不可少的元素,今天就和大家分享一下倡萌使用了很久的 WordPress代码实现分页导航 的方法。
导航的效果如图所示:
实现的方法很简单,一起来折腾吧。
1.将下面的代码放到 functions.php 最后一个 ?> 的前面
function par_pagenavi($range = 9){
global $paged, $wp_query;
if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
if($max_page > 1){if(!$paged){$paged = 1;}
if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";}
previous_posts_link(' 上一页 ');
if($max_page > $range){
if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= ($max_page - ceil(($range/2)))){
for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}}
else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
next_posts_link(' 下一页 ');
if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}}
}
2.添加下面的css样式到你的 style.css中
.page_navi{overflow:hidden;width:100%;text-align:center}
.page_navi a{height:36px;border:1px solid #DDD;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;color:#888;text-decoration:none;line-height:36px;margin:2px;padding:3px 8px}
.page_navi a:hover,.page_navi a.current{border:1px solid #FFBB76;color:#FF7200;font-weight:bolder}
3.在需要显示的地方(比如主题的 index.php、archive.php、category.php、search.php)中添加下面的调用代码即可
<div class="page_navi"><?php par_pagenavi(9); ?></div>
上面的数字表示最大显示几页,你可以根据自己的需要修改。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
如果让显示的数量不受后台 设置 博客页面至多显示 控制
<a class="blog-tile-1-1__image" href="” style=”background-image: url();”>
<a class="blog-tile-1-1__title-link" href="”>
post_content)), 0, 108,”……”); ?><a class="hidden-print" href="”>Learn more
博主,我这个分页第二页不显示内容是怎么回事啊?
functions.php 最后一个 ?>
函数找到了,但是找不到最后一个 ?>
可以截一下图么?
如果结尾处没有 ?> 那就直接添加到结尾即可
第二页及其其他分页,和第一页内容一样 怎么办
按照本文,将代码添加到function.php最后一个?>前,在category.php的代码如下:
<a href="”>
但是点击第二页、第三页等等,页面内容和第一页一样
倡萌,
当翻页到第2页后,例如是:http://www.ytxinhai.com/muk/page/2,
那么他的之前的页码,或者显示首页的链接后面多了一个斜杠,http://www.ytxinhai.com/muk/
这种斜杠怎么删除,看了很久,其实原网址没有斜杠,这就造成一大片的死链,好苦恼哎!
有问题,第二页是404 .。。。
路径错误修改方法
修改wordpress\wp-includes\classe-wp.php这个文件在这个文件中找到function handle_404()这个函数,源代码如下:
function handle_404() {
global $wp_query;
// If we’ve already issued a 404, bail.
if ( is_404() )
return;
// Never 404 for the admin, robots, or if we found posts.
if ( is_admin() || is_robots() || $wp_query->posts ) {
status_header( 200 );
return;
}
// We will 404 for paged queries, as no posts were found.
if ( ! is_paged() ) {
// Don’t 404 for these queries if they matched an object.
if ( ( is_tag() || is_category() || is_tax() || is_author() || is_post_type_archive() ) && $wp_query->get_queried_object() ) {
status_header( 200 );
return;
}
// Don’t 404 for these queries either.
if ( is_home() || is_search() ) {
status_header( 200 );
return;
}
}
// Guess it’s time to 404.
$wp_query->set_404();
status_header( 404 );
nocache_headers();
}
把这段代码替换为:
function handle_404() {
global $wp_query;
if ( !is_admin() && ( 0 == count( $wp_query->posts ) ) && !is_404() && !is_robots() && !is_search() && !is_home() ) {
// Don’t 404 for these queries if they matched an object.
if ( ( is_tag() || is_category() || is_tax() || is_author() ) && $wp_query->get_queried_object() ) {
if ( !is_404() )
status_header( 200 );
return;
}
$wp_query->set_404();
status_header( 404 );
nocache_headers();
} elseif ( !is_404() ) {
status_header( 200 );
}
}
这人代码的风格也太看得让眼睛晕晕了吧, 换下行就好了
自定义文章类型用page.php模板这个就不管用了,怎么破?
请问下这段代码需要添加到哪里呢?不太懂代码