所以我对PHP非常陌生,我在通过字段名称时遇到了一些麻烦。
我正在使用自定义字段(cfs)并在twig中为php编写。
目前,我只是在我的page.twig中。这个想法是,如果在Wordpress中设置了图像,图像将显示在page.twig中设置的位置。
字段名称为header_image
{%if header_image %}
{{header_image}}
{% endif %}
答案 0 :(得分:0)
使用Timber时,您可以轻松地将变量从PHP控制器传递到twig视图。有两种方法可以做到这一点:
1)在functions.php中,您可以将变量全局传递给上下文。 Timber Starter主题有这个参考。您的add_to_content
功能应如下所示:
function add_to_context( $context ) {
global $cfs;
$context['header_image'] = $cfs->get('header_image');
将$context
视为一个巨大的变量,将变量传递到实际视图中。
请记住:这使您的变量可以全局访问,因此您需要为CFS ID唯一命名。例如global_phone_number
。
2)为了更好地构建代码,您应该通过该页面的控制器将变量传递给上下文。这有助于确保您不会传递未被使用的变量。
在 page.twig 文件中,您需要添加:
$context['header_image'] = $cfs->get('header_image');
请记住: $ context名称是您在twig文件中使用的名称,$ cfs名称是您在自定义字段套件中调用的名称。
<强>最后:强>
{% if header_image %}
是好的,因为这将检查是否已设置变量,然后决定是否显示此块。
但是,在CFS中,上传图像时,您可以选择文件URL 或附件ID 。这意味着您需要在twig文件中处理此结果。
例如,通过选择文件网址,您需要将{{header_image}}
输出为:
<img src="{{header_image}}" />
您可能还想根据Wordpress媒体库中设置的图片替换文字添加alt属性。