WordPress

WordPress投稿画面でカテゴリ選択で定型文を出力するカスタマイズ

投稿日:

WordPress でいつも一部は決まった文章を書く場合、最初から定型文として入力してあると便利です。ここではカテゴリーを選択すると、記事投稿画面に定型文を出力するカスタマイズを紹介します。

カテゴリーごとに違う定型文を出力する事も可能です。

独自jQueryファイルの読み込み

このカスタマイズをするには WordPress で読み込まれている jQuery の他に、独自の処理を書いた jQuery ファイルを読み込む必要があります。

管理画面以外なら head タグ内に script タグで jQuery ファイルを読み込めば良いですが、管理画面ではそうはいきません。

WordPress テーマのテーマのための関数(function.php)に以下を追記します。

function my_admin_script(){
    if( get_post_type() === 'post' ){
        wp_enqueue_script( 'my_admin_script', get_template_directory_uri().'/js/ファイル名');
    }
}
add_action("admin_head-post-new.php", "my_admin_script");

WordPress の新規投稿画面で独自の jQuery ファイルを読み込む処理です。最初の if 文は投稿画面のみに読み込むという意味です。

jQuery ファイルをアップする場所は wp-content フォルダーの中にある使用テーマのフォルダーです。

get_template_directory_uri() は使用テーマのフォルダーを出力します。

jQueryファイル

jQuery('#category-7 .children input').change(function(){
	var shopTemplate = '設定したい定型文';
	if(jQuery(this).prop('checked')){
		jQuery('.wp-editor-area').val(shopTemplate);
	}
});

管理画面で使う jQuery には注意点があります。jQuery ではドルマークを多用しますが、管理画面では使えません。javaScript の「$」と競合してしまう恐れがあるため、「$」が使えないようになっています。

そのため「$」のかわりに「jQuery」に置き換えます。

1行目はカテゴリーを選択するチェックボックスまでの CSS の ID やクラスを記入し、それが変わった時に処理が実行される関数です。ソースを見れば ID やクラスがわかります。

上の例では、親カテゴリの li の id(#category-7)が最初にあり、その子カテゴリ(.children)の input(チェックボックス)を指定しています。

適当な変数に設定したい定型文を入力します。

「if(jQuery(this).prop('checked')){」は指定したカテゴリのチェックボックスがオンになった時に実行される if 文です。

「jQuery('.wp-editor-area').val(shopTemplate);」で投稿画面に定型文を出力します。

最初の行の「#category-7」の部分を変えてもう一つ関数を作ると、カテゴリごとに定型文を出力する事ができます。

-WordPress

Copyright© ウェブミスト(Webmist) , 2024 AllRights Reserved Powered by STINGER.