Pregunta sobre Developing with WordPress de Wordpress:

Área de widgets personalizados en el encabezado

Un usuario preguntó 👇

¡Hola! Soy nuevo en php y necesito ayuda. Creé un nuevo widget en el encabezado de mi tema hijo puramente simple. Para hacer esto, agregué esto en el encabezado:

Y en la función:

if (function_exists (‘register_sidebar’)) register_sidebar (array (‘nombre’ => ‘Mi Widget’, ‘before_widget’ => ‘

‘,’ after_widget ‘=>’

‘,’ before_title ‘=>’

‘,’ after_title ‘=>’

‘,)); ?> Se crea el nuevo widget y puedo encontrarlo en la parte posterior de mi sitio web. En este widget puse las banderas de mi polígono, pero creó una sección vacía en el encabezado (quiero que esté en el lado derecho con alineación vertical), en esta parte vacía todas las banderas funcionan correctamente, pero si lo intento soft a través de SEC solo está disponible el idioma italiano, las otras banderas estrechan su enlace … ¿Qué puedo hacer? ¡Por favor y gracias! Paola

(@swansonphotos)

Hace 3 años, 1 mes

Creo que el problema está dentro:


<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(“My Widget”) ) : ?>
<?php endif;?>

Vea esto para obtener consejos sobre la mejor manera de hacerlo:

https://codex.wordpress.org/Function_Reference/dynamic_sidebar

Esta respuesta fue modificada hace 3 años, hace un mes por.

(@quiddot)

Hace 3 años, 1 mes

Prueba esto:

reemplace su código con su código:

<?php if ( is_active_sidebar( 'sidebar-my-widget' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-my-widget' ); ?>
<?php endif; ?>

and in your function replace your code by this:

add_action( 'widgets_init', 'theme_slug_widgets_init' );
function theme_slug_widgets_init() {
    register_sidebar( array(
        'name' => __( 'My Widget', 'theme-slug' ),
        'id' => 'sidebar-my-widget',
        'before_widget' => '<div class = "My Widget">',
	'after_widget'  => '</div>',
	'before_title'  => '<h3>',
	'after_title'   => '</h3>',
    ) );
}

¡buena suerte!

Esta respuesta fue modificada hace 3 años, hace un mes por. Causa: código fijo; de lo contrario, se producen errores de sintaxis de Thread Starter

(@bbbelleville)

Hace 3 años, 1 mes

Gracias Pioneer y Squiddot por su invaluable ayuda y rápida respuesta. Squiddot, intenté poner tu código en mis archivos php, y para el encabezado está bien, pero para una función dice:

error de sintaxis, ‘widget’ inesperado (T_STRING)

así que intenté escribir «Mine» en lugar de «My Widget», pero todavía dice:

error de sintaxis, ‘clase’ inesperada (T_CLASS), esperando ‘)’

Ahora estoy tratando de entender algo con la página a la que Pioneer se vincula amablemente, ¡pero no estoy seguro del resultado! 🙂 ¡Gracias de nuevo!

(@bcworkz)

Hace 3 años, 1 mes

Los errores de sintaxis pueden resultar de ‘comillas curvas’ en el código. Todos tienen que ser 'straight quotes' He editado una publicación de squiddot para que el código aparezca correctamente. Intente copiarlo de nuevo.

Cuando alguien publica código en estos foros, debe usar copias de seguridad para limitar el código o usar el botón «código». De lo contrario, su código no se puede utilizar.

Lanzador de hilos

(@bbbelleville)

Hace 3 años, 1 mes

Gracias bcworkz, ¡el widget funciona! El problema es que se abre en un área vacía del encabezado y si trato de moverlo dentro del encabezado y especialmente sobre la imagen de fondo de la derecha, solo sobrevive el idioma italiano, pero tengo otra bandera 3. Tengo una regla CSS que no me importa … esta es la regla que escribí: .My {float: right; margen inferior: -5em; margen izquierdo: -8em; } El área del widget parece estar limitada a una bandera …

(@bcworkz)

Hace 3 años, 1 mes

El ancho total del contenedor está limitado a 1180px. No hay espacio para la bandera francesa, por lo que se pliega a la siguiente línea de menú, lo que hace que toda la barra de menú crezca más.

Puede sumergir ligeramente el ancho para hacer espacio, o ajustar el ancho y el espaciado del elemento del menú para que haya un poco más de espacio dentro de los 1180px. Si alcanza el ancho, hay un problema relacionado en los medios que reduce el ancho en ventanas más estrechas. El punto de ruptura en el que esto ocurre debe aumentarse en la misma cantidad para evitar que otro material desborde la ventana.

Puede ser suficiente reducir el acolchado del recipiente. Intente agregar esto al panel CSS adicional del adaptador:

.container, .container-fluid {
	padding-left: 10px;
	padding-right: 10px;
}

El relleno original era de 20 píxeles. Hay muchas otras opciones para obtener más espacio: relleno de artículos, tamaño de fuente, seguimiento de letras, peso de fuente, reetiquetado de artículos, etc.

Lanzador de hilos

(@bbbelleville)

Hace 3 años, 1 mes

Hola bcworkz, gracias por tu ayuda. Agregué su código al panel Extra, pero la historia es la misma. Puedo ver que se mueve a derecha e izquierda de acuerdo con las medidas que tomo, así que también traté de darle un «fondo acolchado» para ver si construiría algo de espacio, y si ocuparía el área vacía., Pero si lo muevo hacia la derecha en el fondo del encabezado, todas las banderas caen. Así que traté de resolver el problema cancelando el nuevo widget personalizado que creé y apliqué las siguientes líneas:

polylanguage_shortcode function () {ob_start (); pll_the_languages ​​(edit (‘show_flags’ => 1, ‘show_names’ => 0)); $ banderas = ob_get_clean (); return $ banderas; } add_shortcode (‘polylanguage’, ‘polylanguage_shortcode’);

Y esto en el encabezado antes de la etiqueta. :

Y muévelo a través de CSS, y esta vez corta el encabezado … No sé qué más puedo hacer … ¡Puede que tenga que salir por un tiempo y aprender más sobre php! 🙂 Muchísimas gracias. Paola

(@bcworkz)

Hace 3 años, 1 mes

Siempre es una buena idea aprender más sobre PHP, pero no creo que le ayude en esta situación. Parece ser un problema de la SEC. A veces es difícil dar consejos específicos a la SEC debido a cambios en el navegador y el script debido a la capacidad de respuesta. Parece que ha solicitado cambios de CSS a ciegas sin una comprensión adecuada de lo que está tratando de lograr. Eso me lleva a creer que no está utilizando la herramienta Inspector de su navegador.

Le mostrará las regiones a las que se aplica cada aspecto de la página, incluidas las partes que son relleno o márgenes. Puede probar diferentes valores en la herramienta y ver los resultados de inmediato. Puede deshabilitar o agregar nuevas reglas. Todo lo que necesita saber para encontrar una solución. Se necesitará algo para aprender realmente a usar la herramienta, pero puede ser más útil que aprender PHP. Todos los principales navegadores modernos tienen esta herramienta de alguna forma. Busque herramientas de desarrollo en el menú de su navegador.

Lanzador de hilos

(@bbbelleville)

Hace 3 años, 1 mes

¡Hola! ¡Finalmente he terminado! bcworkz, tenías razón, ¡las herramientas de desarrollo fueron muy útiles! No lo usé demasiado porque tengo una instalación local de mi sitio web, pero la herramienta para desarrolladores es más rápida y muestra los cambios al instante. ¡Muchas gracias a todos! Paola

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.