web-dev-qa-db-ja.com

ACF - (動画用の)注目画像をフィールドで追加/更新する

ACFフィールドで自分の動画にサムネイルを追加しようとしています。そのため、私はいくつかのPHPを探しています。これはビデオの特集画像を追加/更新します([添付ファイルの詳細]画面)。私はACFフォーラムからこのコードをテストしましたが、うまくいかないようです

// Set the first sock image uploaded as the featured image
function acf_set_featured_image( $value, $post_id, $field  ){

if($value != ''){
  delete_post_thumbnail( $post_id);
  //Add the value which is the image ID to the _thumbnail_id meta data for the current post
  add_post_meta($post_id, '_thumbnail_id', $value);
}

return $value;
}

// acf/update_value/name={$field_name} - filter for a specific field based on it's name
add_filter('acf/update_value/name=video_thumbnail', 'acf_set_featured_image', 10, 3);

//field name: video_thumbnail

更新: /私はそのようなばかげている... - 私は間違ったfunction.phpを編集しているので、上のコードは問題ない。 :|

注:既存の画像を編集するためにこの行を追加しました。

delete_post_thumbnail( $post_id);
1
Game Unity

このコードは、キーnameを更新したときに発生します。

File: wp-content/plugins/advanced-custom-fields/core/fields/_functions.php
193:        foreach( array('key', 'name', 'type') as $key )
194:        {
195:            // run filters
196:            $value = apply_filters('acf/update_value/' . $key . '=' . $field[ $key ], $value, $post_id, $field); // new filter
197:        }

試してみてください。$ value、$ post_id、$ fieldを印刷して、自分の持っているものを理解してください。ラベルが間違っている可能性があります。

function acf_set_featured_image( $value, $post_id, $field  ){
// print $value, $post_id, $field to understand what you have...
print_r(...);

wp_die();

if($value != ''){
    //Add the value which is the image ID to the _thumbnail_id meta data for the current post
    add_post_meta($post_id, '_thumbnail_id', $value);
}

return $value;
}

// acf/update_value/name={$field_name} - filter for a specific field based on it's name
add_filter('acf/update_value/name=video_thumbnail', 'acf_set_featured_image', 10, 3);
0
prosti