気になる言葉ショップ

気になる言葉ショップでは、管理人のわがままで選ばれた気になる言葉ごとのオンラインショッピングコーナーを設けています。
Home > wordpress >
メディアボタンの追加

メディアボタンの追加

今使っているWordPress3.9.2だと、記事を投稿するエディタの上部に「メディアを追加」というボタンがあります。これは、画像や、音声、動画などのファイルをアップロードし、記事で表示や再生を行えるようにするものです。
そこで、自分オリジナルのものを同様に記事に追加できるようにボタンを追加しようと思います。

まず、ボタンの表示は、actionフックを使います。

add_action( “media_buttons”, onMediaButtons, 20);
20は、実行順のプライオリティなので、同様のボタンがいくつかあるときは、それらより小さくすれば左に、大きくすれば右に配置される。本家は、指定していないようなのでデフォルトの10になっています。

onMediaButtonsは、ボタンを表示する関数で、ボタンをクリックしたらポップアップウィンドウが開くようにURLを指定します。

function onMediaButtons(){
	global $post_ID, $temp_ID
	$media_type = "mymedia";

	$id     = (int)( 0 == $post_ID ? $temp_ID : $post_ID );
	$iframe = apply_filters( "media_upload_mymedia_iframe_src", "media-upload.php?post_id={$id}&type=". $media_type ."&tab=" . $media_type . "_search" );
	$option = "&TB_iframe=true&keepThis=true&height=500&width=640";
	$title  = "My Media";
	$button = get_template_directory_uri() ."/mediaupload/botton.gif";
	echo '<a href="' . $iframe . $option . '" class="thickbox" title="' . $title . '"><img src="' . $button . '" alt="' . $title . '" /></a>';
}

上で指定したメディアタイプ”mymedia”とタブ”mymedia_search”が、アクションフックの名前の一部になります。

add_action( "media_upload_mymedia", "media_upload_mymedia");
add_action( "media_upload_mymedia_search", "media_upload_mymedia");

ここで、ポップアップウィンドウを開くようにします。中身を表示する関数を指定します。この時指定する関数名は、”media”で始めてください。”media”で始まっているとmedia用スタイルシートが読み込まれます。

function media_upload_mymedia(){
	wp_iframe( "media_upload_mymedia_form" );
}

ウィンドウのヘッダーにスクリプトなどを入れたい場合は、中身を表示する関数名の前にadmin_head_を付けたフックを利用できます。

add_action( "admin_head_media_upload_mymedia_form", "onMediaHead");
function onMediaHead(){
	echo '<script type="text/javascript" src="' . get_template_directory_uri() . '/editor.js"></script>';
}

ポップアップウィンドウの中身を設定します。

function media_upload_mymedia_form(){
	add_filter( "media_upload_tabs", "onModifyMediaTab"); //タブ名を指定
	media_upload_header(); // タブの部分を出力
	onMediaButtonPage(); //実際の中身
}

エディタ画面に挿入するところは次回にします。

Comments are closed.