Cum să afișați categoriile copil ale categoriei părinte pentru categoria curentă?

5 sept. 2016, 04:27:00
Vizualizări: 23.7K
Voturi: 2

Încerc să afișez o listă de categorii într-un widget text cu PHP activat. Pe paginile categoriilor copil, am nevoie să obțin ID-ul categoriei părinte a categoriei curente și apoi să folosesc acel ID pentru a returna o listă cu toate categoriile copil ale acelei categorii, cu excepția categoriei curente.

Am încercat următorul cod, dar nu funcționează:

<?php if (is_category( )) {

$thiscat = get_category( get_query_var( 'cat' ) );
$catid = $thiscat->cat_ID;
$parent = $catid->category_parent;

$catlist = get_categories(
        array(
        'child_of' => $parent, // ID-ul categoriei părinte
        'orderby' => 'id', // ordonare după ID
        'order' => 'DESC', // ordine descrescătoare
        'exclude' => $catid, // exclude categoria curentă
        'hide_empty' => '0' // arată și categoriile goale
        ) );
} ?>

Acest cod afișează atât categoriile părinte, cât și categoriile copil.

0
Toate răspunsurile la întrebare 2
0

Acum înțeleg că există o metodă mai ușoară de a face asta:

<?php   if (is_category( )) {

        $thiscat = get_category( get_query_var( 'cat' ) );
        $catid = $thiscat->cat_ID;
        $parent = $thiscat->category_parent;

        if (!empty ($parent) ) {
        //pagini de categorii copil

        $catlist = get_categories(
        array(
        'child_of' => $parent,
        'orderby' => 'id',
        'order' => 'DESC',
        'exclude' => $catid,
        'hide_empty' => '0'
        ) );
}
} ?>
5 sept. 2016 11:08:30
0

Aceasta pare să funcționeze:

<?php if (is_category( )) {

$thiscat = get_category( get_query_var( 'cat' ) );
$catid = $thiscat->cat_ID;
//crează un array din get_category_parents
$parent_list = (explode (',',get_category_parents($catid,false,',')));
$parent_name = ($parent_list[0]);
$parent = get_cat_ID( $parent_name );

$catlist = get_categories(
        array(
        'child_of' => $parent,
        'orderby' => 'id',
        'order' => 'DESC',
        'exclude' => $catid,
        'hide_empty' => '0'
        ) );
        //verifică dacă categoria curentă este părinte
        if ( $catid == $parent ) {
        echo '<span>aceasta este o pagină de categorie părinte</span>';
        }
        else {
        echo '<span>aceasta este o pagină de categorie copil</span>';
        }
}
?>
5 sept. 2016 06:55:40