¿Cómo mostrar categorías hijas de la categoría padre de la categoría actual?
5 sept 2016, 04:27:00
Vistas: 23.7K
Votos: 2
Estoy tratando de mostrar una lista de categorías en un widget de texto habilitado para PHP. En las páginas de categorías hijas necesito obtener el ID de la categoría padre de la categoría actual y luego usar eso para devolver una lista de todas las categorías hijas de esa categoría, excepto la categoría actual.
Intenté el siguiente código pero no está funcionando:
<?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,
'orderby' => 'id',
'order' => 'DESC',
'exclude' => $catid,
'hide_empty' => '0'
) );
} ?>
Esto muestra tanto las categorías padre como las categorías hijas.

jrcollins
571
Todas las respuestas a la pregunta
2
0
Ahora me doy cuenta de que hay una forma más fácil de hacer esto:
<?php if (is_category( )) {
$thiscat = get_category( get_query_var( 'cat' ) );
$catid = $thiscat->cat_ID;
$parent = $thiscat->category_parent;
if (!empty ($parent) ) {
// páginas de categorías hijas
$catlist = get_categories(
array(
'child_of' => $parent,
'orderby' => 'id',
'order' => 'DESC',
'exclude' => $catid,
'hide_empty' => '0'
) );
}
} ?>

jrcollins
571
5 sept 2016 11:08:30
0
Esto parece estar funcionando:
<?php if (is_category( )) {
$thiscat = get_category( get_query_var( 'cat' ) );
$catid = $thiscat->cat_ID;
//crear array desde 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'
) );
//verificar si la categoría actual es categoría padre
if ( $catid == $parent ) {
echo '<span>esta es una página de categoría padre</span>';
}
else {
echo '<span>esta es una página de categoría hija</span>';
}
}
?>

jrcollins
571
5 sept 2016 06:55:40
Preguntas relacionadas
3
respuestas
1
respuestas
2
respuestas