Soporte » Plugins y Hacks » Problemas con area widget creada con php

  • Resuelto ireneSeo

    (@ireneseo)


    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

Viendo 15 respuestas - de la 1 a la 15 (de un total de 18)
  • 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' );
    }
    ?>

    Iniciador del debate ireneSeo

    (@ireneseo)

    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.

    Iniciador del debate ireneSeo

    (@ireneseo)

    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!!!!

    Moderador Mariano Perez

    (@mpcdigital)

    Pero, ¿has asignado algún contenido al widget en el área de widgets?

    Iniciador del debate ireneSeo

    (@ireneseo)

    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.

    Moderador Mariano Perez

    (@mpcdigital)

    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.

    Iniciador del debate ireneSeo

    (@ireneseo)

    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.

    Iniciador del debate ireneSeo

    (@ireneseo)

    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?

    Iniciador del debate ireneSeo

    (@ireneseo)

    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?

    Moderador Mariano Perez

    (@mpcdigital)

    Bueno el php no debe estar en la pagina de contenido directamente sino en si plantilla que normalmente es page.php

    Iniciador del debate ireneSeo

    (@ireneseo)

    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)){

    Iniciador del debate ireneSeo

    (@ireneseo)

    Gracias por la sugerencia, probaré ahora mismo

    Iniciador del debate ireneSeo

    (@ireneseo)

    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 -->

Viendo 15 respuestas - de la 1 a la 15 (de un total de 18)
  • El debate ‘Problemas con area widget creada con php’ está cerrado a nuevas respuestas.