2012-10-26 3 views
0

내 사용자가 사용할 수있는 위젯 영역의 수를 설정할 수있게하려고합니다. 숫자를 입력 할 수있는 옵션 패널을 설정 한 다음 for 루프를 사용하여 위젯 영역 수를 등록하는 위젯 등록 함수를 설정합니다. 위젯 관리 영역으로 돌아갈 때마다 위젯 영역은 내가 무엇을 넣었는지 상관없이 모두 비어 있다는 것을 제외하고는 작동합니다. 내가 처음 두 개의 위젯 영역 중 하나 (홈 또는 홈페이지)에 위젯을 넣어 경우, 난 그냥 눈치WordPress의 위젯 영역을 동적으로 등록하십시오.

function fivepints_widgets_init() { 

    register_sidebar(array(
     'name' => __('Main Sidebar', 'fivepints'), 
     'id' => 'sidebar-1', 
     'before_widget' => '<div class="widget">', 
     'after_widget' => "</div>", 
     'before_title' => '<h3 class="widget-title">', 
     'after_title' => '</h3>', 
    )); 

    register_sidebar(array(
     'name' => __('Home Sidebar', 'fivepints'), 
     'id' => 'sidebar-2', 
     'before_widget' => '<div class="widget">', 
     'after_widget' => "</div>", 
     'before_title' => '<h3 class="widget-title">', 
     'after_title' => '</h3>', 
    )); 

$fp_theme_options = get_option('fp_theme_options'); //get number from options panel 

if ($fp_theme_options['fp_sidebars'] == ""){$num = 1;} //set number to 1 if options panel value isn't set 
else {$num = $fp_theme_options['fp_sidebars']; } 

for ($i=1; $i<=$num; $i++) 
    { 
$sidebarName = 'Sidebar ' . $i; 
$sidebarID = 'fp-sidebar-' . $i; 
    register_sidebar(array(
     'name' => __($sidebarName, 'fivepints'), 
     'id' => $sidebarID, 
     'before_widget' => '<div class="widget">', 
     'after_widget' => "</div>", 
     'before_title' => '<h3 class="widget-title">', 
     'after_title' => '</h3>', 
    )); 

    } 
} 
add_action('widgets_init', 'fivepints_widgets_init'); 

답변

0

하고를 떠나 : 여기

내가 위젯 영역을 만들 사용하고 코드입니다 다른 것은 비어 있으며, 위젯 관리자가 다시로드되면 위젯이 사라집니다. 동적으로 생성 된 영역 중 하나에 위젯을 넣으면 관리자가 정상적으로 작동합니다. 나는 여전히 동적으로 생성 된 영역을 비워 둘 수 있기를 원합니다 (최종 사용자가 그렇게하기로 결정한 경우).

0

알아 냈어. 정적 위젯 영역의 id에 대해 사이드 바 -a와 사이드 바 -b를 사용해야했습니다.

관련 문제