画像とギャラリーの編集画面にカスタムフィールドを追加しようとしています。
ここでも似たような質問があることは承知していますが、現在のバージョンではうまくいかないか、upload画面にのみフィールドを追加しますが、すべてのedit画面に表示されるフィールドが必要です。下記参照)。
これには、attachment_fields_to_edit
がアップロード画面に追加されるだけなので、あなたはbackbone.jsを台無しにする必要があると思います。
↑こちらはアップロードされた画像です。ここでStyleはattachment_fields_to_edit
filterで追加され、my_fieldはACFプラグインで追加されます。
↑実際の投稿をクリックして編集
↑スタイルなしとmy_fieldフィールドはありません。
編集画面に表示するためにフィールドを追加する方法理想的には、ギャラリー編集画面にフィールドを追加することも同様のプロセスです。
この質問は私にとって本当に重要なので、100 rep賞金があれば追加する予定です。
ありがとうございます。
これが(私のためにうまく働いている)作業コードです、あなたはこれを試しましたか?テーマ「functions.php」に追加し、必要に応じてカスタムフィールド名を変更するだけです。
//カスタムメディアフィールドを追加する関数 関数custom_media_add_media_custom_field($ form_fields、$ post){ $ field_value = get_post_meta($ post-> ID、 'custom_media_style'、true); $ form_fields ['custom_media_style'] =配列( 'value' => $ field_value?$ field_value: ''、 'label' => __( 'Style' )、 'help' => __( 'Enter your style')、 'input' => 'textarea' ); return $ form_fields; } add_filter( 'attachment_fields_to_edit'、 'custom_media_add_media_custom_field'、null、2); //カスタムメディアフィールドを保存します。 function custom_media_save_attachment($ attachment_id){(.set($ _REQUEST ['attachments'] ['custom_media_style']))){ $ custom_media_style = $ _REQUEST [' attachments '] [$ attachment_id] [' custom_media_style ']; update_post_meta($ attachment_id、' custom_media_style '、$ custom_me dia_style); } } add_action( 'edit_attachment'、 'custom_media_save_attachment');
私自身のこの機能の実装(ACFなし)では、attachment_fields_to_edit
とattachment_fields_to_save
の組み合わせを使用してこれを実現できました。表示 要旨
使用法:
add_action( 'after_setup_theme', 'thumbnail_meta' );
function thumbnail_meta(){
Thumbnail_Meta::create( [
'html_thumbnail_meta_id' => [
'label' => __( '<strong>Featured Settings:</strong>' ),
'input' => 'html'
],
'checkbox_thumbnail_meta_id' => [
'label' => __( 'Checkbox?' ),
'input' => 'checkbox'
],
'url_thumbnail_meta_id' => [
'label' => __( 'Link:' ),
'type' => 'url',
],
'select_thumbnail_meta_id' => [
'label' => __( 'Display' ),
'input' => 'select',
'options' => [
'none' => '-- None --',
'top' => 'Content Top',
'right' => 'Content Right',
'left' => 'Content Left',
'bottom' => 'Content bottom'
]
]
] );
}
しかし、コードを見なくても問題が何であるかを確実に言うことはできません。
これは、メディア編集画面で写真家の名前とURLを追加するためのコード例です。
function be_attachment_field_credit( $form_fields, $post ) {
$form_fields['be-photographer-name'] = array(
'label' => 'Photographer Name',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_name', true ),
'helps' => 'If provided, photo credit will be displayed',
);
$form_fields['be-photographer-url'] = array(
'label' => 'Photographer URL',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'be_photographer_url', true ),
'helps' => 'If provided, photographer name will link here',
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'be_attachment_field_credit', 10, 2 );
/**
* Save values of Photographer Name and URL in media uploader
*
* @param $post array, the post data for database
* @param $attachment array, attachment fields from $_POST form
* @return $post array, modified post data
*/
function be_attachment_field_credit_save( $post, $attachment ) {
if( isset( $attachment['be-photographer-name'] ) )
update_post_meta( $post['ID'], 'be_photographer_name', $attachment['be-photographer-name'] );
if( isset( $attachment['be-photographer-url'] ) )
update_post_meta( $post['ID'], 'be_photographer_url', $attachment['be-photographer-url'] );
return $post;
}
add_filter( 'attachment_fields_to_save', 'be_attachment_field_credit_save', 10, 2 );