web-dev-qa-db-ja.com

テーマオプションページでメディアアップロードを使用する方法

テーマオプションページにアップロードロゴを実装する必要があります。現在フォローしています このコード

私が今したことはメディアアップロードのための関連jqueryをロードする

function load_only() {
    add_thickbox();
    wp_enqueue_script('jquery-option', get_template_directory_uri() . '/admin/js/jquery.option.js', array('jquery','media-upload','thickbox','jquery-ui-core','jquery-ui-tabs'), '1.0');
}

質問

既存のメディアアップロードを使用してアップロードフォームを実装する方法

<input id="theme_options_upload" type="text" name="theme_options_upload" value="<?php esc_attr_e( $options['theme_options_upload'] ); ?>" />
<input type="button" name="just_button" value="<?php esc_attr_e('Upload'); ?>" />

私は知りたいです

  1. ボタンをmedia-upload.phpにリンクする方法
  2. 画像をアップロードしてメディアアップロードのInsert into Postボタンをクリックすると、画像はフィールドname="theme_options_upload"に配置されます。

お知らせ下さい。

6
haha

画像タグ全体ではなく画像のURLを保存するのが最も一般的です。メディアアップローダを自分のテーマやプラグインで使用する方法を説明した素晴らしいチュートリアルがあります。 http://www.webmaster -source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/

更新

メタボックスでこれを使用する場合は、投稿IDが必要になるので、jsコードを次のように変更します。

jQuery('#upload_image_button').click(function() {
 formfield = jQuery('#upload_image').attr('name');
 tb_show('', 'media-upload.php?type=image&amp;TB_iframe=true');
 return false;
});

jQuery('#upload_image_button').click(function() {
 formfield = jQuery('#upload_image').attr('name');
 post_id = jQuery('#post_ID').val();
 tb_show('', 'media-upload.php?post_id='+post_id+'&amp;type=image&amp;TB_iframe=true');
 return false;
});
8
Bainternet