こんにちは、このあとの条件分岐ではなくて、
get_the_termsにわたす値を変更するのではないでしょうか?
あ、なんとなくわかりました。最終的に出力したい、イメージをテキストなりで、あらわしていただけるとお返事しやすいかもしれません。
https://zenn.dev/ryoheiobayashi/articles/tax-term-parent-wp
こちらでしょうか?
いま割り当てられているTermIDは、以下で取得できます。
$term_id = (int) get_queried_object_id();
このURLでの該当部分は、ループなかに以下の処理をいれてますね。
$args = array(
'taxonomy' => $taxonomy_name,
'parent' => $termparent,
);
$categories = get_categories($args);
外部リンクへの誘導と、コピペとどっちかがルール違反になるかもしれないのですが。。
イメージが、いまいちはっきりわからないので、まとはずれかもしれませんが。
お世話になっております!
ご回答、ありがとうございます!
また、分かりにくい質問をしてしまい、大変申し訳ありません。
やりたいこととしましては、カスタム投稿ページのカテゴリー表示を、
【子カテゴリーの選択がある場合には、子カテゴリーのみを表示し、選択がない場合には親カテゴリーを表示したい】
になります。
※下記コードも試しましたが、子カテゴリーが重複して表示されてしまいました。
<ul>
<?php
$terms = get_the_terms( $post->ID, '〇〇-cat' );
if ( $terms && !is_wp_error( $terms ) ) {
foreach( $terms as $term ) {
// 子カテゴリーが選択されている場合は子カテゴリーのみ表示
if ( $term->parent ) {
echo '<li>' . $term->name . '</li>';
}
}
// 子カテゴリーが選択されていない場合は親カテゴリーを表示
if ( empty( $term->parent ) ) {
foreach( $terms as $term ) {
echo '<li>' . $term->name . '</li>';
}
}
}
?>
</ul>
解決しました。
ありがとうございました。
<?php
$categories = get_the_terms(get_the_ID(), '〇〇-cat');
if ($categories && !is_wp_error($categories)) {
$parent_categories = array();
$child_categories = array();
foreach ($categories as $category) {
if ($category->parent == 0) {
$parent_categories[] = $category;
} else {
$child_categories[] = $category;
}
}
// 子が存在する場合は子を表示
if (!empty($child_categories)) {
foreach ($child_categories as $child_category) {
echo '<li>' . $child_category->name . '</li>';
}
} else {
// 子が存在しない場合は親を表示
if (!empty($parent_categories)) {
foreach ($parent_categories as $parent_category) {
echo '<li>' . $parent_category->name . '</li>';
}
}
}
}
?>