Php 将CFS wordpress插件中的字段名传递给twig

Php 将CFS wordpress插件中的字段名传递给twig,php,wordpress,twig,timber,Php,Wordpress,Twig,Timber,因此,我对PHP非常陌生,在传递字段名时遇到了一些问题 我正在使用自定义字段(cfs)并用twig编写php 目前,我的page.twig中只有一个。其想法是,如果在Wordpress中设置了图像,则图像将显示在page.twig中设置的位置 字段名为标题\u图像 {%if header_image %} {{header_image}} {% endif %} 使用Timber时,您可以轻松地将变量从PHP控制器传递到细枝视图。有两种方法可以做到这一点: 1) 在functions.ph

因此,我对PHP非常陌生,在传递字段名时遇到了一些问题

我正在使用自定义字段(cfs)并用twig编写php

目前,我的page.twig中只有一个。其想法是,如果在Wordpress中设置了图像,则图像将显示在page.twig中设置的位置

字段名为
标题\u图像

{%if header_image %}
  {{header_image}}
{% endif %}

使用Timber时,您可以轻松地将变量从PHP控制器传递到细枝视图。有两种方法可以做到这一点:

1) 在functions.php中,可以将变量全局传递给上下文。木材起动器主题中有这一点可供参考。您的
add\u to\u content
函数应该如下所示:

function add_to_context( $context ) {
    global $cfs;

    $context['header_image'] = $cfs->get('header_image');
$context
视为一个巨大的变量,它通过变量传递到实际视图中

请记住:这使您的变量可以全局访问,因此您需要唯一地命名您的CFS id。例如
全球电话号码

2) 为了更好地构造代码,应该通过该页面的控制器将变量传递到上下文。这有助于确保不会传递未使用的变量

在page.twig文件中,您需要添加:

$context['header_image'] = $cfs->get('header_image');
请记住:您在细枝文件中使用的是$context名称,而$cfs名称是您在自定义字段套件中所称的名称


最后:

{%if header_image%}
良好,因为这将检查是否设置了变量,然后决定是否显示此块。 但是,在CFS中,上载图像时,您可以选择文件URL或附件ID。这意味着您需要在细枝文件中处理此结果

例如,通过选择文件URL,您需要将
{{header\u image}}
输出为:


然后,您可能还需要根据Wordpress媒体库中设置的图像alt文本添加alt属性。

这起作用了。您关于添加alt的提示也被添加了:
$context['image\u alt']=$cfs->get('image\u alt')
当然,如果将其包装在img属性中,第一次就会有所帮助:)您应该能够从媒体库本身设置alt文本。然后获取图像属性。使用功能图像时,您可以执行以下操作,例如:{{post.thumbnail.{wp\u attachment\u image\u alt}}您可以通过打开调试模式并执行
{dump(post.thumbnail)}
来检查图像属性。要使用CFS实现这一点,您需要使用一些Wordpress函数通过附件id获取此信息,如果您改为在CFS中进行设置的话。