2014-02-27 43 views
0

我爲WordPress上的自定義主頁創建了一系列新的側邊欄。保存每一個後,他們工作並繼續工作。一旦我返回到管理區域中的Widget區域,只有這些Widget是空白的,然後從主頁丟失。下面的Functions.php代碼添加側邊欄空白小工具 - 自定義側邊欄

// Widgetized Header 

if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Header', 
     'id' => 'Header', 
     'description' => 'Header Sidebar for Search', 
     'before_widget' => '<ul class="right"><li class="has-form">', 
     'after_widget' => '</li></ul>', 
     'before_title' => '<h4>', 
     'after_title' => '</h4>', 
    )); 
} 

// Homepage Sidebar for Mailchimp 
if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Homepage Mailchimp Widget', 
     'id' => 'HomeWidget1', 
     'description' => 'Homepage mailchimp area', 
     'before_widget' => '<ul class="home-widget"><li class="has-form">', 
     'after_widget' => '</li></ul>', 
     'before_title' => '<h4>', 
     'after_title' => '</h4>', 
    )); 
} 

// Homepage Sidebar for Twitter 
if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Homepage Twitter Widget', 
     'id' => 'HomeWidget2', 
     'description' => 'Homepage twitter area', 
     'before_widget' => '<ul class="home-widget"><li>', 
     'after_widget' => '</li></ul>', 
     'before_title' => '<h4>', 
     'after_title' => '</h4>', 
    )); 
} 

// Homepage Sidebar for Promo Ad 
if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Homepage Promo Ad', 
     'id' => 'HomeWidget5', 
     'description' => 'Homepage Promo Ad', 
     'before_widget' => '<ul class="home-widget">', 
     'after_widget' => '</ul>', 
    )); 
} 

// Homepage Sidebar for Archives 
if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Homepage Archive Widget', 
     'id' => 'HomeWidget3', 
     'description' => 'Homepage Widget for Archives', 
     'before_widget' => '<ul class="home-widget"><li class="has-form">', 
     'after_widget' => '</li></ul>', 
     'before_title' => '<h4>', 
     'after_title' => '</h4>', 
    )); 
} 


// Homepage Sidebar for Archives 
if (function_exists('register_sidebar')) { 
    register_sidebar(array(
     'name' => 'Homepage Social Widget', 
     'id' => 'HomeWidget4', 
     'description' => 'Homepage Widget for Social Nav', 
     'before_widget' => '<ul class="home-widget"><li>', 
     'after_widget' => '</li></ul>', 
     'before_title' => '<h4>', 
     'after_title' => '</h4>', 
    )); 
} 
+0

有你添加\t'<?php dynamic_sidebar('sidebar-id'); ?>到每個部件的主頁? – Howli

+0

是的。他們工作。這是真正的小部件區域變黑。儘管默認的側邊欄仍然充滿了小部件。 –

+0

檢查頁面的來源,看看內容是否真的存在,但只是與背景顏色相同? – Howli

回答

0

有幾件事情可能會導致這個問題。

1)register_sidebar()不需要在這裏條件包裝。這是一個WordPress的核心功能,所以它不會去任何地方。這會做得很好:

register_sidebar(array(
    'name' => 'Homepage Twitter Widget', 
    'id' => 'HomeWidget2', 
    'description' => 'Homepage twitter area', 
    'before_widget' => '<ul class="home-widget"><li>', 
    'after_widget' => '</li></ul>', 
    'before_title' => '<h4>', 
    'after_title' => '</h4>', 
)); 

2)用行動掛鉤widgets_init加載註冊。對於register_sidebar的多個實例,我建議將所有實例包裝在一個函數中,然後掛鉤該函數。例如:

function myPrefix_widgets_init() { 
     register_sidebar(array(
       'name' => 'Homepage Mailchimp Widget', 
       'id' => 'HomeWidget1', 
       'description' => 'Homepage mailchimp area', 
       'before_widget' => '<ul class="home-widget"><li class="has-form">', 
       'after_widget' => '</li></ul>', 
       'before_title' => '<h4>', 
       'after_title' => '</h4>', 
)); 
// Register the rest of the widgets here. 

}

add_action('widgets_init', 'myPrefix_widgets_init'); //<-- This is the action hook 

此帖來自賈斯汀Tadlock現在是幾歲,但在詳細解釋WordPress的希望如何處理部件化側邊欄仍然奇妙:http://justintadlock.com/archives/2010/11/08/sidebars-in-wordpress

+0

謝謝!我會試一試 –

+0

我嘗試了兩種方法,當我刷新小部件頁面時,這些新的側邊欄變爲空白。 –