Mi sitio de wordpress tiene categorías con una jerarquía simple:
Estoy usando la declaración if a continuación para detectar si la publicación está en la categoría blog o en cualquiera de las categorías secundarias, y funciona, pero se siente estúpido no poder simplemente verificar el elemento principal de la categoría actual (además, es posible que desee para agregar categorías más adelante).
if ( is_category('blog') || in_category(array('role-shift', 'urod-the-last-show', 'news')) ) He buscado y probado todas las sugerencias, incluida cat_is_ancestor_of , pero nada funciona.
¡Por favor ayuda!
Roberto
$categories = get_the_category(); //returns categories $thiscat = $categories[0]; $parent_id = $thiscat->parent; //the parent id $parent = get_category($parent_id) //this returns the parent category as an object //use id or slug of category you are searching for if( $parent_id == 1 || $thiscat->slug == 'blog' ){ //this is a child of blog or the blog page }Esto debería funcionar. Esto determinará si la categoría actual es un elemento secundario de la página del blog. La primera parte, get_category, devuelve la categoría actual.
Luego puede obtener la identificación principal de la categoría actual y usar 'get_the_category_by_ID' para obtener el objeto de la categoría principal.
Luego puede verificar si está en la categoría principal que desea.