Sök…


Syntax

  • add_action (sträng $ -tagg, kallbar $ function_to_add, int $ prioritet = 10, int $ accept_args = 1)
  • add_filter (sträng $ -tagg, kallbar $ function_to_add, int $ prioritet = 10, int $ accept_args = 1)

parametrar

Parameter Detalj
$ tag (string) (Obligatoriskt) Namnet på filtret för att ansluta $ function_to_add återuppringning till.
$ function_to_add (kallbar) (Obligatorisk) Den återuppringning som ska köras när filtret appliceras.
$ prioritet (int) (Valfritt) Används för att ange i vilken ordning funktionerna associerade med en viss åtgärd utförs. Lägre siffror motsvarar tidigare körning, och funktioner med samma prioritet körs i den ordning de lades till i åtgärden. Defektvärde: 10
$ accepted_args (int) (Valfritt) Antalet argument som funktionen accepterar.Default-värde: 1

Anmärkningar

Hur plugin-krokar fungerar är att vid olika tidpunkter medan WordPress körs, kontrollerar WordPress att se om några plugins har registrerade funktioner att köra vid den tiden, och i så fall körs funktionerna. Dessa funktioner ändrar WordPresss standardbeteende.

Det finns två slags krokar:

Filters ger dig möjligheten att ändra värdet på en datadata under körningen av WordPress. Återuppringningsfunktioner för filter passeras genom en variabel, ändras och returneras sedan. De är tänkta att arbeta på ett isolerat sätt och bör aldrig påverka globala variabler eller något annat utanför funktionen.

Åtgärder , däremot, låter dig lägga till eller ändra hur WordPress fungerar. Din återuppringningsfunktion kommer att köras vid en specifik punkt i körningen av WordPress och kan utföra någon form av uppgift, som att eko utdata till användaren eller infoga något i databasen.

Filterreferens

Handlingsreferens

Handbok

Plugin API

Filters vs åtgärder

Filtrera

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

Verkan

add_action('wp_head','hook_javascript');

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

Exempel på pluginutveckling: favoritlåt-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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow