WordPress 网站 query_posts 是用于从网站按照条件查询得到需要的结果。query_posts()查询函数决定了哪些文章出现在 WordPress 主 循环(loop)中,正因为如此,query_posts 函数仅用于修改主页循环(Loop),而不是在页面上生成次级循环。
如果你希望在主循环外另外生 成循环,应该新建独立的 WP_Query 对象,用这些对象生成循环。在主循环外的循环上使用 query_posts 会导致主循环运行偏差,并可能在页面上 显示出你不希望看到的内容。当我们使用 query_posts 查询得到的结果很多的情况下就需要进行分页。实现 query_posts 查询结果分页的代码如下:
- <?php
- //分页
- $paged = $_GET['paged'] ? $_GET['paged'] : 1;
- //常规排序方法
- $args=array(
- 'post_type' => 'post',
- 'post_status'=>'publish',
- 'cat' => $cat, // 分类ID
- 'meta_key' => 'paixu',
- 'orderby' => 'meta_value_num',
- 'order' => 'ASC',
- 'paged' => $paged,
- 'posts_per_page' => '28', // 显示篇数
- );
- //查询文章
- $query = new WP_Query( $args );
- while ($query->have_posts()) : $query->the_post(); ?>
- <li class="clearfix"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
- <?php endwhile; ?>
在循环参数里添加'paged'=>get_query_var('paged'),可以调用网站后台设置的每页显示条数,如果要分页还要进行以下的操作:
先将下的函数放到 functions.php 里;
- $indexlistid = 'page_id='.get_option('wpd_indexlist');
- $searchlistid = 'page_id='.get_option('wpd_searchlist');
- function lingfeng_custom_pagenavi( $custom_query,$range = 4 ) {
- global $paged,$wp_query;
- if ( !$max_page ) {
- $max_page = $custom_query->max_num_pages;
- }
- if( $max_page >1 ) {
- echo '<div class="pagination">';
- if( !$paged ){
- $paged = 1;
- }
- if( $paged != 1 ) {
- echo "<a href='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link(1))."' class='extend' title='跳转到首页'>最前</a>";
- }
- if ( $max_page >$range ) {
- if( $paged <$range ) {
- for( $i = 1; $i <= ($range +1); $i++ ) {
- echo "<a href='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link($i))) ."'https://www.22vd.com/";
- if($i==$paged) echo " class='active'https://www.22vd.com/";echo ">$i</a>";
- }
- }elseif($paged >= ($max_page -ceil(($range/2)))){
- for($i = $max_page -$range;$i <= $max_page;$i++){
- echo "<a href='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link($i)) ."'https://www.22vd.com/";
- if($i==$paged)echo " class='active'https://www.22vd.com/";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='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link($i)) ."'https://www.22vd.com/";if($i==$paged) echo " class='active'https://www.22vd.com/";echo ">$i</a>";
- }
- }
- }else{
- for($i = 1;$i <= $max_page;$i++){
- echo "<a href='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link($i)) ."'https://www.22vd.com/";
- if($i==$paged)echo " class='active'https://www.22vd.com/";echo ">$i</a>";
- }
- }
- if($paged != $max_page){
- echo "<a href='https://www.22vd.com/".str_replace(array($indexlistid,$searchlistid),'',get_pagenum_link($max_page))."' class='extend' title='跳转到最后一页'>最后</a>";
- }
- echo '<span>共['.$max_page.']页</span>';
- echo "</div>";
- }
- }
- function _paging_link( $i, $title = '' ) {
- if ( $title == '' ) $title = "第 {$i} 页";
- echo "<a href='https://www.22vd.com/", esc_HTML( get_pagenum_link( $i ) ), "'>{$i}</a>";
- }
然后在分页位置,使用下面的标签调用分页按钮。
- <?php
- //调用分页
- lingfeng_custom_pagenavi($query);
- // 重置请求数据
- wp_reset_postdata();
- ?>
除了使用之外,还可以使用 WP_Query 函数查询。代码如下:
- <?php $myqueryargss = array(
- 'post_type' => 'post',
- 'posts_per_page' => 9(每页的条数),
- 'orderby'=> 'date',
- 'category_name'=>'promotion',(分类名称)
- 'order' => 'ASC',
- ); ?>
- <?php $myquerys= new WP_Query( $myqueryargss );?>
- <?php if ( $myquerys->have_posts() ): ?>
- <?php while ( $myquerys->have_posts() ) : $myquerys->the_post(); ?>
- <?php if ( $myquerys->current_post < 9) : ?>
- <li> <b>·</b><a href="<?php the_permalink(); ?>" target="_blank"> <?php echo mb_strimwidth(get_the_title(), 0, 26, '...'); ?></a></li>
- <?php endif; ?>
- <?php endwhile; ?>
- <?php endif; ?>
- <?php wp_reset_postdata();?>
文章標題:WordPress网站实现query_posts查询万能分页代码
文章連結:https://www.wuyanshuo.cn/280.html
更新時間:2022年3月21日
1、本站所有資源均不添加推廣檔案或浮水印,壓縮包內若有廣告檔案和浮水印請勿輕易相信。
2、本站資源均為兩層壓縮,第一層7z(尾碼若為wys,請自行修改為7z)有解壓密碼; 第二層zip或cbz,無解壓密碼,可直接使用漫畫類軟件程式查看; 詳情可參攷解壓教程。
3、本站大部分內容均收集於網絡! 若內容侵犯到您的權益,請發送郵件至:admin#wysacg.top我們將第一時間處理! 資源所需價格並非資源售賣價格,是收集、整理、編輯詳情以及本站運營的適當補貼,並且本站不提供任何免費技術支援。 所有資源僅限於參攷和學習,版權歸原作者所有!