とりあえずthe_titleにechoは必要ないと思いますが……ともあれ、
get_categoriesで可能だと思いますがどうでしょうか。
(バックアップしてからお願いします)
<?php
$cat = get_the_category();
$cat_id = $cat[0]->term_id;
$args = array(
'orderby' => 'name',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = get_categories($args);
foreach ($categories as $category) { ?>
<a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name; ?></a>|
<?php } ?>
>Kazaisyuさま
返信ありがとうございます!
教えていただいたコードを入れてみたのですが、何も出力されませんでした。。。
難しいのですかね…。
(the_titleの件、ありがとうござます!echoは不要でしたね)
すみません、少しコードが間違えてました。
<?php
$cat = get_the_category();
$cat_id = $cat[0]->term_id;
$args = array(
'orderby' => 'term_group',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = get_categories($args);
foreach ($categories as $category) { ?>
<a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name; ?></a>|
<?php } ?>
あと「何も」というのは画面が真っ白という意味ですか?
このコードはtitleの中、ifの該当部分に入れてもらえないと機能しないと思います。
あとは、<?php ?>が入れ子になっていないか、あるいはphpコードエラーがないかをチェックしてみてください。(googleで「php コードチェック」と検索すると良いです)
あとは、どこのifが動いていないのか(あるいは全部か)、正確に教えてもらえるともう少し詳しく対応できるかと思います。
>Kazaisyuさま
ありがとうございます。
画面は変わらず、単に何も出力されない状況です。
入れる場所が違うのでしょうか…
▼詳細ページの、カテゴリの部分に教えていただいたコードを入れました
↓
<title>
<?php if ( is_category(1) || cat_is_ancestor_of(1, $cat)) { ?>
<?php echo get_category_parents( $cat, false, '|' ); ?><?php bloginfo('name'); ?>
<?php } elseif (is_singular('post')) { ?>
<?php the_title(); ?>|
<?php
$cat = get_the_category();
$cat_id = $cat[0]->term_id;
$args = array(
'orderby' => 'term_group',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = get_categories($args);
foreach ($categories as $category) { ?>
<a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name; ?></a>|
<?php } ?>
<?php bloginfo('name'); ?>
<?php } else { ?>
<?php the_title(); ?> | <?php bloginfo('name'); ?>
<?php } ?>
</title>
↓下記のようになります。
—————
カテゴリ:<title>{親カテゴリ}|{子カテゴリ}|{孫カテゴリ}|{サイト名}</title>
詳細ページ:<title>{記事タイトル名}|{サイト名}</title>
その他:<title>{記事タイトル名}|{サイト名}</title>
—————
カテゴリの部分がまるっと出力されていない状況です。
一応、条件分岐としては正しく動いているのかなと思います。
▼カテゴリの方へも入れてみました。
<title>
<?php if ( is_category(1) || cat_is_ancestor_of(1, $cat)) { ?>
<?php
$cat = get_the_category();
$cat_id = $cat[0]->term_id;
$args = array(
'orderby' => 'term_group',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = get_categories($args);
foreach ($categories as $category) { ?>
<a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name; ?></a>|
<?php } ?>
<?php bloginfo('name'); ?>
<?php } elseif (is_singular('post')) { ?>
<?php the_title(); ?>|<?php $cat = get_the_category(); $cat_id = $cat[0]->term_id; echo get_category_parents( $cat_id,false,'|' );?><?php bloginfo('name'); ?>
<?php } else { ?>
<?php the_title(); ?> | <?php bloginfo('name'); ?>
<?php } ?>
</title>
↓
↓下記のようになります。
—————
カテゴリ:<title>{サイト名}</title>
詳細ページ:<title>{記事タイトル名}|{親カテゴリ}|{子カテゴリ}|{孫カテゴリ}|{サイト名}</title>
その他:<title>{記事タイトル名}|{サイト名}</title>
—————
全然検討違いのところに入れていたらすみません><
すみません、titleでしたね。ではaタグは必要なさそうです。
テストしてみましたが、一記事にカテゴリーが複数ついている場合は動かないかもしれません。
<?php
$cat = get_the_category();
$cat_id = $cat->term_id;
$args = array(
'child_of' => $cat_id
);
$categories = array_reverse(get_categories($args));
foreach ($categories as $category) { ?>
<?php echo $category->name; ?>|
<?php } ?>
>kazaisyuさま
ありがとうございます!!!!!
できました!!!
出来ないのかもと半分あきらめていたので、本当に本当に助かりました!
<title>
<?php if ( is_category(1) || cat_is_ancestor_of(1, $cat)) { ?>
<?php
$cat = get_the_category();
$cat_id = $cat->term_id;
$args = array(
'orderby' => 'term_group',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = array_reverse(get_categories($args));
foreach ($categories as $category) { ?>
<?php echo $category->name; ?>|<?php } ?><?php bloginfo('name'); ?>
<?php } elseif (is_singular('post')) { ?>
<?php the_title(); ?>|<?php
$cat = get_the_category();
$cat_id = $cat->term_id;
$args = array(
'orderby' => 'term_group',
'order' => 'DESC',
'child_of' => $cat_id
);
$categories = array_reverse(get_categories($args));
foreach ($categories as $category) { ?>
<?php echo $category->name; ?>|<?php } ?>
<?php bloginfo('name'); ?>
<?php } else { ?>
<?php the_title(); ?> | <?php bloginfo('name'); ?>
<?php } ?>
</title>
※orderbyとorderが入っていなかったので、前回書いていただいたコードから追記しましたら、見事に出力されました!
この度は本当にありがとうございました!!!
おかげさまで解決いたしましたので、後ほどCloseさせていただきます!
解決いたしましたので、Closeさせたいただきます!