Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用分页时,模板标记和样式将消失_Php_Wordpress_Pagination - Fatal编程技术网

Php 使用分页时,模板标记和样式将消失

Php 使用分页时,模板标记和样式将消失,php,wordpress,pagination,Php,Wordpress,Pagination,我正试图在我的自定义wordpress主题中创建分页,但我无法解决问题。基本上,我得到的是一个名为“Portfolio page”的定制页面模板,它位于page Portfolio.php,我每页最多显示5篇文章 当我点击进入下一个包含较旧或较新帖子的页面时,我会看到portfolio/page/page number here/的url,而原始url是portfolio/,其中包含所有标记和内容。当url不再位于portfolio/时,这会导致所有标记和样式消失。如何使较旧或较新的帖子加载到同

我正试图在我的自定义wordpress主题中创建分页,但我无法解决问题。基本上,我得到的是一个名为“Portfolio page”的定制页面模板,它位于
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 )."'>&laquo; First</a>";
     }

     if ( $paged > 1 && $showitems < $pages ) {
       echo "<a href='".get_pagenum_link( $paged - 1 )."'>&lsaquo; 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 &rsaquo;</a>";
     }

     if ($paged < $pages - 1 &&  $paged + $range - 1 < $pages && $showitems < $pages) {
       echo "<a href='".get_pagenum_link($pages)."'>Last &raquo;</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不,这是奇怪的部分。我仍然有同样的问题:(