2014-04-01 6 views
0

$ registered_sidebars = wp_get_sidebars_widgets(); 내가 배열에서 검색이 제거 할이WordPress에서 사이드 바에서 검색 위젯을 제거하는 방법

Array 
    (
     [sidebar] => Array 
      (
       [0] => search-2 
       [1] => recent-posts-2 
       [2] => recent-comments-2 
       [3] => archives-2 
       [4] => categories-2 
       [5] => meta-2 
       [6] => advanced_sidebar_menu_category-2 
       [7] => advanced_sidebar_menu-3 
      ) 

    ) 

같은 출력이

unregister_sidebar('search-2'); 

같은 시도 얻을 수 있지만

+1

워드 프레스 백엔드에서 '모양> 위젯'으로 이동하여 검색 위젯 –

+0

만 삭제하면 다른 모든 페이지가 필요합니다. – YasirPoongadan

답변

1

unregister_sidebar의 등록을 해제 사이드 바,하지 사이드 바 위젯을 사용할 수 있습니다. 'search-2'는 사이드 바가 아니라 위젯입니다.

wp_get_sidebars_widgets은 활성 위젯을 나열합니다. wp_get_sidebars_widgets에 의해 반환 된 배열에서 'search-2'를 제거하려면 대시 보드의 Appearance> Widgets로 이동하고 사이드 바에서 검색 위젯을 삭제하십시오.

편집 :Display Widgets, Widget Logic, 또는 Jetpack 같은 플러그인을 사용할 수있는 특정 페이지에 위젯을 숨 깁니다.

프로그래밍 방식으로 여러 가지 옵션이 있습니다.

페이지마다 다른 사이드 바를 사용할 수 있습니다. 템플릿 페이지의 get_sidebar .function을 사용하여 특정 사이드 바를 포함 할 수 있습니다. 대체 사이드 바 이름을 넣으면됩니다.

'sidebars_widgets'필터를 사용할 수도 있습니다. 위의 코드에

add_filter('sidebars_widgets', 'disable_search_widget'); 

function disable_search_widget($sidebars_widgets) { 

    if (is_home() && is_array($sidebars_widgets['primary-widget-area'])) { 
      foreach($sidebars_widgets['primary-widget-area'] as $i => $widget) { 
       if(strpos($widget, 'search-2') !== false) { 
        unset($sidebars_widgets['primary-widget-area'][$i]); 
       } 
      } 

    } 

    return $sidebars_widgets; 
} 

편집 2 약간의 변화. 오류를 방지해야합니다.

+0

검색 결과 페이지 만 삭제하고 다른 모든 페이지는 검색 2가 필요합니다. – YasirPoongadan

+0

도움이 되었습니까? ? – r00tAcc3ss

+0

경고 : foreach()에 잘못된 인수가 제공됨 – YasirPoongadan

0

위의 솔루션은 훌륭하지만 PHP를 사용에 편리하지 않은 경우, 가장 쉬운 방법은 실제로 CSS를 사용하는 것입니다 그냥 검색 위젯 숨기기 : 당신이 홈페이지를 숨기려면 그래서

.widget.widget_search{ display:none; } 

을 단지 당신은 다음과 같이 사용할 수 있습니다 :이 당신을 도울 것입니다

body.home .widget.widget_search{ display:none; } 

희망)

건배, phpbits

관련 문제