WordPress
플러그인 개발
수색…
통사론
- add_action (문자열 $ 태그, 호출 가능 $ function_to_add, int $ 우선 순위 = 10, int $ accepted_args = 1)
- add_filter (문자열 $ 태그, 호출 가능 $ function_to_add, int $ 우선 순위 = 10, int $ accepted_args = 1)
매개 변수
매개 변수 | 세부 묘사 |
---|---|
$ 태그 | (string) (필수) $ function_to_add 콜백을 연결할 필터의 이름. |
$ function_to_add | (callable) (필수) 필터가 적용될 때 실행할 콜백입니다. |
우선 순위 $ | (int) (선택 사항) 특정 작업과 관련된 기능이 실행되는 순서를 지정하는 데 사용됩니다. 낮은 숫자는 이전 실행과 일치하고 동일한 우선 순위를 갖는 함수는 action에 추가 된 순서대로 실행됩니다. 기본값 : 10 |
$ accepted_args | (int) (선택 사항) 함수가 수락하는 인수의 수입니다. 기본값 : 1 |
비고
플러그인이 작동하는 방식은 WordPress가 실행되는 동안 WordPress가 플러그인이 해당 시간에 실행되는 기능을 등록했는지 확인하고, 그렇다면 기능이 실행되는지 확인하는 것입니다. 이 기능은 WordPress의 기본 동작을 수정합니다.
후크에는 두 가지 종류가 있습니다.
필터를 사용하면 WordPress를 실행하는 동안 데이터 값을 변경할 수 있습니다. 필터의 콜백 함수는 변수를 통해 전달되고 수정 된 다음 반환됩니다. 그것들은 고립 된 방식으로 작업하기위한 것이고, 전역 변수 나 함수 밖의 다른 것에 영향을주지 않아야한다.
반대로 액션을 사용하면 WordPress의 작동 방식을 추가하거나 변경할 수 있습니다. 콜백 함수는 WordPress 실행시 특정 지점에서 실행되며 사용자에게 출력 내용을 표시하거나 데이터베이스에 무언가를 삽입하는 것과 같은 일종의 작업을 수행 할 수 있습니다.
필터
add_filter('comment_text','before_comment');
add_filter('comment_text','after_comment');
function before_comment($comment_text){
return 'input before comment'.$comment_text;
}
function after_comment($comment_text){
return $comment_text.'input after comment';
}
동작
add_action('wp_head','hook_javascript');
function hook_javascript() {
$output="<script> alert('Page is loading...'); </script>";
echo $output;
}
플러그인 개발 예제 : 좋아하는 노래 위젯
<?php
function wpshout_register_widgets() {
register_widget( 'Favorite_Song_Widget');
}
add_action( 'widgets_init', 'wpshout_register_widgets' );
class Favorite_Song_Widget extends WP_Widget {
function Favorite_Song_Widget() {
// Instantiate the parent object
parent::__construct(
'favorite_song_widget', // Base ID
__('Favorite Song', 'text_domain'), // Name
array( 'description' => __( 'Widget for playable favorite song', 'text_domain' ), ) // Args
);
}
function widget( $args, $instance ) {
echo $args['before_widget'];
echo '<h3>Favorite Song Lists:</h3>';
echo $instance['songinfo'];
echo '<a href="' . $instance['link'] . '">Download it</a><br>';
echo $instance['description'];
echo $args['after_widget'];
}
function update($new_abc,$old_abc) {
$instance = $old_abc;
// Fields
$instance['link'] = strip_tags($new_abc['link']);
$instance['songinfo'] = strip_tags($new_abc['songinfo']);
$instance['description'] = strip_tags($new_abc['description']);
return $instance;
}
// Widget form creation
function form($instance) {
$link = '';
$songinfo = '';
$description = '';
// Check values
if( $instance) {
$link = esc_attr($instance['link']);
$songinfo = esc_textarea($instance['songinfo']);
$description = esc_textarea($instance['description']);
} ?>
<p>
<label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Link', 'wp_widget_plugin'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo $link; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('songinfo'); ?>"><?php _e('Song Info:', 'wp_widget_plugin'); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id('songinfo'); ?>" name="<?php echo $this->get_field_name('songinfo'); ?>" type="text" value="<?php echo $songinfo; ?>" />
</p>
<p>
<label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Description:', 'wp_widget_plugin'); ?></label>
<textarea class="widefat" id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>" type="text" value="<?php echo $description; ?>"></textarea>
</p>
<p><a href="#" id="add-more-tabs"><?php _e('Add More Tabs', 'wp_widget_plugin'); ?></a></p>
<?php }
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow