如果自定义字段值为true,我只希望显示其中一个短代码。我不理解这样做的逻辑。所以基本上,如果有twitch视频和自己的3D视频,我只想显示顶部的视频(twitch)。等等等等。这是否超出了if-else语句?我正在将此代码添加到我的模板中。php文件。
我的第二个问题是,使用switch方法会更好吗?
<?php
$twitch = get_post_meta( $post->ID, \'twitch\', $single = true );
$own3d = get_post_meta( $post->ID, \'own3d\', $single = true );
$livestream = get_post_meta( $post->ID, \'livestream\', $single = true );
$ustream = get_post_meta( $post->ID, \'ustream\', $single = true );
$justin = get_post_meta( $post->ID, \'justin\', $single = true );
if ($twitch == \'\') {
}
else {
echo do_shortcode(\'[livestream type="twitch" channel="\' . $twitch . \'"]\');
}
if ($own3d == \'\') {
}
else {
echo do_shortcode(\'[livestream type="own3d" channel="\' . $own3d . \'"]\');
}
if ($livestream == \'\') {
}
else{echo do\\u短代码(\'[livestream type=“livestream”channel=“..livestream.”]);}
if ($ustream == \'\') {
}
else {
echo do_shortcode(\'[livestream type="ustream" channel="\' . $ustream . \'"]\');
}
if ($justin == \'\') {
}
else {
echo do_shortcode(\'[livestream type="justin" channel="\' . $justin . \'"]\');
}
?>
最合适的回答,由SO网友:fuxia 整理而成
这是一个相当简单的PHP问题,几乎离题了。您可以大大简化代码:
$metas = array ( \'twitch\', \'own3d\', \'livestream\', \'ustream\', \'justin\' );
foreach ( $metas as $meta )
{
$value = get_post_meta( $post->ID, $meta, TRUE );
if ( $value )
{
echo do_shortcode("[livestream type=\'$meta\' channel=\'$value\']");
break;
}
}
这将遍历可能的元字段列表,如果找到包含内容的元字段,则停止。
我不会用do_shortcode()
像这样。改为使用短代码处理程序函数(此短代码调用的函数)来加快处理速度
使用do_shortcode()
仅当您的内容位于短代码的外部时。