WordPress修改置顶文章加入到显示文章数量内[新版]

功能介绍

WordPress默认第一页的置顶文章不在数量内,那么如果你设置首页文章数量为10的话,你有四篇置顶文章,那么他就会显示14篇文章,这样让首页的文章不美观,我们可以增加一个代码来控制文章数量。

代码仅第一页文章有效,第二页以后和用户中心的文章数量是你后台设置的文章数量(不受置顶文章的影响)

修复bug

  • 修复首页总页数显示错误
  • 暂未实现其他页面置顶

代码

function modify_pre_get_posts($query) {
if ($query->is_home() && $query->is_main_query()) {
        $sticky_posts = get_option('sticky_posts');
        $sticky_count = count($sticky_posts);
        $posts_per_page = get_option('posts_per_page');
        if (!$query->is_paged()) {
            if ($sticky_count > 0) {
                $query->set('posts_per_page', $posts_per_page - $sticky_count);
            }
        } else {
            if (!empty($sticky_posts)) {
                $query->set('post__not_in', $sticky_posts);
                $offset = ( $query->query_vars['paged'] - 1 ) * $posts_per_page - count($sticky_posts);
                $query->set('offset', $offset);
            }
    }
}}
add_action('pre_get_posts', 'modify_pre_get_posts');
function adjust_pagination() {
if (is_home()) {
        global $wp_query;
        $total_posts = $wp_query->found_posts;
        $sticky_posts = get_option('sticky_posts');
        $sticky_count = count($sticky_posts);
        $posts_per_page = get_option('posts_per_page');
        $total_posts -= $sticky_count;
        $total_pages = ceil($total_posts / $posts_per_page);
        $wp_query->max_num_pages = $total_pages;
}}
add_action('wp', 'adjust_pagination');
温馨提示: 本文最后更新于2024-09-27 23:42:57,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 三尾狐
版权声明

站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。


本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容