在使用Timber for WordPress时,如何从for循环的post类型声明PHP变量?

在使用Timber for WordPress时,如何从for循环的post类型声明PHP变量?,php,wordpress,twig,var,timber,Php,Wordpress,Twig,Var,Timber,目前,我在WordPress上使用twig/timber声明在php中返回了一个未定义的变量错误,即使下面的代码按预期返回并在页面上显示帖子,我仍然在调试模式下收到错误消息(见下文)。我意识到需要声明PHP变量,并且我没有在循环之前的任何地方声明$jobs,但我的理解是$context将post类型“jobs”转换为PHP变量。如果不是,我做错了什么,如何声明它 错误消息: Notice: Undefined variable: jobs in /Applications/MAMP/htdocs

目前,我在WordPress上使用twig/timber声明在php中返回了一个未定义的变量错误,即使下面的代码按预期返回并在页面上显示帖子,我仍然在调试模式下收到错误消息(见下文)。我意识到需要声明PHP变量,并且我没有在循环之前的任何地方声明$jobs,但我的理解是$context将post类型“jobs”转换为PHP变量。如果不是,我做错了什么,如何声明它

错误消息:

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');
细枝文件:

            {% for job in jobs %}
                {% include 'components/home-job-panel.twig' %}
            {% endfor %}

正在显示
作业
,因为您已在
$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) {

实际上,我不会在控制器内转换数据。Imho这是
细枝
/
木材

{% for job in jobs %}
    {{ job.job_close_date | date('jS F Y') }}
{% endfor %}

$context['jobs']
$jobs
不一样,如果(is_array($context['jobs'))和您的循环需要是
$context['jobs']作为$job
完美的话,它需要是
!非常感谢:)我完全按照你说的做了,让twig处理数据转换,这就解决了问题。