php — Wyświetlanie nazwy podkategorii i łącza zamiast kategorii nadrzędnej
WordPress Development Stack Exchange to strona z pytaniami i odpowiedziami dla programistów i administratorów WordPress. Rejestracja zajmuje tylko minutę.
Zarejestruj się, aby dołączyć do tej społeczności
Każdy może zadać pytanie
Każdy może odpowiedzieć
Najlepsze odpowiedzi są głosowane i wznoszą się na szczyt
Zapytał
Oglądane1k razy
W tej chwili mój kod wyświetla nazwę kategorii i link. Ale jeśli artykuł znajduje się w podkategorii, chcę wyświetlić nazwę i link podkategorii zamiast nazwy i linku kategorii nadrzędnej. Z jakiegoś powodu nadal pokazuje tylko kategorię nadrzędną. Jakieś pomysły, co robię źle z kodem?
<?php $category_separator = "";
foreach((get_the_category()) as $childcat) {
$parentcat = $childcat->category_parent;
if( $parentcat != 0 ) echo '<span class="' . get_cat_name($parentcat) .'"><a href="' . get_category_link($parentcat) . '">' .get_cat_name($parentcat) .'</a></span>';
else echo '' . $category_separator . '<span class="'. $childcat->cat_name .'"><a href="' . get_category_link($childcat) .'">' . $childcat->cat_name . '</a></span>';
$category_separator = "
}
?>
Mała zmiana:
<?php $category_separator = "";
foreach((get_the_category()) as $childcat) {
$parentcat = $childcat->term_id;
if( $parentcat != 0 ) echo '<span class="' . get_cat_name($parentcat) .'"><a href="' . get_category_link($parentcat) . '">' .get_cat_name($parentcat) .'</a></span>';
else echo '' . $category_separator . '<span class="'. $childcat->cat_name .'"><a href="' . get_category_link($childcat) .'">' . $childcat->cat_name . '</a></span>';
$category_separator = "
}
?>
Właściwie otrzymywałeś identyfikator kategorii nadrzędnej
$parentcat = $childcat->category_parent;
Zamiast tego musisz uzyskać rzeczywisty identyfikator podkategorii
$parentcat = $childcat->term_id;
1
Pokazuje tylko kategorię podrzędną
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term )
{
if($term->parent!=0)
{
$pcategory = get_term( $term->parent, 'product_cat' );
$categories[] = $pcategory->slug;
}
}
lang-php