Wordpress에서 저의 목표는 사이드 바에 넣은 모든 위젯에 맞춤 클래스를 제공하는 것입니다. 각 위젯의 위젯 설정에이 클래스를 추가하고 싶습니다. 또한 제 3 자 위젯.Wordpress : 모든 위젯 설정에 설정 옵션 추가
클래스 이름이 이미 register_sidebar 기능 (% 2 $ S)에 전달되기 때문에 내가 클래스 이름을 변경하는 생각을했다 :
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
는 당연히 내가 WP 코어 코드 또는 제 3 자를 변경하지 마십시오 플러그인. 즉, 위젯 구성 프로세스에 연결할 플러그인을 작성해야합니다.
나는 이미 'in_widget_form'행동으로 접선에 의해, 모든 위젯의 형태를 수정할 수 있다는 발견 :
<?php
add_action('in_widget_form', 'teaserWidgetAddToForm');
function teaserWidgetAddToForm($widget_instance) {
?>
<label for="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>">Custom classname(s):</label>
<input type="text" id="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>" name="<?php echo $widget_instance->get_field_name('teaser-classname'); ?>">
<?php
}
?>
이 데이터는 위젯 슈퍼 클래스로 저장해야합니다,하지만 당신은이 데이터를 검색 어떻게 (위젯 설정을 열면 이전에 입력 한 내용이 나중에 표시됩니다.)
그리고이 저장된 데이터는 위젯 인스턴스에 저장해야합니다. 나는 같은 것을 사용하여 같아요 그래서 기본적으로
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
을 나는이 개 질문이 :
- 내가 만약 그렇다면, 어떻게이 문제 (개별 위젯 스타일)
- 를 해결하기 위해 적절한 방법을 사용하고 있는가 Wordpress 나 타사 플러그인 소스 코드를 수정하지 않고도 위젯 인스턴스를 수정하여 추가 설정을 저장하고 검색 할 수 있습니까? 기본적으로
브릴리언트! 그동안 새로운 설정을 저장할 수 있었고 "widget_display_callback"훅을 사용했다. 그러나 false를 반환하고 $ widget-> widget()을 호출 할 수 있다는 것을 인식하지 못했습니다. 감사합니다. – publicJorn