2013-04-02 46 views
5

Trước đó vào buổi chiều, tôi đã yêu cầu một giải pháp về cách lặp lại các thanh bên khác nhau trên các trang danh mục khác nhau của Wordpress đã được giải quyết. Bây giờ vấn đề mà tôi đang phải đối mặt là có một '1' liên tục được hiển thị dưới thanh bên trên tất cả các trang thể loại. Tuy nhiên, điều này không xảy ra khi tôi chuyển về mã cũ chỉ hiển thị một thanh bên trên tất cả các trang danh mục. Dưới đây là đoạn code mà ban đầu được bên trong file sidebar.php và được lặp lại chỉ có một sidebar trên tất cả các trang:Chữ số '1' xuất hiện dưới thanh bên của trang 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; ?> 

Và đây là đoạn code sửa đổi mà tôi đã đặt bên trong file sidebar.php được lặp lại sidebars khác nhau trên trang thể loại khác nhau:

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

khi tôi sử dụng mã gốc, số '1' không xuất hiện dưới thanh bên nhưng khi tôi chuyển sang mã mà tôi đã sửa đổi, số '1 'bắt đầu xuất hiện bên dưới thanh bên trên tất cả các trang. Bạn có thể xem hành vi này bằng cách truy cập liên kết này: http://ignoremusic.com/category/sports/

Tôi cũng đã kiểm tra tệp archive.php cũng như tệp functions.php nhưng dường như không có gì sai. Đây là một phần của mã mà tôi đã đặt bên trong các tập tin functions.php để đăng ký sidebars:

/** 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>',)); 
} 

Và đây là đoạn code bên trong tập tin Archives được vang vọng thanh bên:

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

Tôi đã cố gắng tìm kiếm sự cố trên internet nhưng không thể tìm thấy bất kỳ thứ gì để tôi mong được nghe từ các bạn. Cảm ơn bạn.

Trả lời

18

Theo https://codex.wordpress.org/Function_Reference/dynamic_sidebar nó phải được

dynamic_sidebar('category_fashion'); 

thay vì echo dynamic_sidebar('category_fashion');
Chức năng của card trả về true; echo nhận một chuỗi; true-> string = 1, do đó bổ sung 1.

+0

tuyệt vời! cảm ơn bạn rất nhiều, nó đã giải quyết được vấn đề của tôi. –

2

Rất thừa echo, gây ra bởi sự nhầm lẫn, gây ra bởi các chức năng Wordpress ngớ ngẩn in những thứ thay vì trả lại chúng.

Trong trường hợp của bạn, sau đây là có lỗi:

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

Contrast với việc sử dụng sớm và chính xác của bạn:

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

có, chính xác; Tôi nên so sánh cả hai, nó hiện đang hoạt động. Cảm ơn sự giúp đỡ của bạn. –