问题描述
WP 3.1 让每个人都兴奋,如果有些困惑,关于邮政格式。
启用新的帖子格式
关于启用邮政格式的问题已经详细论述了。就像将这行添加到 functions.php 中一样简单:add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
显示某种格式的帖子
但显示这些职位的问题根本就没有涵盖。让我们使用一个例子记录显示/查询特定格式的帖子的过程:
假设我们想在侧栏中添加一个 Twitter-like 状态更新。很容易启用 status
后期格式,但是如何实际查询这些帖子,使其显示在侧栏中?
我做了相当多的搜索,没有找到这个问题的答案,欢迎所有人的贡献。如果我们提出了一个很好的答案,我认为这将是第一个记录这个问题。
谢谢!
最佳解决方案
您有很多使用”Post Formats” 功能进行显示的选项:
例如在 index.php 循环中,您可以根据使用 has_post_format()函数的发布格式来决定要显示的内容:
if ( has_post_format( 'aside' )) {
echo the_content();
}
elseif ( has_post_format( 'chat' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
elseif ( has_post_format( 'gallery' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
elseif ( has_post_format( 'image' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_post_thumbnail('medium');
echo the_content();
}
elseif ( has_post_format( 'link' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
elseif ( has_post_format( 'quote' )) {
echo the_content();
}
elseif ( has_post_format( 'status' )) {
echo the_content();
}
elseif ( has_post_format( 'video' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
elseif ( has_post_format( 'audio' )) {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
else {
echo '<h3>';
echo the_title();
echo '</h3>';
echo the_content();
}
使用 get_template_part()和 get_post_format()获取基于格式的错误循环,这是假设您为主题中使用的每个格式制作了一个格式 loop.php(说 format-status.php) 文件,因此您只需调用它:
get_template_part( 'format', get_post_format() );
您还可以根据其格式查询帖子:
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'post-format',
'field' => 'slug',
'terms' => array( 'post-format-quote' )
)
)
)
$query = new WP_Query( $args );
和最后 (现在),您可以使用”post_class();” 功能基于 CSS 的风格
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
这将输出如下:
<div id="post-id" class=”post format-status”>
希望这有助于开始
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。