个性化阅读
专注于IT技术分析

将meta发布到具有多行的自定义字段! -WordPress的

点击下载

我正在使用houzez主题, 并尝试开发一个插件以从API发布到”属性”发布。 “属性”是一个自定义帖子, 一个自定义字段(additional_feature)具有多行。

当我在示例帖子中使用get_post_meta()从extra_feature获得值时, 已经填充了字段, 我们得到:

Array ( [0] => Array ( [0] => Array ( [fave_additional_feature_title] => aaa 
[fave_additional_feature_value] => 234 ) [1] => Array ( 
[fave_additional_feature_title] => bbb [fave_additional_feature_value] => 567 
) [2] => Array ( [fave_additional_feature_title] => ccc 
[fave_additional_feature_value] => 890 ) ) )

因此, 自定义字段extra_feature里面还有更多字段!当我使用update_post_meta时, 它不起作用。我尝试设置一个数组以完全按照样本数组的样子(通过槽get_post_meta())传递数据。但是, 它不起作用。

关于如何更新Additional_feature的任何想法?


#1


*输出中继器meta(已使用-ACF自定义字段中继器)。

$meta = get_post_meta($post->ID); //Get all post meta per one request
$repeater_count = $meta["additional_feature"][0]; //Count of iteration

for ($i=0; $i<$repeater_count; $i++) {
 $feature_title = 'additional_feature_'.$i.'_title';
 echo $meta[$feature_title][0]; //Output repeater meta
}

*更新中继器元数据(使用ACF自定义字段中继器)。更新保存帖子。

你可以根据需要更改代码

!!!在测试站点上更好地生成工作代码, 因为使用错误的用户字段名称, 在保存帖子时, 将在数据库表post_meta中创建新字段。

添加到functions.php

add_filter('acf/save_post', 'main_meta_filter', 20);
function main_meta_filter($post_id) {

    if ( $post_id != 7 ) //You can use post type if you need
        return;

//Repeater
$number_rows = get_post_meta( $post_id, "additional_feature" );//Count of iteration
 for ($i=0; $i<$number_rows[0]; $i++) {
  $key = 'additional_feature_'.$i.'_title';
//To get old value use $old_value = get_post_meta($post_id, $key, false);
//and output use $old_value[0]
  $new_value = 1;//You custom value
  update_post_meta($post_id, $key, $new_value);
 }

}

#2


发生了一些奇怪的事情。我重试了一种无效的方法, 但是我没有更多的想法了。我使用以下代码:

$data = array(
   array(     
        'fave_additional_feature_title' => 'Ax', 'fave_additional_feature_value' => 111, ), );

update_post_meta($postid, 'additional_features', $data);

这次成功了。非常奇怪, 我不知道它以前如何工作, 现在却可以工作。但是, 现在我可以更新自定义字段。

赞(0)
未经允许不得转载:srcmini » 将meta发布到具有多行的自定义字段! -WordPress的

评论 抢沙发

评论前必须登录!