WordPressのダッシュボードカスタマイズで増やしたり減らしたり文言変化させたりいろいろ覚書
今回のエントリは導入自体は既にけっこうまえに導入してたものなので、どこを参考にしたかが全くわからn…!!!(すみません)
目次
ダッシュボードの不要のものを削除
function example_remove_dashboard_widgets() { global $wp_meta_boxes; //unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 現在の状況 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // 最近のコメント unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // 最近の下書き unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム } add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');
多分フォーラム参考にしてる…。関数名ググったら一緒だったので。
現在の状況以外は非表示。
現在の状況にカスタム投稿の情報も表示させる
function custom_post_dashboard() { $dashboard_custom_post_types= Array( 'event', //投稿タイプ名がeventの場合 ); foreach($dashboard_custom_post_types as $custom_post_type) { global $wp_post_types; $num_post_type = wp_count_posts($custom_post_type); $num = number_format_i18n($num_post_type->publish); $text = _n( $wp_post_types[$custom_post_type]->labels->singular_name, $wp_post_types[$custom_post_type]->labels->name, $num_post_type->publish ); $capability = $wp_post_types[$custom_post_type]->cap->edit_posts; if (current_user_can($capability)) { $num = "<a href='edit.php?post_type=" . $custom_post_type . "'>$num</a>"; $text = "<a href='edit.php?post_type=" . $custom_post_type . "'>$text</a>"; } echo '<tr>'; echo '<td class="first b b_' . $custom_post_type . '">' . $num . '</td>'; echo '<td class="t ' . $custom_post_type . '">' . $text . '</td>'; echo '</tr>'; } } add_action('right_now_content_table_end', 'custom_post_dashboard');
WordPressをクライアントワークで使用する際に覚えておくと良さそうな管理画面のカスタマイズ用コードいろいろ
カスタム投稿をダッシュボードのところに追加したいっていう要望があったので対応。
現在の状況にあるカテゴリ、タグやコメントなどいらない項目を削除したい
function dashboard_right_now_listderete() { echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo("template_directory").'/dashboard.css">'; } add_action('admin_head', 'dashboard_right_now_listderete');
これはPHPではどうやってやるんだろう(できるのかな?)。cssで非表示で十分なので、これは以前やったwordpressのログイン画面のカスタマイズを参考に、管理画面内でdashboard.cssを呼び出すアクションフックを作って、dashboard.css内には
div#dashboard_right_now .b-cats,div#dashboard_right_now .cats,div#dashboard_right_now .b-tags,div#dashboard_right_now .tags,div#dashboard_right_now .b-comments,div#dashboard_right_now .comments{display:none;}
みたいな感じで非表示させた。
アクションフックがうまく解読?できないのでメモ
add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );
プラグイン APIより。これをベースにさっきのcss追加フックを解読
・hook_name は WordPress によって提供されているアクションフックの名称で、関数がどのイベントと関連するのかを示します。(プラグイン API/アクションフック一覧を参考)
・your_function_name は hook_name で設定されたイベントに続いて実行させたい関数の名称です。
・your_function_name は 他のプラグインや WordPress コアで使用されている関数名は使用しないよう気をつける。
function dashboard_right_now_listderete() { echo '<link rel="stylesheet" type="text/css" href="'.get_bloginfo("template_directory").'/dashboard.css">'; } add_action('admin_head', 'dashboard_right_now_listderete');
admin_headでdashboard_right_now_listdereteを呼び出す…て感じかな…