
ブログのメニューでカテゴリーごとの記事の数を表示させたいつぼ。
どうすればいいつぼ?

ふむふむ。
確かに記事数の表示があると
メインテーマが分かりやすくなったり、全体感も把握しやすいですね。
それでは今回はカテゴリごとの記事数を表示させる方法について見ていきましょう。

今回はCocoonでカテゴリごとの記事数を表示させる方法について見ていきましょう。
Cocoonフォーラムの中に同様の質問をされている方がいらっしゃいましたので、参考にさせていただいています。


ふむふむ。
どうやら下記phpコードをfunctions.phpに追記すれば良いようです。
早速やってみます。
//function my_the_title_menu_category( $title, $post_ID ) {
if ( 'nav_menu_item' == get_post_type( $post_ID ) ) {
if ( 'taxonomy' == get_post_meta( $post_ID, '_menu_item_type', true ) && 'category' == get_post_meta( $post_ID, '_menu_item_object', true ) ) {
$category = get_category( get_post_meta( $post_ID, '_menu_item_object_id', true ) );
if ( $category->count >= 0) {
$title .= sprintf( ' (%d)', $category->count );
}
}
}
return $title;
}
add_filter( 'the_title', 'my_the_title_menu_category', 10, 2 );
【手順】
WP管理画面➤テーマファイルエディター➤functions.php
➤「//以下に子テーマ用の関数を書く」の下、8行目以降ににコピペしていきます。


最後にファイルを更新をクリック。
さて上手くいくでしょうか。


はりゃ!
18行目でエラーが出てしまいました。
こんな時にはChatGPTの出番です。


ChatGPTさん宜しくお願いいたします。
力を貸してください!

このPHPコードの目的は、ナビゲーションメニュー内のカテゴリー項目のタイトルに、そのカテゴリー内の投稿数を追加することのようですね。コードにはいくつかの改善点があります。

さすがChatGPTさん!
修正版コードを教えてください。
修正点
get_category()
が失敗する場合の処理:get_category()
が返すオブジェクトは、無効なIDの場合にはWP_Error
が返されることがあるので、それを確認する処理を加えると良いでしょう。$category->count >= 0
の修正: カテゴリーの投稿数がゼロでもカウントを追加したい場合、>= 0
は問題ありませんが、$category->count
がnull
や負の値にならないように明示的なチェックを入れるのも良いかもしれません。
修正版コード
function my_the_title_menu_category( $title, $post_ID ) {
if ( 'nav_menu_item' == get_post_type( $post_ID ) ) {
if ( 'taxonomy' == get_post_meta( $post_ID, '_menu_item_type', true ) && 'category' == get_post_meta( $post_ID, '_menu_item_object', true ) ) {
$category_id = get_post_meta( $post_ID, '_menu_item_object_id', true );
$category = get_category( $category_id );
// カテゴリーが有効であれば
if ( ! is_wp_error( $category ) && $category ) {
$count = $category->count;
// 投稿数が0以上ならカウントをタイトルに追加
if ( $count >= 0 ) {
$title .= sprintf( ' (%d)', $count );
}
}
}
}
return $title;
}
add_filter( 'the_title', 'my_the_title_menu_category', 10, 2 );

ChatGPTさんが教えてくれた修正版コードを入力していきましょう。


おお!!
見事、成功です!
変更点の説明:
is_wp_error( $category )
のチェック:get_category()
が失敗した場合、WP_Error
オブジェクトが返るので、それを避けるためにis_wp_error()
で確認しています。- カテゴリーが有効であれば:
$category
が存在するかどうかを確認してから処理を進めるようにしています。
これで、カテゴリーIDが無効な場合にエラーが出ないようになり、コードが安定します。

これくらい朝飯前です。

おみそれしました!
早速、記事数が表示されているか確認してみましょう!


バッチリつぼ!
カテゴリーごとの記事の数が表示されたつぼ。
お見事つぼ!
今回はWordPressでCocoonを使用しているときのカテゴリごとの記事数を表示させる方法について見てきました。
ここまでご覧いただきましてありがとうございました。
コメント