ACF向新插入的帖子添加字段值

时间:2016-12-01 作者:Grzegorz

我对ACF插件有问题。

function add_custom_post(/* .. */){}
     $post_id = wp_insert_post(array(
      //....
   ));

   update_field(\'fieldname\', $value, $post_id);

   return (bool)$post_id;
}
症状:<?php the_field(\'fieldname\'); ?> 不返回模板中的值;字段已保存,值在wp admin中可见。单击“更新”发布后,上述内容开始正常工作
据我所知,它不会创建帖子key 如果我使用更新字段和backoffice save创建它们。

如何通过编程为新添加的帖子增值?

编辑:
似乎我必须创建key 用于岗位现场。不知道怎么做。

3 个回复
SO网友:Dan.

您可以这样做,而不是使用update_field():

update_post_meta($post_id, \'fieldname\', $value);
update_post_meta($post_id, \'_fieldname\', \'field_\' . uniqid()); // `uniqid() is a native PHP function. This is also how ACF creates the field keys
此外,根据检索值的位置,还可能需要传递post id。

the_field(\'fieldname\', $post_id);

SO网友:Grzegorz

我最终得到了以下对我有用的结果:

function edu_acf_getValue($fieldname, $post_id = false){
    if($post_id === false) $post_id = get_the_ID ();
    if(($value = get_field($fieldname, $post_id)))
        return $value;
    $value = get_post_meta($post_id, $fieldname);
    return $value[0];
}
function edu_acf_updateValue($fieldname, $value, $post_id){
    $field_key = \'field_\' . uniqid();
    update_post_meta($post_id, $fieldname, $value);
    update_post_meta($post_id, \'_\'.$fieldname, $field_key);
    update_field($field_key, $value, $post_id);
}

SO网友:Sonali

使用以下内容检索ACF字段值:

    get_field(\'fieldname\',$post_id);

相关推荐