gpt4 book ai didi

php - 尝试优化代码以根据多个/不同条件输出值

转载 作者:可可西里 更新时间:2023-11-01 00:54:39 26 4
gpt4 key购买 nike

基本上我有这个 if else 条件来检查节点的实体类型并根据条件输出一个值。如下面的代码所示,如​​果 entity typepress_release,它会在标记上输出 Press Release,如果 entity typeinterview,它输出Interview

问题在于,一旦有多个条件,维护起来就会很麻烦,有没有办法缩短它?

{% for newsdesk in accordion.entity.field_newsdesk_and_press %}

{% if article.entity.getType == 'press_release' %}

<a href="#" class="tag-label">Press Release</a>

{% endif %}


{% if article.entity.getType == 'interview' %}

<a href="#" class="tag-label">interview</a>

{% endif %}

{% endfor %}

最佳答案

事实是,page.html.twig 可能是执行此类操作的第二差的模板(以 html.html.twig 为首,然后是 node.html.twig)。相反,您最好在现场级别执行此操作。

模板建议

但首先,启用 Twig 调试非常重要。只需关注:Debugging Twig templates .从现在开始,您将获得作为 HTML 注释打印到您的标记中的模板建议。查看我的“文章”内容类型的正文字段的示例输出:

<!-- THEME DEBUG -->
<!-- THEME HOOK: 'field' -->
<!-- FILE NAME SUGGESTIONS:
* field--node--body--article.html.twig
* field--node--body.html.twig
* field--node--article.html.twig
* field--body.html.twig
x field--text-with-summary.html.twig
* field.html.twig
-->
<!-- BEGIN OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' -->

<div property="schema:text" data-quickedit-field-id="node/1/body/en/teaser" class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item quickedit-field"><p>Elitphas sellus laoreet consequa laoreetc maecenas aesent iam ras fames. Volutpat sacras feugiatm hendre lacusp esent quamsusp uada netus. Duinulla sque teger justop justov metiam. Uisque vestibu tcras pretium llam lum llam. Consec ctetur llaut necinte magnap vel proin. Justo teger sedinteg vulput ligula arcu litora telluss eger. Roin massan quamnull nibh vitaenu sduis felis rproin ndisse. Ipsumves nullap teger mussed condim sacras.</p></div>

<!-- END OUTPUT from 'core/themes/classy/templates/field/field--text-with-summary.html.twig' -->

列出的模板前面的小x 表示当前正在使用的模板。并且就在实际字段输出的顶部,打印了硬盘驱动器上到当前模板文件的相对路径。现在您可以复制此模板,将其粘贴到您主题的 templates 中,然后根据其中一条评论建议对其进行重命名。可能尽可能不同。

所以在你的情况下会是:

  • field--node--field-newsdesk-and-press--press-release.html.twig
  • field--node--field-newsdesk-and-press--interview.html.twig

您可以在其中编辑标记以满足您的需要。通过hook_theme_suggestions_HOOK_alter现有的模板建议也可以很容易地扩展以尊重 View 模式。


不过,我个人认为这不是理想的解决方案(尽管人们普遍采用这种方式)。管理大量模板会变得非常快。另外:后端的实际 Field UI 变得越来越无用。

我建议以编程方式创建两个伪字段,而不是将它们简单地放置在每个节点类型的“管理显示”设置中。或者再次以编程方式完全在预处理函数中执行此操作。但这将远远超出您的问题范围,如果您没有自己完成,最好单独提出。

关于php - 尝试优化代码以根据多个/不同条件输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com