WordPressテーマSANGOの質問

カテゴリーページで同カテゴリーのみの目次を表示させたい

アバター
おとうぴー

もうひとつご質問させてください。
やりたいことは「カテゴリーページで同カテゴリーのみの目次を表示させたい!」です。

カテゴリーページにて
[category id="123"]
カテゴリー内の目次
[/category]

を設定すると対応するカテゴリーの記事のみに表示されて大変便利な機能なのですが、
カテゴリーページで使用すると機能してくれませんでした。

連続での質問になり申し訳ありませんが、よろしくお願い致します。

SEOを考えたカテゴリー設定
SEOを考えたカテゴリー設定をしよう
コメントへの回答
サルワカくん
サルワカくん
2018/07/03

遅くなりすみません。
理解力がなくて申し訳ないのですが、どのような意味でしょうか。
ID「123」のカテゴリーページにて、ID「123」のカテゴリーでのみ表示するショートコードを使用するということでしょうか。
その場合、ショートコードを使わなくとも、ID「123」のカテゴリーの説明欄でのみ入力するという形では問題がありますか?

アバター
おとうぴー
2018/07/04

すみません、読み返しましたが完全にこちらの書き方が悪かったです。申し訳ありません。

やりたいことは『カテゴリーID「123」をもつ記事(カテゴリーページを含む)でウィジットのサイドバーに同カテゴリーの目次を表示したい』です。

いまウィジットに上記の設定をしますと、カテゴリーID「123」の記事のサイドバーに目次は表示されますが、カテゴリーページのサイドバーに目次は表示されませんでした。カテゴリーページでは、ウィジットにて同カテゴリーのみ表示する機能は使えないということでしょうか?

つたない文章で申し訳ありませんが、よろしくお願い致します。

サルワカくん
サルワカくん
2018/07/04

ウィジェットということですね。
そちらのショートコードは「特定のカテゴリーの記事内で」というものなので、
カテゴリーページには効かないと思われます。
以下のコードを子テーマのfunctions.phpに追加し、そのうえで[catpage]ここにそのカテゴリーページで表示したいもの[/catpage]というショートコードを挿入すれば想定通りに機能するかと思います。

/*********************
特定のカテゴリーページでのみ表示
*********************/
add_shortcode('catpage','only_catpage');//特定のカテゴリーでのみ表示
function only_catpage($atts , $content = null) {
	$cat_id = (isset($atts['id'])) ? $atts['id'] : null;
	$cat_id = explode(',',$cat_id);
	if($content && is_category($cat_id)) {
		$content = do_shortcode( shortcode_unautop( $content ) );
		return $content;
	}
}
/*********************
END 特定のカテゴリーページでのみ表示
*********************/

ご確認よろしくお願いします。

アバター
おとうぴー
2018/07/04

確認できました!

ウィジット(スマホ用ナビドロワー)にて、下記ショートコードを書いてみました。
[catpage id=”123″]
★目次はここ1★←カテゴリーページのみ表示
[/catpage]
[category id="123"]
★目次はここ2★←いままでどおり同カテゴリーの記事内ページのみ表示
[/category]

ご丁寧な対応、本当にありがとうございました!^^

サルワカくん
サルワカくん
2018/07/04

うまくいったようで良かったです!丁寧なご報告ありがとうございました。