WordPressの投稿やページの投稿画面にメタボックスを追加する方法

WordPressの管理画面に、オリジナルのメタボックスを追加する方法です。

メタボックスというのは、公開ボックスとか、カテゴリー選択ボックスみたいなやつです。
カスタムフィールドでも実現できますが、プラグインの制作時などに追加したいときに使えます。

こういうボックスを追加する。

出た!納品時にマニュアルとか出せる!

コード

// 中身
function nskw_meta_box_inside() {
	echo 'I added a new meta box myself! Bravo!!';
}

// メタボックスを追加する関数
function nskw_meta_box_output() {
	add_meta_box('nskw_meta_post_page', 'Test Meta Box', 'nskw_meta_box_inside', 'post', 'side', 'low' );
}

// フックする
add_action('admin_menu', 'nskw_meta_box_output' );

解説

  1. メタボックスの中身のHTMLを決める
  2. メタボックスを追加する関数
  3. 2の関数をフックする

という順番です。

2番目のメタボックスを追加する関数は、以下のようになっています。

add_meta_box( $id, $title, $callback, $page, $context, $priority );
$id
ここに書いたのが、ボックスのhtml divタグのidになる。cssとかjsと使う時に便利
$title
ボックスのタイトル
$callback
最初のHTML出力の関数名
$page
‘post’、’page’、’link’、’自分が加えたカスタムポストタイプのスラッグ名’から選ぶ
$context
左側の幅広に加えるのか(normal / advanced)、サイドに加えるのか(side)を指定。
$priority
‘low’,’high’を指定して上の方に来るか下の方に来るかを指定

使い方

上記をテーマのfunctions.phpに追加するか、プラグインにして有効化するかです。

発展

僕はhtmlが出ればいいだけなので、これで終りですが、フォームとして使いたい時には、

  • 権限の認証
  • nonce認証
  • フォームの値を保存する

というのが別途必要なので、下記を参考に。

functions.phpでのWordPress(ワードプレス)管理画面カスタマイズ
Codex>関数リファレンス/add meta box

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です