Ricerca…


Sintassi

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

Parametri

Parametro Dettaglio
$ tag (stringa) (Obbligatorio) Il nome del filtro per agganciare il callback $ function_to_add a.
$ function_to_add (richiamabile) (Obbligatorio) Il callback da eseguire quando viene applicato il filtro.
$ priorità (int) (Facoltativo) Utilizzato per specificare l'ordine in cui vengono eseguite le funzioni associate a una particolare azione. I numeri più bassi corrispondono all'esecuzione precedente e le funzioni con la stessa priorità vengono eseguite nell'ordine in cui sono stati aggiunti all'azione. Valore predefinito: 10
$ accepted_args (int) (Facoltativo) Il numero di argomenti accettati dalla funzione. Valore predefinito: 1

Osservazioni

Il modo in cui i plugin Plugin funzionano è che in varie occasioni mentre WordPress è in esecuzione, WordPress verifica se alcuni Plugin hanno funzioni registrate da eseguire in quel momento e, in tal caso, le funzioni vengono eseguite. Queste funzioni modificano il comportamento predefinito di WordPress.

Esistono due tipi di hook:

I filtri ti danno la possibilità di cambiare il valore di un dato durante l'esecuzione di WordPress. Le funzioni di callback per i filtri verranno passate attraverso una variabile, modificate e quindi restituite. Sono pensati per funzionare in modo isolato e non dovrebbero mai influenzare le variabili globali o qualsiasi altra cosa al di fuori della funzione.

Le azioni , al contrario, consentono di aggiungere o modificare il funzionamento di WordPress. La funzione di callback verrà eseguita in un punto specifico nell'esecuzione di WordPress e può eseguire alcuni tipi di attività, ad esempio l'emissione di output all'utente o l'inserimento di qualcosa nel database.

Riferimento del filtro

Riferimento di azione

Manuale

API plugin

Filtri vs Azioni

Filtro

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

Azione

add_action('wp_head','hook_javascript');

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

Esempi di sviluppo di plugin: Widget canzone preferita

    <?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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow