PHP

wordpress制作分类目录(页面)分页失效解决办法

# 前言

最近在制作wordpress主题时、制作分类页面发现调用function下的分页函数时无法正常分页、在网上看了总结如下解决办法!

# 解决办法

其实解决办法很简单、只需要在代码内把“showposts=xx”改成"$limit=xx"即可、并且还需要接上"$paged"参数、下述代码为一个分类目录的实现并且对接上分页页码、其中的css和HTML请自行换成自己的即可!代码是完整可以运行!

# 分类目录代码实例

//分类目录的实现
<?php

$category = get_the_category();

$cat_ID = get_query_var('cat');

$limit = get_option('posts_per_page');

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
?>

<?php query_posts('cat='.$cat_ID.'&showposts='.$limit=8 .'&paged=' . $paged); while(have_posts()): the_post(); ?>
<h3 class="post-title">
<a href="<?php the_permalink(); ?>">
<?php the_title();?></a>
</h3>
<?php endwhile; wp_reset_query(); ?>


# 分页页码代码实例

//放置在主题functions.php内
function get_pagenavi($range = 8)
{ //设置在第几个的时候分页 此处依照后台-显示里面设置多少就为多少
   
global $paged, $wp_query;
    
if (!$max_page) {
        
$max_page = $wp_query->max_num_pages;
    
}
    
if ($max_page > 1) {
 
if (!$paged) {
      
$paged = 1;
        
}
        
echo "<li>"; previous_posts_link('<');echo"</li>";
        
if ($max_page > $range) {

if ($paged < $range) {
for ($i = 1; $i <= ($range + 1); $i++) {
                    
echo "<li><a href='" . get_pagenum_link($i) . "'";
                    
if ($i == $paged) echo " class='current'";
                    
echo ">$i</a></li>";
                
}
            
} elseif ($paged >= ($max_page - ceil(($range / 2)))) {
                
for ($i = $max_page - $range; $i <= $max_page; $i++) {
                    
echo "<li><a href='" . get_pagenum_link($i) . "'";
                    
if ($i == $paged) echo " class='current'";
                    
echo ">$i</a></li>";
                
}
            
} elseif ($paged >= $range && $paged < ($max_page - ceil(($range / 2)))) {
                
for ($i = ($paged - ceil($range / 2)); $i <= ($paged + ceil(($range / 2))); $i++) {
                    echo "<li><a href='" . get_pagenum_link($i) . "'";
                    
if ($i == $paged) echo " class='current'";
                    
echo ">$i</a></li>";
                
}
            
}
        
} else {
            
for ($i = 1; $i <= $max_page; $i++) {
                
echo "<li><a href='" . get_pagenum_link($i) . "'";
                
if ($i == $paged)
                    
echo " class='current'";
                
echo ">$i</a></li>";
            
}
        
}
 
echo '<li><span>共' . $max_page . '页</span></li>';
        
echo "<li class=next-pos>";
        
echo next_posts_link('>');
        
echo "</li>";
    }
}

上述代码需要自己改CSS 可以把上面echo里面的代码换成你自己的即可!这里我不做详细介绍、若有问题下方评论区留言我们一起探讨更好的方法!

# 效果图

page-wordpress.png

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.zfjsec.com/537.html
-- 展开阅读全文 --
最新Easy RCE using Docker API 复现
« 上一篇 12-15

发表评论