Come visualizzare le categorie figlie della categoria genitore della categoria corrente?

5 set 2016, 04:27:00
Visualizzazioni: 23.7K
Voti: 2

Sto cercando di visualizzare un elenco di categorie in un widget di testo abilitato per PHP. Nelle pagine delle categorie figlie ho bisogno di ottenere l'ID della categoria genitore della categoria corrente e poi usarlo per restituire un elenco di tutte le categorie figlie di quella categoria, escludendo la categoria corrente.

Ho provato il seguente codice ma non funziona:

<?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,    // categorie figlie di
        'orderby' => 'id',        // ordina per id
        'order' => 'DESC',        // ordine discendente
        'exclude' => $catid,      // escludi categoria corrente
        'hide_empty' => '0'       // mostra anche categorie vuote
        ) );
} ?>

Questo visualizza sia le categorie genitore che le categorie figlie.

0
Tutte le risposte alla domanda 2
0

Ora mi rendo conto che c'è un modo più semplice per fare questo:

<?php   if (is_category( )) {

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

        if (!empty ($parent) ) {
        //pagine delle categorie figlie

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

Sembra funzionare:

<?php if (is_category( )) {

$thiscat = get_category( get_query_var( 'cat' ) );
$catid = $thiscat->cat_ID;
//crea un array da 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'
        ) );
        //verifica se la categoria corrente è una categoria genitore
        if ( $catid == $parent ) {
        echo '<span>questa è una pagina di categoria genitore</span>';
        }
        else {
        echo '<span>questa è una pagina di categoria figlia</span>';
        }
}
?>
5 set 2016 06:55:40