custom-taxonomy – Compruebe si la categoría actual tiene hijos

Pregunta:

Necesito saber si la página actual del archivo de taxonomía personalizada que estoy viendo tiene categorías secundarias. Tengo una situación en la que hay muchas categorías personalizadas con niños y el sitio solo muestra publicaciones al final de la línea. De lo contrario, debería mostrar un enlace a la categoría que es el siguiente paso hacia abajo. Encontré este fragmento, pero no parece funcionar para taxonomías personalizadas.

function category_has_children() {
global $wpdb;   
$term = get_queried_object();
$category_children_check = $wpdb->get_results(" SELECT * FROM wp_term_taxonomy WHERE parent = '$term->term_id' ");
    if ($category_children_check) {
        return true;
    } else {
       return false;
    }
}   

<?php
    if (!category_has_children()) {
        //use whatever loop or template part here to show the posts at the end of the line
   get_template_part('loop', 'index'); 
       }   

    else {
       // show your category index page here
    }
?>

Respuesta:

Puede que haya o no una mejor manera de hacer esto, pero así es como lo haría:

$term = get_queried_object();

$children = get_terms( $term->taxonomy, array(
'parent'    => $term->term_id,
'hide_empty' => false
) );
// print_r($children); // uncomment to examine for debugging
if($children) { // get_terms will return false if tax does not exist or term wasn't found.
    // term has children
}

Si el término de taxonomía actual tiene hijos, la función get_terms devolverá una matriz; de lo contrario, devolverá false .

Probado y funciona en mi instalación de vainilla local con el complemento de interfaz de usuario de tipo de publicación personalizada utilizado para la generación de CPT.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım