You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Timber/Twig按需引入组件时触发对应PHP文件执行?

按需加载特色文章查询逻辑的实现方法
  • 封装查询逻辑为独立函数
    把featured-issues.php里的数据库查询代码改成一个独立函数,避免全局执行:
    // featured-issues.php
    function get_featured_issues() {
        // 替换成你的实际查询逻辑,比如WordPress环境下:
        return get_posts([
            'post_type' => 'featured_issue',
            'posts_per_page' => 5,
            'orderby' => 'date',
            'order' => 'DESC'
        ]);
    }
    
  • 在Twig模板片段中触发查询
    修改partials/blocks/featured-issues.twig,在模板内部加载PHP文件并调用函数获取数据,以WordPress Timber框架为例:
    {% do function('require_once', get_template_directory() ~ '/partials/blocks/featured-issues.php') %}
    {% set featured_issues = function('get_featured_issues') %}
    
    {% if featured_issues %}
      <div class="featured-issues-list">
        {% for issue in featured_issues %}
          <article class="featured-issue-item">
            <h4>{{ issue.title }}</h4>
            <p>{{ issue.excerpt }}</p>
          </article>
        {% endfor %}
      </div>
    {% endif %}
    
  • 确保全局不提前加载
    不要在functions.php或其他全局初始化文件中引入featured-issues.php,只有当Twig执行include加载该模板片段时,才会触发PHP文件的加载和查询逻辑执行。

如果是自定义Twig环境(非WordPress),可以通过注册Twig扩展或在模板中直接调用PHP方法实现,核心逻辑一致:仅在模板片段被加载时,才执行数据查询代码。

内容的提问来源于stack exchange,提问作者Rima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:56:02