我在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()究竟是什么?
答案 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
:
如果你真的只是想为帖子内容获得一个直接的模板部分,请致电:
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上,它将显示来自类别帖子的所有内容。