0
위젯이 이 현재 프런트 엔드에으로 표시되는지 확인하는 기능이 있습니까?
일부 스타일이나 스크립트를 가져 오거나 위젯에 다른 작업을 수행 할 때 필요합니다.현재 프런트 엔드에 WordPress 위젯이 표시되어 있는지 확인
위젯이 이 현재 프런트 엔드에으로 표시되는지 확인하는 기능이 있습니까?
일부 스타일이나 스크립트를 가져 오거나 위젯에 다른 작업을 수행 할 때 필요합니다.현재 프런트 엔드에 WordPress 위젯이 표시되어 있는지 확인
예를 들어 print_r을 사용하여 $ GLOBALS [ 'displayed_sidebars'] 및 $ GLOBALS [ 'displayed_widgets'] 내용을 반향하여 작동하는지 확인하십시오.
포함 할 모든 사이드 바에 대해 dynamic_sidebar를 실행 한 후에 테스트해야합니다.
add_filter('dynamic_sidebar_params', function($params) {
global $displayed_sidebars, $displayed_widgets;
if(!in_array($params[0]['id'], $displayed_sidebars))
$displayed_sidebars[] = $params[0]['id'];
if(!in_array($params['widget_name'], $displayed_widgets))
$displayed_widgets = $params['widget_name'];
return $params;
});
wordpress.SE 예를 들어이 주제에 대한 몇 가지 게시물이 있습니다 : http://wordpress.stackexchange.com/questions/2302/loading-scripts-only-if-a-particular-shortcode-or-widget -is-present/2304 # 2304 –
'is_active_widget()'은 전역 $ wp_registered_widgets에서 'xyz'위젯이 활성화되어 있는지 확인합니다. 따라서 'xyz'위젯이 다른 사이드 바에서 활성화되어있는 경우 현재 페이지에 'xyz'위젯이 없어도 현재 페이지에 대해 항상 활성으로 돌아갑니다. – zourbuth
예 ...하지만 true면 사이드 바 ID를 반환합니다. 따라서 현재 프론트 엔드에 어떤 사이드 바가 있는지 알고 있으면 문제가 해결됩니다. 따라서 문제는 다른 질문 (http://stackoverflow.com/questions/13404283/get-wordpress-sidebars-fom-the-current-front-end/13407134#comment18323631_13407134)을 고려하여 서클에서 실행됩니다. (나는이 권리가 있다고 생각하지만 위젯의 여러 인스턴스가 활성화되어 있다면 어떤 사이드 바 ID가 반환 될지 확신하지 못합니다.) –