この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレスで会員制ポイントサイト作るための覚え書き その1 投稿画面にメタボックスを追加する方法

会員制サイトを作るための覚え書きということで投稿しています。
やりたいことは記事投稿とページ投稿(固定ページ)で、右側に表示されるサイドバーにメタボックスを追加することです。
サイドバーには通常であれば「公開」「カテゴリー」といったメタボックスが最初から表示されていますね。
ここにオリジナルのメタボックスを追加します。

メタボックス
メタボックス

プラグイン「WP-Members」には投稿をブロックするかどうかを選択できるメタボックスがあります。
このメタボックスの機能はシンプルで、チェックボックスがひとつあるだけです。チェックをして記事を保存するとカスタムフィールドに「block」というキーで「true」という値が入ります。

カスタムフィールドに「block」があり「true」または「false」の場合、設定に応じてオープンとクローズができる仕組みです。「WP-Members」は「続きを読む」を意味するテンプレートタグの「moreタグ」があれば、そこから先はログインしていないと表示できない仕組みとなっています。

まず投稿編集画面のサイドバーにメタボックスを追加する方法ですがワードプレスには「add_meta_box()」という関数が用意されています。

使い方は以下の通りです。

add_meta_box( '被らないID', 'タイトル', '実行する関数名', '投稿タイプ', '表示する場所', '表示される優先度' );

▼関数リファレンス/add meta box

これをテーマフォルダ内の「functions.php」にアクションフックでフックしてあげます。

まず「被らないID」ですがこれはメタボックスを認識するIDなので他と被らなければなんでも構いません
サンプル用に「my_post_meta_box1」とでもしましょう。

次に「タイトル」ですがメタボックスに表示されるタイトルとなります。
「実行する関数名」はメタボックスに表示する内容や処理を記述した関数名を指定します。

「投稿タイプ」は通常のシングルページであれば「post」で固定ページであれば「page」となります。もしカスタム投稿にも追加したい場合は、カスタム投稿のスラッグ名を指定します。

「表示する場所」については右サイドバーの他にビジュアルエディタの上や下が選べます。
右側サイドバーに出したい時は「side」で、ビジュアルエディタの下部は「normal」または「advanced」を指定します。

「表示される優先度」はメタボックスが複数ある場合の表示順序です。「high」「low」が指定できて「high」にすると上位に表示されます。とはいえ、ユーザーがドラッグドロップで順序を入れ替えできるのであまり意識する必要はないかもしれません。

ではどうやって「functions.php」に記述するかというと以下のように記述します。
メタボックスの追加だけでブロックの処理はありません。

関連記事