本教程将详细介绍如何创建带分页的自定义 WordPress 循环。
为了实现这个自定义循环,我将使用 WP_Query 类来设置一个新查询,然后显示带有分页的帖子。现在请记住,默认的 WordPress 分页(由下一页和上一页实现)很容易实现和编码。然而,这种设置与现代主题不太相配。
自定义查询
本教程基于 WP_Query,因此我建议您阅读相关的法典页面以了解此类的工作原理。
正在运行的查询示例如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 <?php /** * 模板名称:自定义页面*/ get_header ( ) ; ?> <?php $paged = ( 获取查询变量( “已分页” ) ) ? 获取查询变量( “已分页” ) : 一; $参数 = 数组( 'posts_per_page' = > 4 、 ‘分页’ = > $分页) ; $自定义查询 = 新的 WP_查询( $参数 ) ; ?> < ! —-开始——– > < div class = "wrap" > < div id = "primary" 类= “内容区域” > <主要id = “主要” 类= “站点主” 角色= "main" > <?php while ( $custom_query – > have_posts ( ) ) : $custom_query – > the_post ( ) ; ? > <div> _ <ul> _ _ <李> <h3> < a _ _ href = " <?php the_permalink ( ) ; ?> ” > <?php 标题( ) ; ? > </a> </h3> _ _ _ <div> _ _ <ul> _ _ <div> < a _ _ href = " <?php the_permalink ( ) ; ?> >> < ?php the_post_thumbnail ( '缩略图' ) ; ? > </a> </div> _ _ _ </ul> _ _ <ul> _ _ <p> < ? php 回声 内容( ) ; ? > </p> _ </ul> _ _ </div> _ _ <div> _ _ </li> _ _ </ul> </div> _ _ _ _ < ! — 结尾 博客 帖子 — > <?php 最后; ?> <?php 如果 ( function_exists ( “分页” ) ) {分页( $custom_query – > max_num_pages ) ; } ?> < /主> < ! — #main — > </div> < ! — #primary — > </div> < ! — 。裹 — > < ! —-结束——– > < ? php get_footer ( ) ;
渲染分页的代码
通过在主题文件夹中创建模板文件(名称为 CusotmPage.php),将以下代码放入自定义静态页面中。
第123章 如果 ( function_exists ( “分页” ) ) {分页( $custom_query – > max_num_pages ) ; } ?>
在管理区创建一个页面,选择模板,如下图:
分页功能
自定义分页功能需要以下代码。将此代码放入functions.php(位于主题文件夹中):
123456789101112131415161718192021222324252627282930313233343536功能 分页( $页 = '' , 美元范围 = 4 ) { $显示项目 = ( $范围 * 2 ) +1 ;全球的 $已分页; if (空( $分页) ) $分页 = 一; if ( $页 == '' ) {全球的 $ wp_query ; $页数 = $ wp_query – > max_num_pages ; if ( ! $页数) { $页数 = 一; } }如果( 1 ! = $页) {回显 "<div class=\"pagination\"><span>页面 " 。 $已分页。 “ 的 ” 。 $页数。 “</span>” ; if ( $已分页 > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>« 首先</a> " ; if($paged > 1 && $showitems < $pages) echo " < a href = '".get_pagenum_link($paged – 1)."' > ‹ 上一页</a> " ; for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $ i <= $paged-$range-1) || $pages <= $showitems )) { echo ($paged == $i)? " < span class = \ "当前\ " > ".$i." </span> “ : ” < a href = '".get_pagenum_link($i)."' 类= \ “非活动\ ” > “.$i。” </a> " ; } } if ($paged < $pages && $ showitems < $pages) echo " < a href = \ " ".get_pagenum_link($paged + 1)." \ " >下一步 � </a> " ; if ($paged < $pages – 1 && $paged+$range-1 < $pages && $showitems < $pages) echo " < a href = '".get_pagenum_link($pages)."' >最后 ” </a> " ; echo " </div> \ n " ; } } _
分页样式
打开 style.css(位于主题文件夹中)并添加以下代码:
1234567891011121314151617181920212223242526272829303132 /* 分页 */ .分页 {明确:两者;位置:相对;字体大小: 11px ; /* 分页文字大小 */ line – height : 13px ;浮动:右; /* 分页浮动方向 */ } .分页跨度, 。分页 A {显示:块;向左飘浮; _利润: 2像素 2像素 2像素 0 ;内边距: 6 像素 9像素 5像素 9 像素;文字装饰:无;宽度:自动;颜色: #fff; /* 分页文字颜色 */背景: 第555章/* 分页非活动背景色 */ – webkit – transition : 背景 。 15秒 缓入缓出; -moz-过渡: 背景 。 15秒 缓入缓出; -ms –转换: 背景 。 15秒 缓入缓出; -o-过渡: 背景 。 15秒 缓入缓出;过渡: 背景 。 15秒 缓入缓出; } 。分页 a :悬停{颜色: #fff;背景: #6AAC70; /* 悬停时的分页背景 */ } .分页 。当前{内边距: 6px 9像素 5像素 9 像素;背景: #6AAC70; /* 当前页面背景 */ color : #fff; }
这是自定义分页代码的输出:
RSS