WordPress
Plugin-utveckling
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.
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 }
}