it-swarm-es.com

Diferentes widgets en diferentes plantillas de página?

Si tengo un par de plantillas de página diferentes, ¿cómo mostraría una colección diferente de widgets de barra lateral para cada una de estas plantillas? Estoy usando el tema de Starkers como punto de partida.

4
cannyboy

Necesitará crear más barras laterales en su archivo functions.php y luego editar las plantillas de página para llamar a la barra lateral que desea.

Agregando barras laterales

Ve a tu archivo functions.php. Deberías ver algunas barras laterales ya registradas. El código se verá algo así:

//Adds default sidebar
 if ( function_exists('register_sidebar') )
 register_sidebar();

Para agregar otra barra lateral, agregue el siguiente código varias veces después del registro de barra lateral existente.

//Registers new sidebar
if ( function_exists('register_sidebar') ) {
    register_sidebar(array('name' => 'Name Sidebar Here','before_widget' => '','after_widget' => '','before_title' => '<h2 class="widgettitle">','after_title' => '</h2>'));    
} 

Donde dice 'Name Sidebar Here' coloca un nombre lógico para esta nueva barra lateral. El resto de la matriz le permite poner HTML antes del widget (before_widget) si su tema lo requiere para su diseño y poner HTML después del widget (after_widget). Además, el uso más común en temas es un estilo personalizado para títulos de widgets. Puede poner ese HTML antes del título (antes del título) y después del título (después del título). En el ejemplo anterior, cada título de widget tendrá <h2 class="widgettitle"> colocado antes y después de que cierre la etiqueta de apertura.

Agrega tu nueva barra lateral a tus plantillas de página

Ahora que ha agregado una barra lateral, deberá colocarla en la plantilla de página donde la desee. Encuentre dónde se llama la barra lateral predeterminada dentro de su plantilla (generalmente) y reemplácela con lo siguiente, donde el número es el orden en el que se agregó la barra lateral en el archivo functions.php.

<?phpif ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(Sidebar number here) ) : ?><?php endif; ?>

Esta barra lateral fue la segunda que se agregó en el archivo functions.php, así que para llamarla en la plantilla de la página, pondrás 2 dentro de !dynamic_sidebar(Put sidebar number here) ).

Añadir widgets

Una vez que lo haya agregado a la plantilla de la página, simplemente agregue widgets a la barra lateral en su página de Administración de Apariencia -> Widgets. La nueva barra lateral aparecerá allí con el nombre que le dio en el archivo functions.php.

¡Espero que esto ayude!

8
Joshua Lynch

Y Widget Logic también es una opción.

3
ZaMoose
  1. Widget Logic es una solución, una buena también.

  2. Múltiples barras laterales es la solución más robusta, ya que puede personalizar por completo todo el margen de _widget anterior/posterior en functions.php. Sin mencionar que puedes hacer cualquier número de estas barras laterales.

  3. Una solución más liviana podría ser simplemente usar la clase de cuerpo para distinguir los tipos de páginas en el css. Oculta las cosas que no quieres, muestra las cosas que haces. Es una forma rápida y sencilla de hacer que suceda ese tipo de cosas.

1
eddiemoya

Otra solución es Display-Widgets plugin, agrega un menú desplegable en cada widget que haya activado en la barra lateral donde puede seleccionar en qué páginas/publicaciones mostrarlo u ocultarlo.

1
Philip

otras dos opciones: 1. en lugar de hacer que 'sidebar.php' sea más complicado, agregue las nuevas barras laterales con widgets a un nuevo archivo de barra lateral 'sidebar-xxx.php' y luego en la plantilla de página use

  1. puede utilizar widgets contextuales plugin
0
hannit cohen