Soporte » Plugins y Hacks » Problemas con area widget creada con php
Problemas con area widget creada con php
-
Hola a todos, he declarado una zona de widget en una page para colocar un widget de ‘últimos post’. He modificado el functions añadiendo esto en la función twentytwelve_widgets_init(), con los demás area widget:
register_sidebar( array( 'name' => __( 'Content Widget', 'twentytwelve' ), 'id' => 'sidebar-4', 'description' => __( 'Appears when using Full-width Page Template,No Sidebar with a page set as Static Front Page', 'twentytwelve' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) );
y la zona donde tiene quiero que vaya el widget he puesto:
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Content Widget') ) :?> <?php endif;?>
Aun asi no me aparece y creo que esta relacionado con una función twentytwelve_body_class porque dentro hay una serie de if con comparaciones de las plantillas y los sidebar.
Por cierto el tema que estoy cambiando es el twenty twelve.¿Alguien me puede ayudar? Muchísimas gracias
-
Prueba:
<?php register_sidebar( array( 'name' => __( 'Content Widget', 'twentytwelve' ), 'id' => 'sidebar-4', 'description' => __( 'Appears when using Full-width Page Template,No Sidebar with a page set as Static Front Page', 'twentytwelve' ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); ?>
<?php if ( is_active_sidebar( 'sidebar-4' ) ){ dynamic_sidebar( 'sidebar-4' ); } ?>
Hola jmmunozpl, muchas gracias por la ayuda, lo acabo de intentar y me temo que no funciona, se me sigue quedando el hueco donde va el widget en blanco. Y lo cierto es que no me da error, pero tampoco me aparece.
En serio por favor, nadie más puede darme alguna otra solución? Necesito ese area como sea y no encuentro forma de arreglarlo. Ayuda por favor!!!!
Pero, ¿has asignado algún contenido al widget en el área de widgets?
No se a que te refieres. Yo lo que hoce fue en functions.php añadir en la array de areas widget, la que necesito en cuestion y tiene los mismo campos que las demas zonas. En la zona de widgets del wordpress cojo la que he creado y le meto el widget en cuestion. Pero cuando inspecciono el codigo de la web el codigo php me aparece comentado a pesar de no estarlo en la pagina y no me aparece el widget. Cuando pasas esto lo descomento manualmente, y aun asi despues de guardarlo me sigue sin aparecer el widget y ya no parece comentado el codigo php.
Me refiero a que una vez haz hecho eso que dices hay que ir en el escritorio de WordPress a Apariencia / Widgets y allí aparece el nuevo Widget añadido. Allí es donde se define que contenido tendrá.
¿Puede ser problema del widget que añades en el espacio? Prueba con widgets que en los otros sidebars funcionan.
Si, me aparece la zona nueva que defini y la meto un widget, de hecho es el widget de ultimos comentarios del blog. Y aun asi no me aparece. Y lo que más me choca es que yo no lo comento pero el codigo php se comenta solo. Lo descomento y nada.
Acabo de descubrir que da igual que php meta en esa pagina porque me lo comenta automaticamente y no entiendo porque, es posible que todo esto sea porque es una page, y no un footer o head?
Acabo de leer un articulo en el que decia que wordpress no te permite emplear php en las paginas estaticas por temas de seguridad, asi que es posible que me comente siempre el codigo php por eso? Si es asi he pensado en emplear shortcode para solucionarlo.
¿Que os parece?Bueno el php no debe estar en la pagina de contenido directamente sino en si plantilla que normalmente es page.php
Es que necesito que sea solo en esa pagina y en ninguna más
Pon tu código en el page.php, pero con el condicional de if(is_page(id de la página)){
Gracias por la sugerencia, probaré ahora mismo
Parece ser que no funciona, no se si es por algo que haya hecho mal. este es el codigo del div content en page.php:
<div id="content" role="main"> <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'page' ); ?> <?php if(is_page(1) && is_active_sidebar( 'sidebar-4' )){ dynamic_sidebar( 'sidebar-4' ); }?> <?php comments_template( '', true ); ?> <?php endwhile; // end of the loop. ?> </div><!-- #content -->
- El debate ‘Problemas con area widget creada con php’ está cerrado a nuevas respuestas.