Szukaj…


Składnia

  • działanie dodatkowe (ciąg $ tag, wywoływalne $ function_to_add, int $ Priority = 10, int $ accept_args = 1)
  • add_filter (string $ tag, callable $ function_to_add, int $ priority = 10, int $ accept_args = 1)

Parametry

Parametr Szczegół
Tag $ (ciąg) (Wymagane) Nazwa filtra, do którego ma zostać wywołane wywołanie zwrotne $ function_to_add.
$ function_to_add (wywoływalne) (Wymagane) Oddzwonienie, które ma być uruchomione po zastosowaniu filtru.
Priorytet $ (int) (Opcjonalnie) Służy do określania kolejności wykonywania funkcji związanych z określoną akcją. Niższe liczby odpowiadają wcześniejszemu wykonaniu, a funkcje o tym samym priorytecie są wykonywane w kolejności, w jakiej zostały dodane do akcji. Wartość domyślna: 10
$ accept_args (int) (Opcjonalnie) Liczba argumentów, które funkcja akceptuje. Wartość domyślna: 1

Uwagi

Sposób działania wtyczek polega na tym, że w różnych momentach, gdy WordPress jest uruchomiony, WordPress sprawdza, czy jakieś wtyczki mają zarejestrowane funkcje do uruchomienia w tym czasie, a jeśli tak, to funkcje są uruchamiane. Te funkcje modyfikują domyślne zachowanie WordPress.

Istnieją dwa rodzaje haków:

Filtry umożliwiają zmianę wartości fragmentu danych podczas wykonywania WordPress. Funkcje zwrotne dla filtrów będą przekazywane przez zmienną, modyfikowane, a następnie zwracane. Mają działać w sposób izolowany i nigdy nie powinny wpływać na zmienne globalne lub cokolwiek innego poza funkcją.

Działania, w przeciwieństwie do tego, pozwala na dodawanie do lub zmiany jak WordPress działa. Twoja funkcja oddzwaniania będzie działać w określonym momencie wykonywania WordPressa i może wykonać jakieś zadanie, takie jak echo wyjścia dla użytkownika lub wstawienie czegoś do bazy danych.

Filtruj odniesienie

Informacje o działaniu

Podręcznik

Wtyczka API

Filtry a działania

Filtr

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';
        }

Akcja

add_action('wp_head','hook_javascript');

function hook_javascript() {
    $output="<script> alert('Page is loading...'); </script>";
    echo $output;
}

Przykłady rozwoju wtyczek: Ulubiony widget piosenki

    <?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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow