Php 使用分页时,模板标记和样式将消失
我正试图在我的自定义wordpress主题中创建分页,但我无法解决问题。基本上,我得到的是一个名为“Portfolio page”的定制页面模板,它位于Php 使用分页时,模板标记和样式将消失,php,wordpress,pagination,Php,Wordpress,Pagination,我正试图在我的自定义wordpress主题中创建分页,但我无法解决问题。基本上,我得到的是一个名为“Portfolio page”的定制页面模板,它位于page Portfolio.php,我每页最多显示5篇文章 当我点击进入下一个包含较旧或较新帖子的页面时,我会看到portfolio/page/page number here/的url,而原始url是portfolio/,其中包含所有标记和内容。当url不再位于portfolio/时,这会导致所有标记和样式消失。如何使较旧或较新的帖子加载到同
page Portfolio.php
,我每页最多显示5篇文章
当我点击进入下一个包含较旧或较新帖子的页面时,我会看到portfolio/page/page number here/
的url,而原始url是portfolio/
,其中包含所有标记和内容。当url不再位于portfolio/
时,这会导致所有标记和样式消失。如何使较旧或较新的帖子加载到同一模板中
我一直在搜索法典和支持,寻找答案,但我甚至找不到其他有这个问题的人。我很确定我错过了一些重要的事情,导致了这一切的发生
这是我的页面公文包.php
:
<?php /* Template Name: Portfolio Page */ ?>
<?php get_header(); ?>
<?php
$num_posts = ( is_front_page() ) ? 1 : 5;
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => $num_posts
);
$query = new WP_Query( $args );
?>
<section id="portfolio-wrapper">
<ul id="portfolio-list" class="list-reset">
<?php if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?>
<li class="clear-fix portfolio-piece">
<h1 class="portfolio-piece-title"><?php the_title(); ?></h1>
<div class="portfolio-piece-gallery"><?php the_field('images'); ?></div>
<div class="portfolio-piece-content"><?php the_content(); ?></div>
</li>
<?php endwhile; ?>
</ul>
<div class="pagination-wrapper">
<?php
if ( function_exists( 'pagination' ) ) {
pagination( $query->max_num_pages );
}
?>
<?php endif; wp_reset_postdata(); ?>
</div>
</section>
<?php get_footer(); ?>
-
我使用的分页函数如下所示:
function pagination( $pages = '', $range = 4 ) {
$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 ( 1 != $pages ) {
echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>";
if ( $paged > 2 && $paged > $range+1 && $showitems < $pages) {
echo "<a href='".get_pagenum_link( 1 )."'>« First</a>";
}
if ( $paged > 1 && $showitems < $pages ) {
echo "<a href='".get_pagenum_link( $paged - 1 )."'>‹ Previous</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\">".$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 )."\">Next ›</a>";
}
if ($paged < $pages - 1 && $paged + $range - 1 < $pages && $showitems < $pages) {
echo "<a href='".get_pagenum_link($pages)."'>Last »</a>";
}
echo "</div>\n";
}
}
函数分页($pages='',$range=4){
$showitems=($range*2)+1;
全球$paged;
如果(空($paged)){
$paged=1;
}
如果($pages==''){
全局$wp_查询;
$pages=$wp\u query->max\u num\u pages;
如果(!$页){
$pages=1;
}
}
如果(1!=$pages){
呼应“$pages.”的“$pages.”页;
如果($paged>2&&$paged>$range+1&&$showitems<$pages){
回声“;
}
如果($paged>1&&$showitems<$pages){
回声“;
}
对于($i=1;$i=$paged+$range+1 | |$i有几个问题可能会导致您遇到的问题。首先,在wordpress中,让页面和帖子类型共享同一个slug—“公文包”是一个有很好文档记录的问题。这里有一个简单的解决方法,因为您使用的是自定义模板,而不是归档模板或此帖子类型,用于在注册时禁用公文包帖子类型的存档-
'has_archive' => false
我也会刷新您的重写规则后,改变这一点,通过重新保存永久链接设置,以确保这不会造成任何问题
此外,如果查询中不包含分页变量,分页将无法正常工作。请先声明它,然后在查询中包含:
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'portfolio',
'posts_per_page' => $num_posts,
'paged' => $paged,
);
$query = new WP_Query( $args );
你有一个我们可以查看的url吗?你在后续页面上有404吗?@johnnyd23不,这是奇怪的部分。我仍然有同样的问题:(