안녕하세요. 린치핀소프트 한광희입니다.

 

워드프레스 시스템에서는 필터 훅으로 “dynamic_sidebar_params” 를 제공합니다. 이 “dynamic_sidebar_params” 필터 훅은 사이드바에 추가되는 위젯을 감싸는 HTML 태그의 전/후와 타이틀의 전/후에 태그를 추가하거나 수정할 수 있는 필터 훅입니다. 위젯의 ID를 기준으로 특정 위젯에만 변경을 가하거나 사이드바에 추가된 모든 위젯에 수정을 할 때 유용한 필터 훅입니다.

예를 들어 다음 스크린샷 처럼 위젯의 전과 타이틀 전에 특정 HTML이나 DOM을 추가할 수 있습니다. 보통 위젯은 플러그인이나 테마에서 제작되어 배포되어 지는데 각 플러그인이나 테마에서 제공되는 위젯을 감싸는 HTML등을 수정할때 유용할 수 있습니다.

 

screenshot-www.linchpinsoft.com 2016-03-16 00-17-05 (1)

위의 스크린샷은 “dynamic_sidebar_params” 필터 훅을 이용하여 사이드바에 추가된 모든 위젯의 타이틀과 위젯 태그 이전에  HTML을 추가한 예시입니다.

필터훅을 이용한 소스코드는 다음과 같습니다.

 

function custom_widget_neighbor($params){
    $params[0]['before_widget'] .= "<span>LinchpinSoft</span>";
    $params[0]['before_title'] .="<i class='fa fa-star'></i> ";
    return $params;
}
add_filter('dynamic_sidebar_params','custom_widget_neighbor');
?>

 

‘args’
(array) An array of widget display arguments.

  • ‘name’
    (string) Name of the sidebar the widget is assigned to.
  • ‘id’
    (string) ID of the sidebar the widget is assigned to.
  • ‘description’
    (string) The sidebar description.
  • ‘class’
    (string) CSS class applied to the sidebar container.
  • ‘before_widget’
    (string) HTML markup to prepend to each widget in the sidebar.
  • ‘after_widget’
    (string) HTML markup to append to each widget in the sidebar.
  • ‘before_title’
    (string) HTML markup to prepend to the widget title when displayed.
  • ‘after_title’
    (string) HTML markup to append to the widget title when displayed.
  • ‘widget_id’
    (string) ID of the widget.
  • ‘widget_name’
    (string) Name of the widget.

 

예시의 필터훅의 호출 함수로 custom_widget_neighbor()의 매개변수 $params 는 위의 나열된 리스트를 참조할 수 있습니다.

‘widget_id’ 등을 참고하여 특정 위젯에만 수정 또는 추가를 할 수도 있습니다.

 

https://developer.wordpress.org/reference/hooks/dynamic_sidebar_params/ 필터 훅에 대한 정식 API 문서는 이 링크를 참조하세요!