Comment créer votre propre plugin WordPress

Publié: 2016-07-13

Créer un plugin WordPress peut sembler une entreprise énorme. Dans certains cas, cela est vrai - certains plugins peuvent être incroyablement complexes. Mais selon les fonctionnalités que vous cherchez à ajouter, beaucoup sont en fait assez simples à construire. La création d'un plugin peut être effectuée rapidement avec une compréhension de base de son fonctionnement.

Où vont les plugins ?

Structure des dossiers WordPress

Avant le début du développement, il est bon de savoir où appartiennent les plugins. Jetons un coup d'œil à la structure des dossiers WordPress dans les répertoires d'applications de base. Dans le dossier wp-content , vous verrez un répertoire de plugins. C'est là que tous vos plugins individuels vivront.

Les plugins de ce dossier peuvent être des fichiers uniques ou des sous-répertoires. Les plugins plus petits ne nécessitent généralement qu'un seul fichier .php. Les plugins complexes peuvent avoir plusieurs types de fichiers (HTML, CSS et JavaScript sont toutes des possibilités). La création d'un sous-répertoire est utile pour héberger les différents fichiers ainsi que les fonctions .php du plugin.

comment-construire-le-chemin-du-fichier-du-plugin-du-plugin-wordpress

Actions et filtres

Avant que la construction du plugin ne commence, il est bon de connaître quelques bases pour vous aider à démarrer. Lorsque vous commencez à coder vos propres plugins, un bon point de départ consiste à apprendre comment fonctionnent les actions et les filtres. Connaître les bases sera utile et comme vous avez plus de questions à ce sujet, le WordPress Codex est une excellente ressource.

Avant le développement du plugin

Les méta-informations sont extrêmement importantes et ce sont également les informations qui renseignent WordPress sur le plugin. Les plugins ont des options pour être installés, supprimés, activés et désactivés. Techniquement, tout ce dont vous avez besoin est le nom du plugin pour que WordPress établisse votre fichier en tant que plugin. Cependant, il est recommandé de fournir les autres informations car elles vous seront utiles, ainsi qu'à vos utilisateurs.

<?php

/**

* Plugin Name: Example Plugin

* Plugin URI: http://mysite.com/

* Description: A brief description about your plugin.

* Version: 1.0 (or whatever current version your plugin is on)

* Author: Plugin Author's Name

* Author URI: Author's website

* License: A "Slug" license name e.g. GPL12

*/

Un plugin très simple

Commencer petit est un bon moyen de se lancer dans la construction de plugins. Créons un exemple très simple. Les actions et les filtres font bouger les choses, alors ajoutons une ligne de texte après tous les messages pour tester les choses.

Il est toujours bon de travailler dans un environnement de développement, et cela est particulièrement important lorsque vous expérimentez avec des plugins.

Tout d'abord, créez un nouveau fichier et assurez-vous qu'il se trouve au bon endroit. Copiez et collez ce code dans votre fichier de plugin principal et enregistrez-le. Ceci est collé après les méta-informations.

add_action( 'the_content', 'test_example_text' );

function test_example_text ( $content ) {
    return $content .= '<p>This is my first plugin!</p>';
}

Ceci est un exemple d'un crochet dur au travail. En se connectant à l'action the_content , cela fonctionne lorsque WordPress rend le contenu de la publication. WordPress appelle la fonction test_example_text qui est définie sous l' add_action call .

Voir le plugin en action

Vous l'avez probablement déjà fait auparavant, mais une fois connecté à l'administrateur WordPress, vous verrez l'option de plugin sur la gauche. Notre plugin apparaît, et il doit maintenant être activé. Une fois activé, il apparaît à la fin du post.

comment-construire-la-liste-des-plugins-du-plugin-wordpress

comment-construire-le-plugin-wordpress-premier-plugin

Un plugin plus complexe

Cet exemple montre donc les bases du fonctionnement des plugins, mais que se passe-t-il si vous voulez faire quelque chose d'un peu plus utile ? Les types de publication personnalisés sont utilisés assez fréquemment dans la conception de sites personnalisés, alors commençons par cela. Il existe des plugins existants que vous pouvez utiliser, mais en créer un à partir de zéro est un bon moyen de faciliter le développement de plugins.

Qu'est-ce qu'un type de publication personnalisé dans WordPress ?

Les pages et les articles sont les types de contenu les plus populaires dans WordPress, mais que faire si vous voulez quelque chose de plus spécifique ? Les pages et les publications peuvent être trop générales dans certaines circonstances, c'est pourquoi un type de publication personnalisé devient pratique. Un bon exemple est un type de portfolio personnalisé. L'idée est de créer une publication régulière avec une valeur de type de publication différente qui lui est attachée.

Comment créer un site portfolio sur WordPress

Avoir une page de portfolio sur un site Web peut être utilisé pour tant de choses. Par définition, c'est quelque chose qui sert à contenir des matériaux tels que des papiers, des cartes, des dessins, des photos, etc. Un portefeuille en termes financiers ref...

Vous pouvez appeler vos types de publication personnalisés comme vous le souhaitez. Par exemple, si vous gérez un site alimentaire, vous pouvez créer un type de publication de recette pratique. Ce type de publication peut avoir différents champs personnalisés avec sa propre structure de catégorie personnalisée.

Création de types de publication personnalisés

La première chose que vous devez faire est de créer le type de publication personnalisé. En utilisant la même structure de fichiers ci-dessus, ajoutons notre dossier et notre fichier .php. En supposant que les méta-informations ont été créées, nous ajouterons nos fonctionnalités après le bloc méta.

Nous allons créer un plugin pour un type de publication personnalisé appelé "Recettes" pour démontrer les bases de la création d'un plugin plus complexe.

La version de base

Si vous regardez l'extrait ci-dessous, c'est assez simple au début. Nous verrons un type de message personnalisé dans le menu de gauche pour nous assurer que cela fonctionne. Le register_post_type() est utilisé dans une fonction, qui s'accroche à l'action init . Il y a deux arguments qui sont le type de publication personnalisé et un tableau d'arguments.

function recipe_custom_post_type() {
	register_post_type( 'recipe', array( 'public' => true, 'label' => 'Recipes' ) );
}
add_action( 'init', 'recipe_custom_post_type' );

comment-construire-un-plugin-wordpress-personnalisé-post-type-01

La version avancée

Cette version de base du plugin fonctionnera réellement, cependant, plus de fonctionnalités sont nécessaires pour le rendre vraiment merveilleux. Par exemple, les libellés indiquent toujours "Ajouter un nouveau message". Nous voulons que cela soit plus spécifique à la recette; après tout, c'est pourquoi nous n'utilisons pas simplement un message ordinaire. Des personnalisations peuvent être faites en utilisant la propriété labels.

comment-construire-un-plugin-wordpress-ajouter-un-nouveau-post

Maintenant, grattons ce que nous venons de faire et utilisons ceci à la place :

add_action( 'init', 'recipe_custom_post_type' );
add_filter( 'post_updated_messages', 'recipes_messages' );

function recipe_custom_post_type() {
	$labels = array(
		'name'               => 'Recipes',
		'singular_name'      => 'Recipe',
		'menu_name'          => 'Recipe',
		'name_admin_bar'     => 'Recipe',
		'add_new'            => 'Add New',
		'add_new_item'       => 'Add New Recipe',
		'new_item'           => 'New Recipe',
		'edit_item'          => 'Edit Recipe',
		'view_item'          => 'View Recipe',
		'all_items'          => 'All Recipes',
		'search_items'       => 'Search Recipes',
		'parent_item_colon'  => 'Parent Recipes:',
		'not_found'          => 'No recipes found.',
		'not_found_in_trash' => 'No recipes found in Trash.'
	);

	$args = array( 
		'public'      => true, 
		'labels'      => $labels,
		'rewrite'		=> array( 'slug' => 'recipe' ),
		'has_archive'   => true,
		'menu_position' => 20,
		'menu_icon'     => 'dashicons-carrot',
		'taxonomies'		=> array( 'post_tag', 'category' ),
		'supports'      => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields', 'comments' )
	);
    	register_post_type( 'recipe', $args );
}

function recipes_messages( $messages ) {
	$post = get_post();

	$messages['recipe'] = array(
		0  => '',
		1  => 'Recipe updated.',
		2  => 'Custom field updated.',
		3  => 'Custom field deleted.',
		4  => 'Recipe updated.',
		5  => isset( $_GET['revision'] ) ? sprintf( 'Recipe restored to revision from %s',wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
		6  => 'Recipe published.',
		7  => 'Recipe saved.',
		8  => 'Recipe submitted.',
		9  => sprintf(
			'Recipe scheduled for: <strong>%1$s</strong>.',
			date_i18n( 'M j, Y @ G:i', strtotime( $post->post_date ) )
		),
		10 => 'Recipe draft updated.'
	);

	return $messages;
}


comment-créer-un-plugin-wordpress-ajouter-une-nouvelle-recette

Voyez comment le texte en haut se lit maintenant "Ajouter une nouvelle recette" ? Nous y sommes parvenus en personnalisant le "ajouter un nouvel élément" avec le texte souhaité.

comment-construire-les-éléments-d-interface-du-plugin-wordpress

comment-créer-des-messages-de-réception-de-plugin-wordpress

Il se passe beaucoup de choses ici et les choses deviennent assez détaillées lorsque l'on travaille avec des arguments. Celle qui est visuellement évidente est la propriété supports . Ici, nous avons déclaré qu'un titre, un éditeur, un auteur, une vignette, un extrait, des champs personnalisés et des commentaires doivent être inclus. Ceux-ci sont affichés dans l'interface utilisateur d'administration et sur certaines parties du front-end également. La propriété taxonomies vous permet d'attribuer des taxonomies personnalisées au type de publication personnalisé.

comment-construire-un-plugin-wordpress-ui-nouveau

Messages d'interaction de type publication

Chaque fois que vous enregistrez, supprimez, recherchez, etc., vous recevez un message par défaut. Dans notre fonction recipes_messages , il y a une liste de ces messages. Définir le tableau pour le type de publication personnalisé avec les messages appropriés garantira que les choses se lisent comme vous le souhaitez pour le type de publication personnalisé. Les choses semblent très spécifiques à la recette avec le libellé, donc cela va bien avec le type de message personnalisé.

comment-construire-le-texte-de-la-recette-du-plugin-wordpress

Une fois que vous avez terminé votre plugin, vous pouvez le publier dans le répertoire des plugins WordPress afin que d'autres puissent également le télécharger. Si tel est le cas, inclure un readme.txt est utile pour ceux qui recherchent un plugin comme le vôtre. Fondamentalement, ce fichier inclura votre nom et ce que fait le plugin, mais vous pouvez également inclure des détails sur chaque révision et des détails sur les mises à jour.

Comme vous pouvez le voir, les plugins peuvent être très simples ou complexes. Créer un plugin n'est pas aussi délicat qu'il n'y paraît à première vue et c'est une bonne habitude à prendre lors du développement de sites WordPress. Ils permettent une organisation facile et la possibilité de les réutiliser sur plusieurs sites, rendant votre développement WordPress plus efficace.

comment-construire-plugin-wordpress-ebook-cta