Suche…


Syntax

  • add_action (String $ tag, aufrufbare $ function_to_add, int $ Priorität = 10, int $ akzeptierte_args = 1)
  • add_filter (String $ tag, aufrufbare $ function_to_add, int $ Priorität = 10, int $ akzept_args = 1)

Parameter

Parameter Detail
$ tag (Zeichenfolge) (Erforderlich) Der Name des Filters, an den der $ function_to_add-Callback angehängt werden soll.
$ function_to_add (aufrufbar) (Erforderlich) Der Rückruf, der ausgeführt werden soll, wenn der Filter angewendet wird.
$ Priorität (int) (optional) Wird verwendet, um die Reihenfolge anzugeben, in der die einer bestimmten Aktion zugeordneten Funktionen ausgeführt werden. Niedrigere Zahlen entsprechen der früheren Ausführung, und Funktionen mit derselben Priorität werden in der Reihenfolge ausgeführt, in der sie der Aktion hinzugefügt wurden
$ Accepted_args (int) (Optional) Die Anzahl der Argumente, die die Funktion akzeptiert. Standardwert: 1

Bemerkungen

Die Funktionsweise von Plugins besteht darin, dass WordPress zu verschiedenen Zeitpunkten während der Ausführung von WordPress prüft, ob Plugins registrierte Funktionen zu diesem Zeitpunkt ausgeführt haben. Wenn ja, werden die Funktionen ausgeführt. Diese Funktionen ändern das Standardverhalten von WordPress.

Es gibt zwei Arten von Haken:

Mit Filtern können Sie den Wert eines Datenelements während der Ausführung von WordPress ändern. Callback-Funktionen für Filter werden durch eine Variable geleitet, geändert und anschließend zurückgegeben. Sie sollen isoliert arbeiten und sollten sich nicht auf globale Variablen oder andere Faktoren außerhalb der Funktion auswirken.

Mit Aktionen können Sie dagegen die Arbeitsweise von WordPress erweitern oder ändern. Ihre Callback-Funktion wird an einem bestimmten Punkt in der Ausführung von WordPress ausgeführt und kann Aufgaben ausführen, z. B. die Ausgabe an den Benutzer oder das Einfügen von Objekten in die Datenbank.

Filterreferenz

Aktionsreferenz

Handbuch

Plugin-API

Filter gegen Aktionen

Filter

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

Aktion

add_action('wp_head','hook_javascript');

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

Entwicklungsbeispiele für Plugins: Favorite Song Widget

    <?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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow