当前位置: 首页 > 知识库问答 >
问题:

分页在Wordpress中不起作用

万俟经纶
2023-03-14

不明白为什么这个突然停止工作。网站是:http://www.revival.tv/sermons/topical-messages/

当它进入第二页时,它只使用了归档模板:(不确定为什么这样做,它在去年工作得很好。想知道Wordpress更新是否做到了这一点,我们只是注意到了它。

我使用以下的分页:

function pagination($pages = '', $range = 2) {  
     $showitems = ($range * 2)+1;  

     global $paged;

     if(empty($paged)) $paged = 1;

     if($pages == '') {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages) {
             $pages = 1;
         }
     }   

     if($pages != 1) {
         echo "<div class='pagination group'>";
         if($paged > 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='current-page'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>";
         echo "</div>\n";
     }
}

然后改写布道:

// Rewrite the Sermon URL
function sermon_rewrite() {
    $cpt = 'sermon';
    $tax = 'series';

    add_rewrite_rule(
        '^'.$cpt.'s/([^/]+)/page/([0-9]+)/?$',
        'index.php?post_type='.$cpt.'&'.$tax.'=$matches[1]&paged=$matches[2]',
        'top'
    );
    add_rewrite_rule(
        '^'.$cpt.'s/([^/]+)/([^/]+)/?',
        'index.php?post_type='.$cpt.'&'.$tax.'=$matches[1]&'.$cpt.'=$matches[2]',
        'top'
    );
    add_rewrite_rule(
        '^'.$cpt.'s/([^/]+)/([^/]+)/([^/]+)/?',
        'index.php?post_type='.$cpt.'&'.$tax.'=$matches[1]&'.$tax.'=$matches[2]&'.$cpt.'=$matches[3]',
        'top'
    );
}
add_action('init','sermon_rewrite');

// Update Wordpress with the rewrite
function sermon_link( $link, $post = 0 ) {
    $cpt = 'sermon';
    $tax = 'series';
    $parent = null;

    $terms = get_the_terms($post->ID, $tax);

    if( !$terms ) {
        $child = 'other';
    } else {
        $child_obj = array_pop($terms);
        $parent_obj = get_term_by('id', $child_obj->parent, $tax);
        $child = $child_obj->slug;
        if ( $parent_obj ) {
            $parent = $parent_obj->slug;
        }
    }

    if ( $post->post_type == $cpt && $terms ) {
        return home_url(user_trailingslashit($cpt.'s/'.$parent.'/'.$child.'/'.$post->post_name));
    } else if ( $post->post_type == $cpt && !$terms ) {
        return home_url(user_trailingslashit($cpt.'s/'.$child.'/'.$post->post_name));
    } else {
        return $link;
    }
}
add_filter('post_type_link', 'sermon_link', 1, 3);

共有1个答案

蔚俊人
2023-03-14

我想我已经发现了问题(我只是在这里使用你提供的URL进行尝试和出错)。以下URL已成功加载第2页。

http://www.revival.tv/sermons/topical-messages/page/2/?post_type=sermons

这让我想到,只需在索引之后添加s。php?post_类型='$cpt应该可以做到这一点。见下面的示例:

add_rewrite_rule(
    '^'.$cpt.'s/([^/]+)/page/([0-9]+)/?$',
    'index.php?post_type='.$cpt.'s&'.$tax.'=$matches[1]&paged=$matches[2]',
    'top'
);

 类似资料:
  • 我有这个搜索。按年份/类型显示搜索结果的php: 的设置 在wordpress是显示200结果。我希望这些结果被分页,假设每页20篇文章,然后下一篇,下一篇...在页面内,没有其他结果页面的链接。 我试图添加 ,这是我从Category页面获得的一段代码,在该页面中分页工作没有问题,但在搜索结果中不显示任何与分页相关的内容。类别页面代码为: 而且该类别的导航效果很好,我如何在搜索页面的结果中获得相

  • Frontpage分页不起作用:当点击page2/3/4/etc时,它只是重新加载首页,而不显示旧条目。我尝试了几件事情:首先,禁用所有活动插件,以确保没有冲突。第二,尝试在设置中将永久链接更改为默认 我的代码是 谢啦

  • 我尝试了多种解决方案,但都不起作用。 当我转到/page/2时,它不起作用。 我正在index.php我的主题执行自定义查询。 这是我的网站链接:我的网站主页 此页面不工作(404)-页面不工作(格式为-mywebsite/page/2/) 刚刚意识到这一页2作品-正在工作的页面(的格式-mywebsite.com/?page=2)

  • 我是WordPress的新手。我将定制参数传递给WP_Query函数。返回无效结果。我限制每页10的产品,但它显示所有的产品。 $args-打印结果

  • 我还在这个问题上犹豫不决。。 我的WordPress博客上的分页无效-http://www.example.com/news 当你点击不同的页码时,它会正确更新网址(和页面标题),但不会显示不同的帖子。 我试过: 禁用所有插件 更改永久链接结构 更改“设置”中显示的博客文章数 没有什么对我有用。 我见过许多自定义查询的解决方案,但我使用的是您在“设置”中设置的“帖子”页面 在这种情况下,我应该修改

  • 我有两个来自存档的自定义帖子类型。php之一是归档slug。另一个是类别slug。php。分页在归档slug上起作用。php,但在类别slug上的代码相同。php甚至不会显示。我对Wordpress和php有些陌生,所以我确定我在这里遗漏了一些东西,我只是不知道什么?