Er zijn veel WordPress-plugins beschikbaar, maar soms wil je toch iets anders. Je kunt bijvoorbeeld heel gemakkelijk een plugin maken die een nieuwe WordPress- widget toevoegt.
In onze artikelen en op onze pagina's staan affiliate links. Wanneer je via één van deze links een aankoop doet, ontvangen wij een (meestal kleine) commissie van de verkoper. Wij geven altijd onze eerlijke mening over producten. Klik hier voor meer informatie.
In dit artikel laten we je zien hoe je dat doet; WordPress Plugins maken.
WordPress Plugins maken; bestanden
Allereerst ga je naar de wp-content > plugins folder van je WordPress-website. Hier maak je een nieuwe map aan met daarin een PHP-bestand.
Divi theme & Divi Builder
Bij Elegant Themes ontvang je meer dan
85 premium WordPress themes (waaronder Divi!) voor maar 89 dollar!
Bekijk de themes »»
Lees meer over Divi.
In dit voorbeeld gaan we een WordPress plugin maken die een nieuwe widget toevoegt, dus laten we de folder wordpress-widget-plugin noemen met daarin een PHP-bestand genaamd wordpress-widget-plugin.php.
Bovenin het PHP-bestand voeg je de volgende code toe.
<?php /* Plugin Name: WordPress Widget Plugin Plugin URI: https://www.wplounge.nl/ Description: Een WordPress plugin die een widget aanmaakt Version: 1.0 Author: WordPress Lounge Author URI: https://www.wplounge.nl/ License: GPL2 */ ?>
Wanneer je bovenstaande code toevoegt en de bestanden in de juiste directory staan (../wp-content/plugins) dan zul je in de WordPress-admin al een nieuwe plugin vinden die “WordPress Widget Plugin” heet.
Natuurlijk doet deze plugin nog niets, maar bovenstaand stukje is dus genoeg om WordPress te laten weten dat het om een plugin gaat.
Controleer dus of er een nieuwe widget staat onder Plugins. Als dit zo is, dan heb je zojuist je eerste WordPress-plugin gemaakt. WordPress Plugins maken is dus erg makkelijk, maar om te zorgen dat een plugin ook daadwerkelijk een widget aanmaakt wordt iets lastiger.
WordPress Plugin maken; widget toevoegen
De widget die we gaan toevoegen zal twee opties hebben; een titel en een tekst voor in de widget. Daar onder komt een afbeelding te staan.
<?php /* Plugin Name: WordPress Widget Plugin Plugin URI: https://www.wplounge.nl/ Description: Een WordPress plugin die een widget aanmaakt Version: 1.0 Author: WordPress Lounge Author URI: https://www.wplounge.nl/ License: GPL2 */ ?> <?php /** Widget Class */ class example_widget extends WP_Widget { function example_widget() { parent::WP_Widget(false, $name = 'WordPress Lounge Widget'); } function widget($args, $instance) { extract( $args ); $title = apply_filters('widget_title', $instance['title']); $message = $instance['message']; ?> <?php echo $before_widget; ?> <?php if ( $title ) echo $before_title . $title . $after_title; ?> <ul> <li><?php echo $message; ?></li> </ul> <a href="https://www.wplounge.nl"><img src="https://www.wplounge.nl/wp-content/uploads/2013/06/WPL_PLUGIN.png" /></a> <?php echo $after_widget; ?> <?php } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); $instance['message'] = strip_tags($new_instance['message']); return $instance; } function form($instance) { $title = esc_attr($instance['title']); $message = esc_attr($instance['message']); ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Widget Titel:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('message'); ?>"><?php _e('Tekst voor bij de afbeelding:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('message'); ?>" name="<?php echo $this->get_field_name('message'); ?>" type="text" value="<?php echo $message; ?>" /> </p> <?php } } // end class add_action('widgets_init', create_function('', 'return register_widget("example_widget");')); ?>
In het Widgets-menu van WordPress zal dit er als volgt uit zien:
Ik heb een Titel ingevuld én een Tekst voor bij de afbeelding ingevuld.
In de sidebar van mijn testomgeving zou dat er als volgt uit zien:
Bestanden
Zoals je ziet is WordPress Plugins maken helemaal niet moeilijk.
Uiteraard mag je de bestanden van de plugin die we zojuist hebben gemaakt gebruiken én aanpassen. Je kunt de bestanden hier als ZIP-bestand downloaden.
Heb je toch nog vragen? Stel ze dan door een reactie achter te laten!
Duideljke uitleg alleen als ik je widget test dan kan ik niet meer uitloggen. Na deactivatie gaat het uitloggen weer prima.
Hey Wouter, ik heb net met wat aanpassingen je widget gebruikt. Het gaf mij veel inzichten in het maken van een widget. Als ik hem echter op mijn localhost gebruikt dan krijg ik na verloop van tijd de melding dat ik niet meer kan inloggen. Iets met cookies…
Is dit bij jou bekend?
Beste Wouter,
Wat me niet duidelijk is, is hoe je de geprogrammeerde code dan omgaat met een wachtwoord voor de individuele gebruiker. Krijgt hij die toegezonden? Kan hij zelf een wachtwoord aanmaken en wat beveel je aan want ik heb veel last van spam (gehad). Ik geloof dat ik er nu vanaf ben.
Dank voor je antwoord
Tanja
Hallo,
Ik wil zelf een mooie fotogallery maken voor WordPress, zodat de schilderijen die ik maak er mooier op de site komt te staan. Tot nu toe ben ik daarin teleurgesteld hier in.
Hoi Wouter,
Ik ben php programmeur en had al vanuit de andere plugins geleerd hoe ik een plugin moest maken.
Alles goed en wel en hij verscheen ook bij de plugins maar ik kreeg hem met bijvoorbeeld “hello world” niet in de site.
Zoeken dus en dan kom ik hier uit. In de uitleg maak je het wat ingewikkelder dan nodig volgens mij maar ineens is een plugin een widget en krijg ik net geen antwoord op de ene vraag. Hoe krijg ik de uitvoer van mijn plugin in een pagina. De plugin heet eb_find en [eb_find] probeerde ik maar werkt niet.
Alvast dank voor je antwoord.