WordPress
Plugin ontwikkeling
Zoeken…
Syntaxis
- add cialis (string $ tag, opvraagbaar $ function_to_add, int $ priority = 10, int $ accept_args = 1)
- add_filter (string $ tag, opvraagbaar $ function_to_add, int $ priority = 10, int $ accept_args = 1)
parameters
Parameter | Detail |
---|---|
$ tag | (string) (Verplicht) De naam van het filter waaraan de call $ $ function_to_add moet worden gekoppeld. |
$ function_to_add | (opvraagbaar) (Vereist) De callback die moet worden uitgevoerd wanneer het filter wordt toegepast. |
$ prioriteit | (int) (Optioneel) Wordt gebruikt om de volgorde op te geven waarin de functies die aan een bepaalde actie zijn gekoppeld, worden uitgevoerd. Lagere nummers komen overeen met eerdere uitvoering en functies met dezelfde prioriteit worden uitgevoerd in de volgorde waarin ze aan de actie zijn toegevoegd. Standaardwaarde: 10 |
$ accepted_args | (int) (Optioneel) Het aantal argumenten dat de functie accepteert. Standaardwaarde: 1 |
Opmerkingen
De manier waarop plug-ins werken is dat WordPress op verschillende momenten tijdens de uitvoering controleert of er plug-ins zijn geregistreerd die op dat moment kunnen worden uitgevoerd en zo ja, welke functies worden uitgevoerd. Deze functies wijzigen het standaardgedrag van WordPress.
Er zijn twee soorten haken:
Filters geven u de mogelijkheid om de waarde van een stuk gegevens te wijzigen tijdens de uitvoering van WordPress. Terugbelfuncties voor filters worden door een variabele doorgegeven, gewijzigd en vervolgens geretourneerd. Ze zijn bedoeld om op een geïsoleerde manier te werken, en mogen nooit globale variabelen of iets anders buiten de functie beïnvloeden.
Met acties daarentegen kunt u toevoegen of wijzigen hoe WordPress werkt. Uw callback-functie wordt op een specifiek punt in de uitvoering van WordPress uitgevoerd en kan een soort taak uitvoeren, zoals uitvoer naar de gebruiker echoën of iets in de database invoegen.
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';
}
Actie
add_action('wp_head','hook_javascript');
function hook_javascript() {
$output="<script> alert('Page is loading...'); </script>";
echo $output;
}
Voorbeelden van ontwikkeling van plug-ins: favoriete nummerwidget
<?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 }
}