En este artículo vamos a ver qué podemos hacer para mantener la jerarquía de las categorías en el back-end de WordPress una vez seleccionadas.
Imaginemos que tenemos una jerarquía de categorías como la siguiente: Una categoría principal llamada Noticias, y dentro de ella unas subcategorías llamadas: Nacional, Internacional, Deportes y Política. A la hora de crear una nueva entrada, en el metabox de categorías nos aparecerán de la siguiente manera:

Hasta aquí bien, pero una vez seleccionamos una categoría por ejemplo Internacional y guardamos la entrada, nuestro metabox aparece de la siguiente manera:

Cuando tenemos muchas categorías jerarquizadas y nuestro árbol de estructura es amplio, esto puede suponer un engorro, ya que perdemos la referencia visual de a qué categoría padre pertenece la categoría seleccionada.
Si tienes a varios perfiles creando contenido en tu sitio, esto puede resultar molesto y provocar confusiones. Veamos cómo conseguirlo.
Podemos hacerlo mediante el uso de plugins, pero en este artículo vamos a ver cómo añadiendo un pequeño fragmento de código a nuestro functions.php conseguiremos mantener la jerarquía de nuestras categorías en WordPress sin utilizar plugins.
<?php
function keep_category_hierarchy( $args ) {
$args['checked_ontop'] = false;
return $args;
}
add_filter( 'wp_terms_checklist_args', 'keep_category_hierarchy' );
Eso es todo. Ahora en nuestro metabox veremos cómo permanece la estructura jerárquica de categorías:

Por defecto WordPress tiene el atributo checked_ontop a true. Con apenas 4 líneas que podemos incluir en el functions.php de nuestro tema o en nuestro plugin de utilidades evitamos el uso de otro plugin adicional más.