我有一个用于条目的模板。条目的字段始终具有2个值中的1个。我可以编写一些PHP来根据字段值显示不同的东西吗?
我尝试过以下但它给了我一个PHP错误:
<?php if($my_field == 'value1') { ?>
<h3>Value 1</h3>
<?php } else { ?>
<h3>Value 2</h3>
<?php } ?>
谢谢
答案 0 :(得分:0)
您不必使用PHP。
{if my_field == 'foo'}
Value 1
{if:else}
Value 2
{/if}
如果您计划在这些条件中进行任何EE标记处理,则不应使用if:else语法,因为条件之间的内容将始终进行解析,但只是没有显示,不必要地使用服务器资源并增加加载时间。
因此,在这种情况下,请使用简单的条件:
{if my_field == 'foo'}
Value 1
{/if}
{if my_field == 'bar'}
Value 2
{/if}
请参阅:http://expressionengine.com/user_guide/templates/globals/conditionals.html
答案 1 :(得分:0)
您可以使用ExpressionEngine的Conditional Global Variables来显示您的内容,而无需在模板中使用PHP。
使用原生ExpressionEngine的简单条件标记重写您的示例将导致以下结果:
{exp:channel:entries channel="channel_name" dynamic="off"}
{if "my_field" == "value1"}
Value 1
{/if}
{if "my_field" == "value2"}
Value 2
{/if}
{/exp:channel:entries}
您可以在模板中的任何位置使用simple or complex conditionals,前者的资源成本较低,但ExpressionEngine's Parse Order (PDF,32 KB)可能会影响它们的评估方式并取代。
在大多数情况下,您需要确保自定义字段和条件在{exp:channel:entries}
标记循环内,以便在构建页面时正确输出和测试值。