2013-04-02 24 views
5

In precedenza nel pomeriggio, avevo chiesto una soluzione su come richiamare diverse barre laterali su diverse pagine di categorie di Wordpress che è stato risolto. Ora il problema che sto affrontando è che c'è un '1' continuo che viene visualizzato sotto la barra laterale in tutte le pagine di categoria. Tuttavia, questo non sta accadendo quando torno al vecchio codice che stava visualizzando solo una barra laterale su tutte le pagine di categoria. Ecco il codice che in origine era all'interno del file sidebar.php e che è stato riecheggiando una sola barra laterale su tutte le pagine:"1" cifra visualizzata sotto la barra laterale del sito web wordpress

<?php if (is_active_sidebar('main_sidebar')) : ?> 

    <div id="main_sidebar" class="widget-area"> 
       <?php dynamic_sidebar('main_sidebar'); ?> 
    </div><!-- #first_sidebar .widget-area --> 

<?php endif; ?> 

E questo è il codice modificato che ho messo dentro il file sidebar.php che riecheggia diverse barre laterali sulle diverse pagine di categoria:

<?php if (is_active_sidebar("main_sidebar")) : ?> 

    <div id="main_sidebar" class="widget-area"> 
       <?php 
       if (is_category('7')) { 
       echo dynamic_sidebar('category_fashion'); 
       } 
       elseif (is_category('1')) { 
       echo dynamic_sidebar('category_music'); 
       } 
       elseif (is_category('5')) { 
       echo dynamic_sidebar('category_tastemakers'); 
       } 
       elseif (is_category('11')) { 
       echo dynamic_sidebar('category_film'); 
       } 
       elseif (is_category('9')) { 
       echo dynamic_sidebar('category_model'); 
       } 
       elseif (is_category('6')) { 
       echo dynamic_sidebar('category_sports'); 
       } 
       elseif (is_category('8')) { 
       echo dynamic_sidebar('category_round'); 
       } 
       elseif (is_category('10')) { 
       echo dynamic_sidebar('category_cool'); 
       } 
       else 
       { 
       echo dynamic_sidebar('main_sidebar'); 
       } 
       ?> 
    </div><!-- #first_sidebar .widget-area --> 

<?php endif; ?> 

quando uso il codice originale, il numero '1' non appare sotto la barra laterale, ma quando passo per il codice che ho modificato, il numero '1 'inizia ad apparire sotto la barra laterale su tutte le pagine. Questo comportamento può essere visto andando a questo link: http://ignoremusic.com/category/sports/

Ho anche controllato il file archive.php così come il file functions.php ma nulla sembra essere sbagliato. Ecco la parte del codice che ho messo all'interno del file functions.php per registrare le barre laterali:

/** SIDEBARS ******************************************************************/ 
if (function_exists('register_sidebar')) { 

register_sidebar(array(
        'name'=>'sidebar home left', 
        'id' => 'homeleft_sidebar', 
        'description' => __('sidebar on homepage, left', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Tastemakers', 
        'id' => 'category_tastemakers', 
        'description' => __('sidebar on tastemakers category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Film', 
        'id' => 'category_film', 
        'description' => __('sidebar on film category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Fashion', 
        'id' => 'category_fashion', 
        'description' => __('sidebar on fashion category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Model Citizens', 
        'id' => 'category_model', 
        'description' => __('sidebar on model citizens category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Sports', 
        'id' => 'category_sports', 
        'description' => __('sidebar on sports category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Round Table', 
        'id' => 'category_round', 
        'description' => __('sidebar on round table category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Cool Stuff', 
        'id' => 'category_cool', 
        'description' => __('sidebar on cool stuff category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'Category: Music', 
        'id' => 'category_music', 
        'description' => __('sidebar on music category', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'sidebar home right', 
        'id' => 'homeright_sidebar', 
        'description' => __('sidebar on homepage, right', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'main sidebar', 
        'id' => 'main_sidebar', 
        'description' => __('main sidebar', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'tour dates sidebar', 
        'id' => 'tour_sidebar', 
        'description' => __('sidebar on tour dates page', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'contact sidebar', 
        'id' => 'contact_sidebar', 
        'description' => __('sidebar on contact page', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'sidebar footer 1', 
        'id' => 'sidebarf1', 
        'description' => __('first sidebar in footer', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'sidebar footer 2', 
        'id' => 'sidebarf2', 
        'description' => __('second sidebar in footer', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'sidebar footer 3', 
        'id' => 'sidebarf3', 
        'description' => __('third sidebar in footer', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 

register_sidebar(array(
        'name'=>'sidebar footer 4', 
        'id' => 'sidebarf4', 
        'description' => __('fourth sidebar in footer', 'gxg_textdomain'), 
        'before_widget' => '<div id="%1$s" class="widget %2$s">', 
        'after_widget' => '</div>', 
        'before_title' => '<h3 class="widgettitle">', 
        'after_title' => '</h3>',)); 
} 

E questo è il codice all'interno del file archives.php che è eco la barra laterale:

<div id="sidebar" class="grid_3"> 
        <?php get_sidebar(); ?> 
      </div><!-- #sidebar--> 

Ho provato a cercare il problema su Internet ma non sono riuscito a trovare nulla quindi non vedo l'ora di sentire da voi ragazzi. Grazie.

risposta

18

Secondo https://codex.wordpress.org/Function_Reference/dynamic_sidebar dovrebbe essere

dynamic_sidebar('category_fashion'); 

invece di echo dynamic_sidebar('category_fashion');
La funzione probabilmente restituisce true; echo prende una stringa; true-> string = 1, quindi l'ulteriore 1.

+0

grande! grazie mille, ha risolto il mio problema –

2

Superfluo echo, causato dalla confusione, causato da sciocche funzioni di Wordpress che stampano le cose anziché restituirle.

Nel tuo caso, il seguente è in difetto:

<?php echo dynamic_sidebar('category_fashion'); ?> 

contrasto con l'uso precoce e corretta:

<?php dynamic_sidebar('main_sidebar'); ?> 
+0

sì, corretto; Avrei dovuto confrontare i due, funziona ora. Grazie per l'aiuto. –