自分でサイトの管理ができる場合はいいんですが、お客さんが更新や編集を行う場合って極力分かりやすくしてあげたいですよね。
まあ、裏を返せば余計な物に触って欲しくないんですが…。
なので、例えばお客さんに投稿だけ任せる場合に、投稿一覧や新規追加のリンクボタン(パネル?)をダッシュボードに設置できたら双方にとって好都合ですよね。
(巷では、こういうのをウィンウィンって云うらしいけど、この言葉キライです。どっちも勝ちっておかしいって!該当する両者だけは得をしているかもしれないけど、どこかにその尻拭いをして損をしている人がいるって!
…あっ、脱線しましたね、ゴメンナサイ)
使用環境
WordPress 4.7.5
テーマ:Enfold 4.1
…というのも、よく参考にさせていただいているNxWorldさんのページで、こういう記事があったんですよ。
「あっ、これ便利だな」っと思って設置してみたんですが、ウェルカムパネルって管理者権限の時しか表示されないんですよね。
今回の案件では、編集者権限でお客さんに投稿の追加/編集をしてもらっているので、この方法はNGでした。残念!
せっかく便利な方法があるのに何とかならんのかと、もう少しねばってみました。
で、ダッシュボードにウィジェットを追加する方法にたどり着きました。今回はそれで行きます。アムロ行きまーすッ!(ウソです、アムロはどこにも行きません)
- WordPress 管理画面のカスタマイズ まとめ | hijiriworld Web
- ダッシュボードウィジェット API – WordPress Codex 日本語版
- [WordPress] 管理画面に独自の CSS・JavaScript を適用させる方法まとめ | memocarilog
*↑ hijiriworld Webさん、WordPress Codex 日本語版、memocarilogさんの記事を参考にさせていただきました。
では、実際に使っているテーマのfunctions.phpにコードを追加していきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// ダッシュボードウィジェット追加し順序を変える function example_dashboard_widget_function() { echo "<div class='linkBtn-panel'>"; echo "<h2 class='firstTit'>会員専用のお知らせ</h2>"; echo "<ul>"; echo "<li><a class='button button-primary post-member' href='edit.php'>会員専用 記事一覧</a></li>"; echo "<li><a class='button button-primary post-member' href='post-new.php'>会員専用 新規追加</a></li>"; echo "</ul>"; echo "<h2>一般用のお知らせ</h2>"; echo "<ul>"; echo "<li><a class='button button-primary post-open' href='edit.php?post_type=open_info'>一般公開 記事一覧</a></li>"; echo "<li><a class='button button-primary post-open' href='post-new.php?post_type=open_info'>一般公開 新規追加</a></li>"; echo "</ul>"; echo "</div>"; } function example_add_dashboard_widgets() { wp_add_dashboard_widget('example_dashboard_widget', '各投稿へのリンクパネル', 'example_dashboard_widget_function'); global $wp_meta_boxes; $normal_dashboard = $wp_meta_boxes['dashboard']['normal']['core']; $example_widget_backup = array('example_dashboard_widget' => $normal_dashboard['example_dashboard_widget']); unset($normal_dashboard['example_dashboard_widget']); $sorted_dashboard = array_merge($example_widget_backup, $normal_dashboard); $wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard; } add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' ); |
で、もう1つ。
ダッシュボード(管理画面)にスタイルを反映させたいので、そのコードもfunctions.phpに追加します。
1 2 3 4 5 |
// ダッシュボードで使うスタイルシートを読み込む function my_admin_style(){ wp_enqueue_style( 'my_admin_style', get_template_directory_uri().'/my_admin_style.css' ); } add_action( 'admin_enqueue_scripts', 'my_admin_style' ); |
my_admin_style.cssには、適宜スタイルを追加してみてください。
前述のNxWorldさんがリンクパネルのCSSを紹介されています。僕はそれを参考にさせていただきました。
ありがとうございます。