如何使用WordPress在主页上显示帖子?

时间:2014-01-31 12:26:09

标签: php wordpress wordpress-theming

我在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_post_format()究竟是什么?

4 个答案:

答案 0 :(得分:0)

get_post_format()用于确定帖子是否有任何帖子格式。

它返回当前post格式类型的字符串值,这在几个方面很有用。其中最强大的是根据帖子格式调用不同的模板部分文件,例如:

get_template_part( 'entry', get_post_format() )

其中包括,例如entry-aside.php表示格式,或entry.php表示格式。

来源:https://wordpress.stackexchange.com/questions/14257/has-post-format-vs-get-post-format

答案 1 :(得分:0)

get_template_part( 'content', get_post_format() );  是的,在你的主题目录中应该有一个模板文件content.php,用于get_template_part()

包含它

get_post_format() 返回帖子的帖子格式。这通常会在循环中调用,但如果提供了帖子ID,则可以在任何地方使用。 more

答案 2 :(得分:0)

get_template_part()确实会要求包含一个模板,这是PHP include()的一个更安全的版本,因为如果没有找到模板,它将无声地失败。

它遵循Wordpress'es slug命名空间用于模板文件。

  

{slug}-{name}.php

您已将content定义为slug,因此它会寻找:

  

content- {name} .php

如果你的第二个函数get_post_format()将调用第二部分。帖子格式由帖子本身定义,具体取决于应用于帖子本身的元数据 i.e. PostID 221 is a "quote"

 //get_post_format() returns quote
 get_template_part( 'content', get_post_format() );
 //Finds: content-quote.php

这非常适合页面的“部分”,其中您的帖子可能包含上传的视频或来自外部作者的引用,因此会引入外部格式以在整个网站中使用,如get_post_format() docs描述了可能的post_format()'s

列表
  • side
  • 聊天
  • gallery
  • link
  • 视频

如果你真的只是想为帖子内容获得一个直接的模板部分,请致电:

the_content();

将查找名为single.php的模板文件,但是如果您想创作自己的定制content-*模板文件:

//Calls content-customtemplate.php 
get_template_part( 'content', 'customtemplate' ); 

答案 3 :(得分:0)

如果您想显示特定类别明智的帖子,那么您可以使用此代码

<?php 
            $ID = '6'; $NUMBEROFPOSTS = '5'; $catposts = get_posts('category='.$ID."&order=DESC&numberposts=".$NUMBEROFPOSTS);
            $cnt2 = 0;
            foreach($catposts as $item) :
                $cnt2++;
                $headlines .= '<div class="box1">'; 
                $headlines .= '<div class="num">'.$cnt2.'</div>';
                $headlines .=  '<p><a href="'.get_permalink( $item->ID ).'">'.$item->post_title.'</a></p>';
                $headlines .= '</div>';
           endforeach;
           echo $headlines;
            ?>

其中$ ID是类别ID,$ NUMBEROFPOSTS是否要显示主页特定类别中的帖子数。

在最后一个echo $ variable name上,它将显示来自类别帖子的所有内容。