• 解決済 get_up_kids76

    (@get_up_kids76)


    こんにちは。

    2階層のカテゴリーがあるブログ(親カテゴリーとそれに属する子カテゴリーです)で
    各カテゴリーページを見たときに、固定箇所に常に親カテゴリー名のみを表示させたいのですが下記ソースコードでは子カテゴリーページに移動したときに、親カテゴリー名と同時に
    子カテゴリー名まで表示してしまいます。

    <h3>
    <?php
    $cat = get_category($cat);
    if ($cat->parent) {
    $parent = get_category($cat->parent);
    echo attribute_escape($parent->cat_name);
    }
    ?>
    <?php single_cat_title(”) ?>
    </h3>

    これを子カテゴリーページに移動したときにも
    親カテゴリー名のみしか表示させない方法というのはあるのでしょうか。。。

    いろいろ調べてみたのですが自分の技術力では解決できませんでした。
    どなたかご教授いただけませんでしょうか。

    どうぞよろしくお願いいたします!

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • V.J.Catkick

    (@vjcatkick-1)

    $c = get_the_category();
    $pid = $c[0]->parent;
    if( $pid > 0 ) {
    	do {
    		$t = get_term_by( '', $pid, 'category' );
    		$pid = $t->parent;
    	} while( $pid > 0 );
    	echo '<a href="' . get_category_link( $t->term_id ) . '">' . $t->name . '</a>';
    }else{
    	echo '<a href="' . get_category_link( $c[0]->term_id ) . '">' . $c[0]->name . '</a>';
    }

    こんな感じかな?

    トピック投稿者 get_up_kids76

    (@get_up_kids76)

    V.J.Catkick

    早速のお返事ありがとうございます!!
    ご教授いただいた記述で思い描いていた内容になるのですが
    別の親カテゴリーに移動した際にも
    最初の親カテゴリー名が表示してしまいます。。
    なぜでしょうか。。

    ■親カテゴリー1
     子カテゴリー1-A
     子カテゴリー1-B
     子カテゴリー1-C

    ■親カテゴリー2
     子カテゴリー2-A
     子カテゴリー2-B
     子カテゴリー2-C

    ■親カテゴリー3
     子カテゴリー3-A
     子カテゴリー3-B
     子カテゴリー3-C

    というカテゴリー構成なのですが
    親カテゴリー1のページを見ているときは
    ご教授いただいた内容で問題なく表示するのですが
    親カテゴリー2に移動した際にも
    希望表示箇所に「親カテゴリー1」と表示してしまいます。。

    申し訳ありませんが、ご教授くださいますでしょうか。

    よろしくお願いいたします!

    V.J.Catkick

    (@vjcatkick-1)

    あれ、試してみたんですが、一応問題ないような…。親カテゴリー2にも記事(親カテゴリー2そのもの、もしくは子カテゴリー2-Bとかに所属する記事)がある、という理解でいいんですよね。

    カテゴリーページということでしたので、カテゴリーページで試してみたんですが、個別エントリのページ等ともに、一応問題なさそうなんです。

    ■親カテゴリー1
     子カテゴリー1-A
      子カテゴリー1-B(1-Aのさらに下)
    ■親カテゴリー2
     子カテゴリー2-A
      子カテゴリー2-B(2-Aのさらに下)
    こういう環境を作って、
    ・子カテゴリー1-B
    ・親カテゴリー2
    ・子カテゴリー2-B
    の3カ所に記事を置いて、個別の記事それぞれと、親カテゴリー1、親カテゴリー2のカテゴリページで動作を確認しました。

    コードを置いたのはループの外側(下部)で、プラグイン等はインストールなしの状態でのチェックです。そちらの環境と比較してみていただけますか?

    トピック投稿者 get_up_kids76

    (@get_up_kids76)

    V.J.Catkickさま

    申し訳ありません!!
    私が間違っておりました。。。
    きちんと表示されております。

    重ねて謝らないといけないのですが
    ご説明するべきことが抜けておりました。。。
    こちらで表示がおかしかったのは、これが原因でした。。

    先ほどの親カテゴリー名を表示した箇所の下に
    その親カテゴリーに属する子カテゴリーをリスト表示させたいのです。。

    要は、親カテゴリー1に属するページのすべてには

    ■親カテゴリー1
    ・子カテゴリー1-A
    ・子カテゴリー1-B
    ・子カテゴリー1-C

    というようにしたいのです。
    そこから子カテゴリー1-Bのページに移っても
    同じ固定箇所に

    ■親カテゴリー1
    ・子カテゴリー1-A
    ・子カテゴリー1-B
    ・子カテゴリー1-C

    という風に表示させたいのです。。。

    これは可能でしょうか。

    説明不足故、お手数をおかけしておりますが
    ご教授いただければ幸いでございます。

    よろしくお願いいたします!

    V.J.Catkick

    (@vjcatkick-1)

    なるほど。

    えぇっと、上のコードで親カテゴリのterm_idは取れている($t->term_idとか)ので後は普通にget_categories()にterm_idを指定すれば、その子孫は取れます。それを整形すれば問題ないかな、と思います。

    http://wpdocs.sourceforge.jp/関数リファレンス/get_categories
    ここにサンプルがあります。

    2階層目まで(直接の子供まで)ならparent、子孫まで取るならchild_ofにterm_idをセットしてコールすれば、結果として戻ってきます。後は用例のサンプルを見ながら、表示にあわせればよろしいかと思います。

    トピック投稿者 get_up_kids76

    (@get_up_kids76)

    V.J.Catkickさま

    こんばんは。
    ご回答ありがとうございます。

    。。。すみません。。
    私が知らなさすぎるのですが、何度トライしても反映できませんでした。。

    しかも、元々お教えいただいた内容すら表示できなくなってしまい
    完全に迷路状態です。。

    記述内容をお教えくださいませんでしょうか。。。
    よろしくお願いします。

    V.J.Catkick

    (@vjcatkick-1)

    $c = get_the_category();
    $pid = $c[0]->parent;
    if( $pid > 0 ) {
    	do {
    		$t = get_term_by( '', $pid, 'category' );
    		$pid = $t->parent;
    	} while( $pid > 0 );
    
    	// 親を出力:子ページで参照した場合
    	echo '<a href="' . get_category_link( $t->term_id ) . '">' . $t->name . '</a>';
    
    	$pid = $t->term_id;
    }else{
    
    	// 親を出力:自分自身が親の場合
    	echo '<a href="' . get_category_link( $c[0]->term_id ) . '">' . $c[0]->name . '</a>';
    	$pid = $c[0]->term_id;
    }
    echo '<ul>';
    $categories = get_categories('child_of='. $pid);
    	foreach($categories as $category) {
    		// 子を出力
    		echo '<li><a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a></li>';
    	}
    echo '</ul>';

    こんな感じですね。出力位置(ulやli)は適宜調整して下さい。

    トピック投稿者 get_up_kids76

    (@get_up_kids76)

    V.J.Catkickさま

    こんにちは。
    さすがです。

    思っていた通りの表現が出来るようになりました!!!
    本当にありがとうございます!!

    次のステップとして、お教えいただいた内容の
    記述してある意味を理解するようにしたいと思います。。。
    難しい。。。

    このたびは本当にありがとうございました!!!

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「表示しているページのカテゴリー名表示(親カテゴリーのみ)」には新たに返信することはできません。