如何使用 WP_Query 在 WordPress 中创建分页

本教程将详细介绍如何创建带分页的自定义 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)."'>&laquo; 首先</a> " ; if($paged > 1 && $showitems < $pages) echo " < a href = '".get_pagenum_link($paged – 1)."' > &lsaquo; 上一页</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 /* 分页文字大小 */ lineheight : 13px ;浮动 /* 分页浮动方向 */ } .分页跨度, 分页 A {显示向左飘浮; _利润 2像素 2像素 2像素 0 ;内边距 6 像素 9像素 5像素 9 像素文字装饰宽度自动颜色 #fff; /* 分页文字颜色 */背景: 第555章/* 分页非活动背景色 */webkittransition : 背景 15秒 -moz-过渡 背景 15秒 -ms转换 背景 15秒 -o-过渡 背景 15秒 过渡 背景 15秒 } 分页 a 悬停{颜色 #fff;背景 #6AAC70; /* 悬停时的分页背景 */ } .分页 当前{内边距 6px 9像素 5像素 9 像素背景 #6AAC70; /* 当前页面背景 */ color : #fff; }

这是自定义分页代码的输出:

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号