web-dev-qa-db-ja.com

添付ファイルのカスタムフィールド

それはそれがwordpressの添付ファイルのためのfunctions.phpスクリプトを介して追加のフィールドを追加することは可能ですか?

例をたくさん試してみましたが、どれもうまくいかないようです。既存のプラグインが私の試みに影響を及ぼしているのではないかと心配していましたが、それが可能であるかどうかは明らかではありません。

最高です、ダン。

3
v3nt

ここで は、添付ファイル/メディアギャラリー/ thickbox/iframe /オーバーレイと呼んでいるものにカスタムフィールドを追加する方法を示すチュートリアルです。

私はうまく使いましたが、ラジオボタン/チェックボックス/ etcを追加したり、特定の投稿タイプへの変更を制限することに惑わされたことはまだありませんが、それでもすべて実行可能です。

念のため、上記のリンクからのコードを示します。

1) 'attachment_fields_to_edit':メディアギャラリーにカスタムフィールドを追加する仕事をするこのフックに関数を添付します。

/* For adding custom field to gallery popup */
function rt_image_attachment_fields_to_edit($form_fields, $post) {
    // $form_fields is a an array of fields to include in the attachment form
    // $post is nothing but attachment record in the database
    //     $post->post_type == 'attachment'
    // attachments are considered as posts in WordPress. So value of post_type in wp_posts table will be attachment
    // now add our custom field to the $form_fields array
    // input type="text" name/id="attachments[$attachment->ID][custom1]"
    $form_fields["rt-image-link"] = array(
        "label" => __("Custom Link"),
        "input" => "text", // this is default if "input" is omitted
        "value" => get_post_meta($post->ID, "_rt-image-link", true),
                "helps" => __("To be used with special slider added via [rt_carousel] shortcode."),
    );
   return $form_fields;
}

2) 'attachment_fields_to_save':これはユーザー入力を受け入れて保存します。

// now attach our function to the hook
add_filter("attachment_fields_to_edit", "rt_image_attachment_fields_to_edit", null, 2);

    function rt_image_attachment_fields_to_save($post, $attachment) {
    // $attachment part of the form $_POST ($_POST[attachments][postID])
        // $post['post_type'] == 'attachment'
    if( isset($attachment['rt-image-link']) ){
        // update_post_meta(postID, meta_key, meta_value);
        update_post_meta($post['ID'], '_rt-image-link', $attachment['rt-image-link']);
    }
    return $post;
}
// now attach our function to the hook.
add_filter("attachment_fields_to_save", "rt_image_attachment_fields_to_save", null , 2);
3
Dave Romsey

これは非常に良いチュートリアル(ソースファイル付き)で、画像、添付ファイル、テキストエリアなどのカスタムフィールドを追加する方法を説明しています。

http://www.deluxeblogtips.com/2010/05/howto-meta-box-wordpress.html

2
Philip

update_post_meta()Codex )関数を使う必要があります。

<?php update_post_meta($post_id, $meta_key, $meta_value, $prev_value); ?>

何をやろうとしている、それはうまくいかない?

1
Chip Bennett

あなたは質問に対する答えの中に良いサンプルコードを見つけるでしょう: 添付ファイルウィンドウにURLフィールドを追加するにはどうすればいいですか?

1
fuxia