web-dev-qa-db-ja.com

カスタムフィールドのデフォルトのメタ値を設定する方法

添付ファイル用のカスタムmeta_keyを設定しました。これはYes/Noオプション付きのラジオボタンであり、デフォルト値は常にYesですので、添付ファイルの作成時にこのデフォルト値をdbに保存する必要があります。

現在のところ問題は、画像をアップロードすると、[メディアの編集]ページにこのmeta_keyの値が "Yes"であることが表示されることですが、実際には[Save All Changes]または[Update Media]をクリックするまでデータベースに保存されません。 ".

これらの添付ファイルは手動でファイルをアップロードすることとRSSフィードをインポートすることによって自動的に追加することができるので、添付ファイルがdbに作成された瞬間に作成されるデフォルト値が必要です。

更新:問題をより詳細に説明するために、これは私が添付ファイルを見つけるためにテンプレートで使用しているコードです。 _show_attachがnullのときに添付ファイルもクエリするようにこれを変更できるかどうかわかりませんか。

$attached_photos = get_children(array(
        'post_parent'    => get_the_ID(),
        'post_type'      => 'attachment',
        'numberposts'    => -1, // show all
        'post_status'    => null,
        'post_mime_type' => 'image',
        'order' => 'ASC',
        'orderby' => 'menu_order',
        'meta_key' => '_show_attach',
        'meta_value' => 'false',
        'meta_compare' => '!='
    ));
3
ragulka

カスタムフィールドのデフォルト値を設定するには、 add_attachment アクションを使用できます。

function wpse62481_set_default_meta_value( $attachment_id ) {
    add_post_meta( $attachment_id, '_show_attach', '1' );
}
add_action( 'add_attachment', 'wpse62481_set_default_meta_value' );
1
SergeyBiryukov

これをクエリでカバーしてisNull()を使用しませんか。この添付ファイルに対してmeta_keyがnullの場合、trueです。

1
woony