投稿ページにキーワード検索ウィジェットを追加する

投稿ページにキーワード検索ウィジェットを追加する - 投稿ページにウィジェットを追加する

説明

「投稿の編集」ページで記事を編集していると、関連する投稿記事を検索したくなることがある。そんな時、「投稿一覧」ページに戻って「キーワード検索」を行えばいいのだが、そのひと手間がちょっとだけ煩わしい。
そうだ、「キーワード検索」ウィジェットを追加しよう

そんなわけで、「投稿の編集」ページに「キーワード検索」機能を追加し、「投稿一覧」ページに遷移するひと手間をなくすことにした。具体的には、テーマのfunctions.phpに次のように記述するだけでいい。

add_action( 'admin_init', 'my_admin_init' );

if ( ! function_exists( 'my_admin_init' ) ) {
	function my_admin_init() {
		add_meta_box( 'meta_box_post_searchbox', '投稿を検索', 'meta_box_post_searchbox', 'post', 'side', 'high' );
	}
	function meta_box_post_searchbox() {
?>
<input type="text" id="post-search-input" name="s" value="" style="width: 16em;" />
<a  class="button" href="javascript:post_searchbox('<?php echo admin_url( 'edit.php' ); ?>')">検索</a>
<script type="text/javascript">
function post_searchbox( url ) {
	var post_search_input = jQuery.trim( jQuery( '#post-search-input' ).val() );
	if ( post_search_input != '' )
		locaution.href = url+'?s='+encodeURI( post_search_input );
}
</script>
<?php
	}
}

ここではadmin_initアクションとして、my_admin_init関数を指定し、その中でadd_meta_box関数を呼び出して、「投稿を検索(キーワード検索)」ウィジェットを追加している。すでに自身のテーマでadmin_initアクションを使用している場合は、その関数内で「キーワード検索」ウィジェットを追加すればいい。

「キーワード検索」ウィジェットの中身は、meta_box_post_searchbox関数で指定している。ウィジェットの中身は本来であればFORMタグにしたいところだが、「投稿の編集」ページのウィジェットはフォームの内側になるので、FORMタグは使用できない。その対策として、ここではAタグを使用している。またキーワード用のINPUTタグは、右サイドで使用することを想定してstyle属性で幅16emを指定いる。

後は「投稿の編集」ページを表示して「投稿を検索」ウィジェットを好みの位置に調整すればいい。

関連

  • add_action - アクション関数を追加する
  • add_meta_box - 投稿ページに独自のメタボックスを表示する
  • admin_url - 管理者ページのURLを取得する

お勧めコンテンツ

esc_html(2010年6月17日 登録)

string esc_html( string $text )
テキスト内のHTMLタグをエスケープする。具体的には、パラメータ$textの中に含まれている特殊文字をHTMLエンティティに変換したテキストを取得する。

wp_trim_words(2011年12月20日 登録)

string wp_trim_words( string $text [ , int $num_words = 55 [ , string $more = null ] ] )
文字列を指定の長さに揃える。

get_template_directory(2010年1月14日 登録)

string get_template_directory( )
現在使用しているテーマのパス名を取得する。

wp_get_nav_menus(2014年12月25日 登録)

array wp_get_nav_menus( [ array $args = array() ] )
すべてのナビゲーションメニュー情報を取得する。

readonly(2017年11月16日 登録)

string readonly( mixed $readonly [ , mixed $current = true [ , bool $echo = true ] ] )
readonly属性を表示する。

最終更新日時 : 2012-06-02 14:26