对于如何在自定义主题中显示帖子有一些疑问?

时间:2014-01-31 作者:AndreaNobili

我是WordPress主题开发方面的新手,我对用于在主页上显示我的帖子的WP功能有些怀疑:

    <?php
        if ( have_posts() ) :
            // Start the Loop.
            while ( have_posts() ) : the_post();

                /*
                 * Include the post format-specific template for the content. If you want to
                 * use this in a child theme, then include a file called called content-___.php
                 * (where ___ is the post format) and that will be used instead.
                 */
                get_template_part( \'content\', get_post_format() );

            endwhile;
            // Previous/next post navigation.
            twentyfourteen_paging_nav();

        else :
            // If no content, include the "No posts found" template.
            get_template_part( \'content\', \'none\' );

        endif;
    ?>
直觉上我明白,只要有帖子,这些帖子就会显示在主页上。

我的疑问与这一行代码有关:

get_template_part( \'content\', get_post_format() );
在阅读文档时,我觉得:

(1)get_template_part: 将模板零件加载到模板中。所以我认为,通过这一行,我包括了一个用于显示帖子的模板部分(在我的主页中显示帖子的结构),对吗?

2) get\\u post\\u format()的具体操作是什么?

3 个回复
最合适的回答,由SO网友:Manolo 整理而成

get_template_part() 包含active theme目录中的模板文件。

例如:

get_template_part(\'content\') 将包括模板content.php 从主题文件夹。

当有两个参数时,它将搜索名为firstParameter-secondParameter.php. 因此:

get_template_part( \'content\', get_post_format() );
将包括content-{$post_format}.php 文件

get_post_format() 返回以下定义的格式之一:

aside
chat
gallery
link
image
quote
status
video
audio 
false. 因此包含的文件将是content.phpcontent-format.php

SO网友:1fixdotio

1) 是的!

2) WordPress支持9post formats 现在,假设您的主题支持其中的两个:“aside”和“gallery”,那么您的函数中应该有以下代码。php:

add_theme_support( \'post-formats\', array( \'aside\', \'gallery\' ) );
您可以为每个帖子格式构建不同的内容模板部分,并将其另存为\'content-aside.php\' 和\'content-galery.php\' 在主题文件夹中。

如果主题中没有这两个文件,get_template_part 将自动回退以使用“内容”。而不是php。

SO网友:Mayeenul Islam

所有优秀的文字表达者都已经回答了你的问题,我认为他们成功地消除了你的疑虑。所以,我并没有涉及到你的问题,而是涉及到概念。

在开始主题开发之前,我认为一个原始主题可以很好地理解每个特定区域背后的概念。我从我的[虚拟]老师伊恩·斯图尔特(IanStewart)关于如何开发主题的教程开始主题开发:

  • How to Create a WordPress Theme: The Ultimate WordPress Theme TutorialGoogle Code Trunk. 我建议你不仅要遵循教程,还要阅读评论。:)

    get_template_part() 是一个主题函数-不一定只加载帖子部分-而是可以是任何内容。要从主文件中分离出来的代码部分(代码的一部分),在PHP中,我们使用include() 函数,但在WordPress中,我们使用get_template_part().

    您提到的代码分隔了显示帖子的代码所在的模板部分。您可以注释掉该部分,并可以尝试以下方法来理解基本内容:

    <?php
    if ( have_posts() ) :
    while ( have_posts() ) : the_post();
    //get_template_part( \'content\', get_post_format() ); ?>
       <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
          <h2 class="post-title"><?php the_title(); ?></h2>
          <div class="post-content"><?php the_content(); ?></div>
       </article>
    <?php
    endwhile;
    endif;
    ?>
    
    抱歉,我不同意你的问题,但我试图传递这个概念,我相信CONCEPT WITH DIFFERENT PERCEPTIONS IS THE KEY TO KNOWLEDGE.

    编辑也可以从_s 初学者主题。直接从GitHub获取:

结束

相关推荐

Pagination on Custom Loop

我想将最新帖子的样式与自定义页面上某个类别中的所有其他帖子的样式不同。到目前为止,我有下面的代码,它正是这样做的:<?php if (have_posts()) : ?> <?php query_posts(\"cat=4&showposts=1\"); ?> <?php while (have_posts()) : the_post(); ?> (Style1)<?php the_title(); ?><