无开机自检格式有更好的代码吗?

时间:2011-07-13 作者:Lucas

正如本网站所建议的,如果未选择任何帖子格式/如果是标准帖子,我将使用此代码来设置摘录的样式。

<?php
$format = get_post_format();
if ( false === $format )
{
echo \'This is a default post\';
the_excerpt();
}
?>
然而,似乎必须有更好的方法将其包含在一条PHP语句中。。。其余部分遵循以下模式:

if ( has_post_format( \'video\' )) {
    ?>
    A VIDEO POST
    <?php the_content();
}
if ( has_post_format( \'audio\' )) {
    ?>
    AN AUDIO POST
    <?php the_content();
}
有人知道如何在这个if语句中包含原始代码吗?如果,那么。。。

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

我不确定我是否理解。是否只想将所有if语句连接在一起?如果是这种情况,您可以使用elseif,例如:

<?php
$format = get_post_format();
if ( false === $format ) {
echo \'This is a default post\';
the_excerpt();
} elseif ( has_post_format( \'video\' )) { ?>
   A VIDEO POST
    <?php the_content();
} elseif ( has_post_format( \'audio\' )) { ?>
    AN AUDIO POST
    <?php the_content();
}
?>

SO网友:Chip Bennett

我更喜欢使用模板零件文件get_template_part()get_post_format():

<?php get_template_part( \'post\', get_post_format() ); ?>
然后,此方法将查找,例如。post-gallery.php, 然后回到post.php 如果其中一个post-gallery.php 不存在,或者如果get_post_format() 退货false.

然后,对于每种Post格式类型,只需创建post-{post-format-type}.php, 你可以走了。

SO网友:Otto

改用开关盒。

switch ( get_post_format() ) {

case \'video\':
  // video post code
  break;

case \'audio\':
  // audio post code
  break;

default:
  // default post code
  break;

}

结束