Problema con widgets y CSS

Inicio Foros WordPress Themes y Diseño Problema con widgets y CSS

Etiquetado: ,

Este debate contiene 11 respuestas, tiene 3 mensajes y lo actualizó  LGrusin hace 6 años, 7 meses.

  • Autor
    Publicaciones
  • #61846

    malder
    Participante

    Buenas.
    Tengo un problema al implementar los widgets en un theme nuevo que estoy creando.
    Os comento lo que tengo:
    Functions.php
    // widgets
    if ( function_exists(‘register_sidebar’) )
    register_sidebar(array(
    ‘before_widget’ => ”,
    ‘after_widget’ => ”,
    ‘before_title’ => ”,
    ‘after_title’ => ”,
    ));
    register_sidebar(array(‘name’=>’sidebar’));
    register_sidebar(array(‘name’=>’footer1’));
    register_sidebar(array(‘name’=>’footer2’));
    register_sidebar(array(‘name’=>’footer3’));
    register_sidebar(array(‘name’=>’footer4’));

    Sidebar.php

    Sinembargo cuando publico no me respeta los h4 y me pone h2 ademas me pone un nombre de clase diferente, la verdad es que no entiendo porque

  • #61847

    Hombre Man
    Participante

    Usa pastebin.com, en esta cosa no funciona compartir código.

  • #61848

    malder
    Participante

    tienes razon, falta el codigo del sidebar donde llamo al widget que lo podeis ver aqui:
    Functions.php
    http://pastebin.com/3niye7SR
    Sidebar.php
    http://pastebin.com/GHmH42uC

    un saludo

  • #61850

    Hombre Man
    Participante

    En realidad la salida que te da WordPress es la correcta, como puedes ver en la referencia de la función: http://codex.wordpress.org/Function_Reference/register_sidebar el título normal es h2.

    Supongo que pretendías reutilizar los mismos argumentos para todas las sidebars que creaste y no es así: creaste un sidebar sin nombre, que seguro no aparece y 5 sidebars con argumentos por default.

    Esto es lo que en realidad quieres hacer: http://codex.wordpress.org/Function_Reference/wp_parse_args

  • #61856

    malder
    Participante

    Hola hombre man, gracias por responder. Lo que hice fue seguir los pasos que indicó Fernando en el siguiente post:
    https://ayudawp.com/como-anadir-widgets-al-footer/
    Entonces, me puedes guiar para saber como sería¿?

  • #61860

    Hombre Man
    Participante

    El post de Fernando es correcto, porque usa títulos h2. Pero tu quieres usar títulos h4 en todas tus sidebars, así que debes indicarlo.

    Si solo lo dices en una, solo en una saldrá.

  • #61861

    LGrusin
    Miembro

    Si te fijas sólo te funciona la primera zona de widgets “sidebar” faltan por añadir al sidebar.php footer1, footer2, footer3 y footer4.

    Un saludo

  • #61873

    malder
    Participante

    no no, lo que pasa es que solo he puesto parte del codigo, mirad aqui está el footer con los demás widgets y el resultado es el mismo: http://pastebin.com/DQvt9nFd

    Hombre man, como sería el código para cambiarlo según las necesidades que tenga para personalizarlo para mi tema?

    Gracias.

  • #61877

    Hombre Man
    Participante

    Si quieres que el título del widget lo muestre en h4 en lugar de h2, debes indicarlo en tu función register_sidebar. Pero en tu código solo lo indicas en la sidebar que no tiene nombre, en las demás dejas los parámetros por default y solo indicas el nombre.

  • #61881

    LGrusin
    Miembro

    ¿Es en el sidebar.php o en el footer.php donde quieres poner H4? Supongo que es el footer.php

    Puedes probar en el archivo functions.php:
    register_sidebars(4, array('name'=>'footer%d','before_title'=>'<h4 class="widgettitulo">','after_title'=>'</h4>'));

    Esto ya te crea automáticamente cuatro zonas de sidebar llamadas footer1, footer2, footer3 y footer4.

    La idea está sacada del codex.

    El footer.php lo dejas con el último código que has puesto, aunque le falta un </div> al final.

    Un saludo

    EDITO: Si además quieres una zona de widgets en el sidebar (barra lateral) entonces puedes añadir a functions.php register_sidebar (sin S al final) indicando el nombre (name) del sidebar en las opciones del array, tal como pone en el ejemplo de la página del codex que te puso antes Hombre Man.

  • #61888

    malder
    Participante

    LGrusin tu solución me funciona de maravilla.
    Disculpa Hombre Man pero mis nociones de PHP e Ingles son nulas, por eso tengo estos problemas.

    He estado revisando el codigo de los temas por defecto de wordpress, donde indican los widgets de esta manera:

    functions.php: http://pastebin.com/t97G1qGM
    Sidebar.php: http://pastebin.com/ZerTNLHQ

    Va definiendo el widget uno a uno, cambias nombres y listo, pero ahora la duda que tengo es si sería mejor la forma en la que lo haces LGrusin o la forma en la que lo hacen en este tema, ya que con tu forma se ahorran mas lineas de código pero no se cual de las dos gastaría mas recursos, me explico?

  • #61898

    LGrusin
    Miembro

    Los dos códigos son correctos. La diferencia es que con la función register_sidebars puedes crear grupos de sidebars compartiendo los mismos argumentos. El truco está en que tus 4 sidebars empiezan con la palabra footer con lo que register_sidebars facilita la operación.

    La función register_sidebar (sin S al final) es para sidebars individuales. Si quisieras sidebars con nombres diferentes tendrías que usar esta función y poner tantas veces el código como sidebars quieras con distinto nombre. Puesto que la mayoría de sidebars tienen nombres diferentes es más habitual encontrar register_sidebar (sin S al final).

    Esas son las diferencias entre una función y otra.

    Un saludo

El foro ‘Themes y Diseño’ está cerrado y no se permiten nuevos debates ni respuestas.

Pin It on Pinterest