2013-04-27 71 views
0

我期待呼应div风格和短代码一起。我可以单独做php的回声风格和do_shortcode

<?php if (is_singular()) { echo '<div class="own">' } else ; ?> 
<?php if (is_singular()) { echo do_shortcode('[xxx]'); } else ; ?> 
<?php if (is_singular()) { echo '</div>' } else ; ?> 

但有没有更干净的方法呢?

+2

难以捉摸的连接运算符'.'你的意思是? – Wrikken 2013-04-27 21:00:54

回答

4

嗯...结合成一个单一的if语句?

<?php 
    if (is_singular()) 
    { 
    echo '<div class="own">', do_shortcode('[xxx]'), '</div>'; 
    } 
?> 
+0

微小的事情,如果您使用逗号与回声,而不是完整的(句点),你必须包括括号。 – 2013-04-27 21:03:57

+0

@RickBurgess不,你不知道。 – 2013-04-27 21:05:56

+0

[php文档](http://php.net/manual/en/function.echo.php):“echo ...是一种语言结构,因此您不需要使用括号......此外,如果您想要通过多个参数来回显,参数不能被括在圆括号内 – 2013-04-27 21:07:23

2

没错:

<?php if (is_singular()) { echo '<div class="own">' , do_shortcode('[xxx]') , '</div>' };?> 
+1

最后缺少分号''echo' +你不需要连接字符串 - 使用多个回显参数效率稍高一点 – 2013-04-27 21:03:45

+0

很对:)看来我应该在看别人之前花更多时间检查自己的答案 – 2013-04-27 21:09:55

+0

现在我们已经得到了相同的结果答案:)从我+1 +1 – 2013-04-27 21:13:02

1

使用三元运算。然而,阅读起来可能并不容易,但如果您能够正确阅读,它会更短,更干净。

<?=(is_singular())?'<div class="own">':''?> 

这有点像一个回声和一个if语句。它只是一个if-else语句,没有其他ifs。

<?=是一行回声的简写。您的声明最后不需要分号,只需要关闭标签。

括号显示if语句,在这种情况下,如果这是真的,在?后声明将呼应DIV,如果失败或者是假的,它会响应什么。

+0

这是真正有用的知道。谢谢!:) – Origami 2014-10-29 06:54:19