使用Timber for WordPress时,如何从for循环的发布类型声明PHP var?

我目前正在使用WordPress上的树枝/木材声明在php中返回未定义的变量错误,即使下面的代码返回并按预期显示了页面上的帖子,我仍然在调试模式下收到错误消息(请参阅下面)。我意识到需要声明PHP变量,并且在循环之前没有在任何地方声明$ jobs,但是我的理解是$ context将帖子类型'jobs'转换为php var。如果不是,我在做什么错,我该怎么声明?

错误消息:

Notice: Undefined variable: jobs in /Applications/MAMP/htdocs/xxxx.co.uk/wp-content/themes/xxxx/front-page.php on line 19

PHP文件:

$context['jobs'] = Timber::get_posts('post_type=jobs&posts_per_page=3');

if(is_array($jobs)){ /* line 19 */
    // Closing date display format (e.g. 24th October 2019)
    foreach( $jobs as &$job ){
        $job->job_close_date_formatted = date( 'jS F Y',strtotime( $job->job_close_date ) );
    }
}
$context['options'] = get_fields('acf-theme-options');

TWIG文件:

            {% for job in jobs %}
                {% include 'components/home-job-panel.twig' %}
            {% endfor %}
jsyzjzg 回答:使用Timber for WordPress时,如何从for循环的发布类型声明PHP var?

正在显示jobs,因为您已经在$context中定义了它们

$context['jobs'] = Timber::get_posts('post_type=jobs&posts_per_page=3');

您正在执行的foreach对任何作业都没有影响,因为$jobs的确是未定义的。如果您要修改某些数据,则需要使用以下foreach

if (is_array($context['jobs'])) foreach($context['jobs'] as &$job) {

我实际上不会在控制器内部转换数据。恕我直言,这是twig / timber

中的过滤器的作用
{% for job in jobs %}
    {{ job.job_close_date | date('jS F Y') }}
{% endfor %}
本文链接:https://www.f2er.com/2942737.html

大家都在问