WordPress:カスタム投稿タイプの投稿数をダッシュボードの概要に表示する方法+α

  • Posted on
  • Category : WordPress
WordPress:カスタム投稿タイプの投稿数をダッシュボードの概要に表示する方法+α

WordPressが3.8になって管理画面のデザインなどが一新されましたが、その際に今までは使えていた管理画面向けのハックやカスタマイズが一部使用できなくなりました。その使えなくなったものの中で、個人的によく使用していた「カスタム投稿タイプの投稿数をダッシュボードに表示する方法」を3.8以降で使用する方法を見かけたので、備忘録兼ねて紹介します。また、その投稿数に任意でアイコンを指定する方法も併せて紹介します。

デフォルトではカスタム投稿タイプの記事数は表示されない

画像はデフォルトのダッシュボードの「概要」をキャプチャしたものです。
このWordPressには投稿以外に「ニュース(news)」と「ギャラリー(gallery)」という2つのカスタム投稿タイプを作成しており、それぞれ記事の投稿もされているんですが、デフォルトでは「概要」の部分には投稿しか表示されていません。

以前、管理画面のカスタマイズについてまとめた際に、文言や見栄えなどは変更されていますが「3.カスタム投稿タイプの記事数をダッシュボードに表示する – WordPressの管理画面をカスタマイズする時に使えるハック Part 3」で投稿数や固定ページ数を表示している箇所にカスタム投稿の投稿数も表示させる方法を紹介したのですが、3.8以降で同じようなことを実装したい場合は別の方法を使う必要があります。

ダッシュボードの「概要」部分にカスタム投稿タイプの投稿数も表示させたい場合は、以下をfunctions.phpに記述することで実装することができます。

functions.php

add_action( 'dashboard_glance_items', 'add_custom_post_dashboard_widget' );
function add_custom_post_dashboard_widget() {
	$args = array(
		'public' => true,
		'_builtin' => false
	);
	$output = 'object';
	$operator = 'and';

	$post_types = get_post_types( $args, $output, $operator );
	foreach ( $post_types as $post_type ) {
		$num_posts = wp_count_posts( $post_type->name );
		$num = number_format_i18n( $num_posts->publish );
		$text = _n( $post_type->labels->singular_name, $post_type->labels->name, intval( $num_posts->publish ) );
		if ( current_user_can( 'edit_posts' ) ) {
		    $output = '<a href="edit.php?post_type=' . $post_type->name . '">' . $num . '&nbsp;' . $text . '</a>';
		}
		echo '<li class="post-count ' . $post_type->name . '-count">' . $output . '</li>';
	}
}
「概要」にカスタム投稿タイプの記事数も表示される

記述後に表示を確認すると画像のように「概要」の箇所にカスタム投稿タイプの投稿数が表示され、今回の場合はニュースは2件投稿しているので「2 ニュース」、ギャラリーは1件投稿しているので「1 ギャラリー」という感じで表示されています。
それぞれ投稿タイプ名が投稿数の後ろに付加される形になっているので、これを他の文言にしたいとか統一させたいとかであれば$textなどの部分を変更してください。

アイコンを変更する

アイコンを任意のものに変更する

先ほどの方法でダッシュボードの「概要」部分にカスタム投稿タイプの投稿数を表示させることができましたが、表示されている箇所にあるアイコンは投稿と同じものが表示されています。
気にならなければそのままでも問題はないのですが、どうせなら分かりやすく別のアイコンにしたいという場合は、同じくfunctions.phpに以下を追記することで、上の画像のようにアイコンを任意のものへ変更することができます。

functions.php

function add_custom_post_dashboard_widget_change_dashicons() {
	echo '<style type="text/css">
	.news-count a::before {content: "\f123" !important;}
	.gallery-count a::before {content: "\f233" !important;}
	</style>';
}
add_action( 'admin_head', 'add_custom_post_dashboard_widget_change_dashicons' );

最初に紹介したコードで追加された投稿数の部分にはそれぞれxxx-countという感じでクラスが設定されるように記述してあるため、そのクラス名の::beforeに対して使用するアイコンを指定する記述になります。
クラスで「xxx」の部分は投稿タイプ名が入ってくるようになっており、今回の場合は「ニュース(news)」と「ギャラリー(gallery)」を使用しているので、ニュースはnews-count、ギャラリーはgallery-countをそれぞれ指定しています。
また、今回は変更するアイコンはWordPress本体に含まれているアイコンフォント「Dashicons」を使用・指定していますが、自身で用意したアイコンフォントを指定することももちろんできます。

Dashicons

Dashicons

Dashiconsを使用する場合はこちらで他にどのようなアイコンフォントを使用できるか確認することができ、並んでいるアイコンの中で使用したいものをクリックするとページ上部に大きく表示されるので、あとは「Copy CSS」を選択して表示されたコードを指定すればそのアイコンを使用・指定することができます。

この方法は以下で紹介されているものを参考にしました。

Back to Top

WordPress:カスタム投稿タイプの投稿数をダッシュボードの概要に表示する方法+α

WordPress:カスタム投稿タイプの投稿数をダッシュボードの概要に表示する方法+α

/ WordPress

Tagged with:

NxWorld

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser.NxWorldではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。