Publicaciones en múltiples categorías diferentes single.php

4

Estoy golpeando mi cabeza contra un código. Aquí está la situación: Tengo una publicación en 3 categorías diferentes, esta publicación debe ser visible en "categoría 1" con single1.php, en "categoría 2" con single2.php y en "categoría 3" con single3.php.

Obviamente, las 3 páginas single.php tienen una plantilla diferente dentro. Por ejemplo, el archivo single1.php muestra imágenes y the_content (); single2.php muestra fotos y comentarios; single3.php muestra las revisiones.

Sé que en single.php puedo usar if / else, pero no puedo averiguar si la misma publicación está en 3 categorías diferentes.

¿Alguna ayuda por favor?

    
pregunta Mark 20.10.2012 - 20:44

3 respuestas

2

En lugar de hacer que la categoría sea específica, puede utilizar formatos de publicación y diferentes plantillas de contenido. En single.php puedes escribir

<?php get_template_part( 'content', get_post_format() ); ?>

Luego crea diferentes formatos de publicación

add_theme_support( 'post-formats', array( 'withpictures', 'withcomments' ) );

Luego crea diferentes plantillas de publicación content-withpictures.php, content-withcomments.php

Al crear contenido, el formato de publicación elegido determinará la plantilla.

    
respondido por el mirage 21.10.2012 - 09:51
3

Puedes usar el gancho de filtro para 'single_template'. Cree single-cat1.php, single-cat2.php y single-cat3.php (cat1, cat2 y cat3 son los nombres de las categorías que deben reemplazarse por los nombres de sus categorías)

function template_change( $template ){
    if( is_single() && in_category('cat1') ){
        $templates = array("single-cat1.php");
    } elseif( is_single() && in_category('cat2') ){
        $templates = array("single-cat2.php");
    } elseif( is_single() && in_category('cat3') ){
        $templates = array("single-cat3.php");
    }
    $template = locate_template( $templates );
    return $template;
}
add_filter( 'single_template', 'template_change' ); //'template_include'/'single_template'
    
respondido por el Md Toufiqul Islam 21.10.2012 - 09:46
0

Puedes cambiarlo en header.php Si la plantilla usa single-cat1.php, header.php debe cambiar la hoja de estilo Ej:

<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/ca1.css">
    
respondido por el mikhoi 18.07.2013 - 05:36

Lea otras preguntas en las etiquetas