Intenté obtener ayuda en los foros de WordPress pero no tuve suerte. De todos modos, aquí está mi pregunta…
Digamos que estoy creando 10 categorías de padres y 2 subcategorías para cada padre. Mi publicación de WordPress pertenece a una subcategoría de una categoría principal en particular
¿Cómo obtengo SOLAMENTE el nombre de la categoría principal? ¿No quiero nombres de subcategorías? ¿Qué código de WordPress haría eso?
Y una pregunta más…
¿Es posible consultar la publicación del padre de una subcategoría usando:
pero en vez de entrar cat=1
o el nombre de la categoría en particular, ¿puedo hacer algo como:
Entonces, ¿de esta manera insertaría y consultaría automáticamente la publicación para el padre de cualquier subcategoría en particular en la que se haya hecho clic?
Para obtener el nombre de la categoría principal, utilice el get_cat_name()
función, con el padre como parámetro, así:
$cat = get_the_category();
$parentCatName = get_cat_name($cat[0]->parent);
Todas estas respuestas fallaron para mí.
Eventualmente logré mostrar el nombre de la categoría superior de una publicación como esta:
$categories = get_the_category();
$category= '';
foreach($categories as $childcat) {
$parentcat = $childcat->category_parent;
if($parentcat>0){
$category = get_cat_name($parentcat);
continue;
}
}
$category = (strlen($category)>0)? $category : $categories[0]->cat_name;
Encontré esta respuesta, que te da la primera babosa ancestral. Podría modificarse fácilmente para darle el nombre.
Lo tengo aquí: http://nick.boldison.com/wordpress/wordpress-get-top-level-parent-category/
<?php
// get parent category slug
$parentCatList = get_category_parents($cat,false,',');
$parentCatListArray = split(",",$parentCatList);
$topParentName = $parentCatListArray[0];
$sdacReplace = array(" " => "-", "(" => "", ")" => "");
$topParent = strtolower(strtr($topParentName,$sdacReplace));
?>
De hecho, para obtener el nombre principal:
// get parent category slug
$parentCatList = get_category_parents($cat,false,',');
$parentCatListArray = split(",",$parentCatList);
$topParentName = $parentCatListArray[0];
Muchas respuestas y ejemplos en los documentos de WordPress:
obtener padres de categoría
obtener la categoría
(Y parece que algunos fragmentos de código u otro texto no aparecieron en su pregunta original)
Parece que falta algo de texto en tu publicación.
– JuanK
13 de marzo de 2013 a las 1:39