is_home()或is_front_page()使用分页检查不显示下一页的内容

时间:2018-01-10 12:08:03

标签: wordpress pagination

我有一个index.php页面,我在其中添加了以下代码,根据加载的页面显示不同的内容:

if( is_page( 'my-account' ) ) {
   get_template_part( 'template-parts/my-account', 'account' );
} else if( is_home() || is_front_page() ) {
   get_template_part( 'template-parts/album-grid', 'index' );
} else if( is_page( 'create-album')  ) {
   get_template_part( 'template-parts/create-album', 'create-album' );
}

在album-grid.php中,我正在使用WP_Query和分页。分页显示OK。当我点击下一步链接时,我会转到http://albumlocal.com/page/2,但不会显示任何内容。我期待在这里看到下一组记录。

以下是album-grid.php文件中的代码:

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

$posts = new WP_Query( array(
        'taxonomy'          => 'album-category',
        'post_type'         => array('albums'),
        'posts_per_page'    => 10,
        'paged'             => $paged,
    )
);

if( $posts->have_posts() ) { ?>
    <div class="grid-table" xmlns="http://www.w3.org/1999/html">
            <?php
            while ( $posts->have_posts() ) :$posts->the_post(); ?>
                <a class="grid-anchor" href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
                    <div class="grid-col">
                        <h3><?php the_title(); ?></h3>
                        <div class="grid-thumbnail">
                            <?php the_post_thumbnail('home_grid_thumbnail'); ?>
                        </div>
                        <div class="grid-action">
                            <i class="fa fa-camera"></i> Photos
                        </div>
                    </div>
                </a>
            <?php
            endwhile;
            wp_reset_query(); ?>
    </div>
<?php } ?>

<div class="clear"></div>

<?php echo paginate_links( array(
    'total' => $posts->max_num_pages,
    'mid_size' => 2,
    'format' => 'page/%#%'
)); ?>

我认为当我在第二页或任何子页面(例如http://albumlocal.com/page/2is_home()is_front_page()不再满足时,因此它不会加载所需的模板部分{{ 1}}。

album-grid.php

我不确定是否是这种情况,但如果是这样,我不知道如何让它发挥作用。

1 个答案:

答案 0 :(得分:0)

尝试在主题文件夹中创建:

  • home.php for the Grid
  • 页面模板page.create-album.php内嵌
<?php //Template Name: Create Album
//Here all the html and php
  • 页面模板page.my-account.php内嵌
<?php //Template Name: My Account
//Here all the html and php

我将自动完成所有操作,您将不再需要:

if( is_page( 'my-account' ) ) {
   get_template_part( 'template-parts/my-account', 'account' );
} else if( is_home() || is_front_page() ) {
   get_template_part( 'template-parts/album-grid', 'index' );
} else if( is_page( 'create-album')  ) {
   get_template_part( 'template-parts/create-album', 'create-album' );
}

我不会&#39;知道它是否会为你解决问题但是,我认为它会更清洁,而且我已经在home.php上做了这样的分页,没有任何问题。

试试吧,如果它不起作用,我们会找到另一种方式:)