【问题标题】:ACF Post Object returning nullACF Post 对象返回 null
【发布时间】:2021-05-17 20:53:41
【问题描述】:

我开始接触 WP 开发,我遇到了 ACF Post Object 返回 null 的问题,我不知道为什么。我创建了一个 ACF,其分类的位置等于类别然后该字段的设置如下......

  • 字段名称:recommend_resources
  • 类型:帖子对象
  • 按帖子类型过滤:帖子
  • 选择多个值:是
  • 返回格式:发布对象

然后在帖子 > 类别部分中,我可以编辑该字段并选择 3 个帖子。 最后在我的 category.php 中,我尝试将这些值设置为哑值,

echo '<pre>';
 var_dump(get_field('recommended_resources'));
echo '</pre>';
die(); 

我得到 null 非常感谢任何帮助或指出正确方向。

本地数据库的屏幕截图

【问题讨论】:

  • 使用print_r会得到什么?
  • 什么都没有显示
  • 您可以访问数据库吗?您可以检查 post_meta 中的字段值吗?
  • 我正在使用本地飞轮,当我点击数据库 > 打开管理员时,我看到了一些表格。我没有看到 post_meta,但我确实看到 wp_postmeta 是我应该看的地方吗?对不起,如果这没有帮助
  • 是的,就是这样 - 对不起,我不记得正确的名字......我通常会自动点击:P

标签: php wordpress advanced-custom-fields


【解决方案1】:

问题在于您没有将get_field 函数指向正确的帖子。 该字段返回 NULL,因为您希望字段 recommended_resources 为 NULL。

如果您查看 ACF get_field 文档,您会发现它需要 $id 的帖子。 https://www.advancedcustomfields.com/resources/get_field/

如果在帖子页面或帖子循环中:

echo '<pre>';
 var_dump(get_field('recommended_resources', get_the_ID()));
echo '</pre>';
die(); 

只是硬编码:

$id = 216;

echo '<pre>';
 var_dump(get_field('recommended_resources', $id));
echo '</pre>';
die(); 

如何测试:

add_shortcode('test_test','test_test');
function test_test() {

    $id = 216;

    $post_obj = get_field('object', $id);

    echo '<pre>';
    print_r($post_obj);
    echo '</pre>';

    foreach($post_obj as $post) {
        echo get_the_title( $post->ID ) . '<br>';
    }


}

【讨论】:

  • 非常感谢到目前为止的帮助!我仍然无法让它工作,即使在对帖子 ID 进行硬编码时,我仍然会得到空值。我尝试使用 683。我还尝试检查它是否存在,但一无所获
  • 嘿,没问题。我测试了这个解决方案,它确实有效。我得到了所有的记录。
猜你喜欢
  • 2017-10-11
  • 2019-10-27
  • 2018-07-14
  • 2019-11-26
  • 2017-06-22
  • 2020-03-04
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多