SummArg | Cursos y recursos para webmasters

17/06/2013

Hacer que la categoría hijo herede la plantilla de la categoría padre

Si tenemos la siguiente estructura de categorías en nuestro WordPress:

cat-1
-subcat-a
-subcat-b
-subcat-c
cat-2
cat-3

Y generamos un template para la categoría 1 de la siguiente manera:

category.php
category-1.php

Al visualizar un listado, por ejemplo, de la categoría subcat-b, se verá con la plantilla por defecto: category.php y no por la categoría de su padre.

Para que las subcategorías hereden la plantilla de la categoría padre debemos insertar el siguiente código en nuestro functions.php

function inherit_template() {
 if (is_category()) {
 $catid = get_query_var('cat');
 if ( file_exists(TEMPLATEPATH . '/category-' . $catid . '.php') ) {
 include( TEMPLATEPATH . '/category-' . $catid . '.php');
 exit;
 }
 $cat = &get_category($catid);
 $parent = $cat->category_parent;
 while ($parent) {
 $cat = &get_category($parent);
 if ( file_exists(TEMPLATEPATH . '/category-' . $cat->cat_ID . '.php') ) {
 include (TEMPLATEPATH . '/category-' . $cat->cat_ID . '.php');
 exit;
 }
 $parent = $cat->category_parent;
 }
 }

}
add_action(‘template_redirect’, ‘inherit_template’, 1);

Entradas Relacionadas

  • Sin entradas similares

Dejar un comentario