Custom page template

时间:2016-11-20 作者:Pravayest Pravayest

我想为帖子使用自定义页面模板。因此,我创建了新的php文件:

<?php /* Template Name: Blog-2-col */ ?>
<?php get_header(); ?>

<div class="content">

    <?php
    if ( have_posts() ) : ?>

        <div class="container">
            <div class="row">
                <?php while ( have_posts() ) : the_post();?>
                    <?php get_template_part( \'template-parts/blog-2-col\', get_post_format() );?>
                <?php endwhile; ?>
            </div><!-- row -->
        </div><!-- ontainer -->

        <div class="container">
            <div class="row">
                <div class="col-sm-12">
                    <?php wpbeginner_numeric_posts_nav(); ?>
                </div>
            </div>
        </div>

    <?php else :?>
        <?php get_template_part( \'template-parts/content\', \'none\' );?>
    <?php endif; ?>

</div>

<?php get_footer();
但我无法在循环中获取帖子。

1 个回复
最合适的回答,由SO网友:Dan. 整理而成

如果使用该模板的页面设置为“帖子”页面(在“管理设置”中),则代码将仅显示帖子列表。

如果希望任何其他页面显示帖子列表,则需要在模板内编写自定义查询。

E、 g.使用WP_Query:

$args = array(
    \'post_type\'      => \'post\',
    \'posts_per_page\' => -1
);

$query = new WP_Query($args);

<div class="content">

<?php
if ( $query->have_posts() ) : ?>

    <div class="container">
        <div class="row">
            <?php while ( $query->have_posts() ) : $query->the_post();?>
                <?php get_template_part( \'template-parts/blog-2-col\', get_post_format() );?>
            <?php endwhile; ?>
        </div><!-- row -->
    </div><!-- ontainer -->

    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <?php wpbeginner_numeric_posts_nav(); ?>
            </div>
        </div>
    </div>

<?php else :?>
    <?php get_template_part( \'template-parts/content\', \'none\' );?>
<?php endif; ?>

或者,您可以创建shortcode 它将包含与上面几乎相同的代码。然后您可以在页面内容中使用该短代码。然后,在模板中:

if(have_posts()){
    while(have_posts()){
      the_post();
      the_content();
   }
}

相关推荐

当in_the_loop()为假时,何时以及为什么is_Single(‘my_cpt’)为真?

我正在使用模板系统的示例代码。此地址的页码:http://project.test/my_cpt/hello-post/.无法理解原因is_singular( \'my_cpt\' ) 是true 虽然in_the_loop() 是false.在页面模板中The Loop "E;“工程”:if ( have_posts() ) { while ( have_posts() ) { the_post(); ?>