この記事は最後に更新してから1年以上経過しています。
説明
「投稿の編集」ページで記事を編集していると、関連する投稿記事を検索したくなることがある。そんな時、「投稿一覧」ページに戻って「キーワード検索」を行えばいいのだが、そのひと手間がちょっとだけ煩わしい。そうだ、「キーワード検索」ウィジェットを追加しよう
そんなわけで、「投稿の編集」ページに「キーワード検索」機能を追加し、「投稿一覧」ページに遷移するひと手間をなくすことにした。具体的には、テーマの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を指定いる。
後は「投稿の編集」ページを表示して「投稿を検索」ウィジェットを好みの位置に調整すればいい。
最終更新 : 2012年06月02日 14:26
関連
お勧め
wp_print_inline_script_tag(2021年4月19日 更新)
void wp_print_inline_script_tag( string $javascript [ , array $attributes = array() ] )
インラインJavaScriptを含むscript要素を出力する。
register_rest_route(2022年8月17日 更新)
bool register_rest_route( string $namespace, string $route [ , array $args = array() [ , bool $override = false ] ] )
REST APIのルートを登録する。
wp_determine_option_autoload_value(2024年7月22日 更新)
string wp_determine_option_autoload_value( string $option, mixed $value, mixed $serialized_value, boo l |string $autoload )
自動ロードのトリガー値を取得する。
single_tag_title(2018年5月27日 更新)
string single_tag_title( [ string $prefix = '' [ , bool $display = true ] ] )
投稿タグアーカイブページの投稿タグ名を取得し、パラメータ$displayがtrueならば表示する。$displayがfalseの場合は、文字列として返す。
home_url(2023年3月31日 更新)
string home_url( [ string $path = '' [ , string $scheme = null ] ] )
現在のブログ(サイト)のホームURLを取得する。ホームURLは、管理者ページの「設定」-「一般」の「サイトのアドレス(URL)」のこと。