如何获取 single.php 中的自定义字段?

How to get custom fields in single.php?

我正在使用 Wordpress Timber 构建我的 wordpress 主题,我想知道如何在木材中获取自定义字段?我指的是 php 文件而不是树枝模板文件。

是否有获取自定义字段的功能?现在这种方法不起作用:

$post = new TimberPost();
$post->some_custom_field_name;

当您拥有 Timber post 时,目前有 3 种不同的方式可以访问自定义字段值。在Twig中,可能写起来更容易,但Twig最终在幕后被翻译成PHP,所以PHP!

中肯定有办法

1。通过 属性

直接访问

当您创建新的 Timber post 时,Timber 会自动使用可直接作为属性访问的自定义字段值填充您的 post 对象。

因此,如果您有一个名为 some_custom_field_name 的自定义字段,您应该能够按照您尝试过的方式访问它:

$custom_field_value = $post->some_custom_field_name;

如果您的值未设置,您可以随时通过 var_dump():

转储内容来检查 post 上是否设置了 属性
var_dump( $post );

另请参阅Debugging Guide

2。通过custom属性

访问

Timber 还将所有自定义字段值作为数组复制到 post 上名为 custom 的 属性。所以你的领域也应该像这样访问:

$custom_field_value = $post->custom['some_custom_field_name'];

3。通过meta方式访问

上面介绍的两种方法都会直接return数据库的值。如果您使用像 Advanced Custom Fields 这样的插件,您可能不想要来自数据库的原始值,而是一个被插件正确过滤的值。那么你应该使用 meta() method:

$custom_field_value = $post->meta('some_custom_field_name');