Recherche…


Syntaxe

  • add_action (string $ tag, callable $ function_to_add, int $ priority = 10, int $ accepted_args = 1)
  • add_filter (string $ tag, callable $ function_to_add, int $ priority = 10, int $ accepted_args = 1)

Paramètres

Paramètre Détail
$ tag (string) (Obligatoire) Nom du filtre permettant de raccorder le rappel $ function_to_add.
$ function_to_add (callable) (obligatoire) Rappel à exécuter lors de l'application du filtre.
$ priorité (int) (Facultatif) Utilisé pour spécifier l'ordre dans lequel les fonctions associées à une action particulière sont exécutées. Les nombres inférieurs correspondent à une exécution antérieure et les fonctions avec la même priorité sont exécutées dans l'ordre dans lequel elles ont été ajoutées à l'action. Valeur par défaut: 10
$ accepted_args (int) (Facultatif) Le nombre d'arguments acceptés par la fonction. Valeur par défaut: 1

Remarques

La manière dont les plug-ins fonctionnent est que, à différents moments de l'exécution de WordPress, WordPress vérifie si des plug-ins ont des fonctions enregistrées à exécuter à ce moment-là, et si c'est le cas, les fonctions sont exécutées. Ces fonctions modifient le comportement par défaut de WordPress.

Il y a deux sortes de crochets:

Les filtres vous permettent de modifier la valeur d'une donnée lors de l'exécution de WordPress. Les fonctions de rappel pour les filtres seront transmises via une variable, modifiées, puis renvoyées. Ils sont censés fonctionner de manière isolée et ne devraient jamais affecter les variables globales ou autre chose en dehors de la fonction.

Les actions , en revanche, vous permettent d'ajouter ou de modifier le fonctionnement de WordPress. Votre fonction de rappel s'exécutera à un moment précis de l'exécution de WordPress et peut effectuer une sorte de tâche, comme faire écho à la sortie de l'utilisateur ou insérer quelque chose dans la base de données.

Référence du filtre

Référence d'action

Manuel

API de plugin

Filtres vs Actions

Filtre

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

action

add_action('wp_head','hook_javascript');

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

Exemples de développement de plug-ins: Widget de chanson préférée

    <?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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow