Création du projet
- Créer un dossier avec à l'intérieur un fichier du même nom en .php
C'est ce fichier qui fera appel au reste du plugin.
- Vérifier que ce dossier n'est pas ignoré.
- Ajouter le nom du plugin en commentaires dans le fichier.
/**
* Plugin Name: nomDuPlugin
*/
gitignore
- Remplacer le code '.gitignore' à la racine du projet par le code suivant:
vendor
wordpress
wp-config.php
/wp-content/*
!/wp-content
/wp-content/themes/*
!/wp-content/themes
!/wp-content/themes/monTheme
!/wp-content/plugins/monPlugin
Tester le plugin
- Il est possible de tester si le Plugin fonctionne en ajoutant le code suivant dans le fichier :
exit('Ton plugin fonctionne parfaitement, félicitation !');
Ne pas oublier d'activer le plugin :
wp plugin activate nomDuPlugin
Custom Post Type
Documentation sur les registrer_post_type : https://developer.wordpress.org/reference/functions/register_post_type/ et https://wphierarchy.com
Ajouter un onglet a l'administration Wordpress :
function registrerCustomerPostType() {
register_post_type(
'customer', // identifiant (type de post_type)
[
'label' => 'Customer', // donne un nom d'affichage à notre CPT
'public' => true, // CPT est-il visible ?
'has_archive' => true, // ce CPT aura t-il une page d'archive => une liste
'rewrite' => ['slug' => 'client'] // réécrit le dossier de l'url
]
)
}
add_action('int', 'registrerCustomerPostType'); // active à l'intialisation de Wordpress.
- Aller dans l'administration WP : setting->permaliens et revalider pour générer les nouveaux permaliens.
- Créer une page 'single-labelChoisi.php' pour pouvoir afficher les données du CPT sur une page. (exemple avec get_the_title(); )
Créer un fichier 'Plugin.php' à la racine du plugin.
namespace oProfile;
class plugin {
public function run()
{
// on n'utilise plus le nom de la fonction à executer; mais un callable => un ensemble objet/classe + nom de méthode = array avec en 0 une référence à l'objet courant et en 1 le nom de la méthode
// attention, cette methode doit etre publique pour fonctionner.
add_action('int', [this, 'onInit']);
}
}
public function onInit()
{
// on fait les actions a accrocher au hook "init".
}
- Créer un dossier 'PostType' avec un fichier .php (exemple : customerPostType.php)
Ce fichier va permettre de créer des class. On cva pouvoir créer des class pour registrerCustomerPostType() par exemple.
- Changer le code de composer.json situé à la racine du plugin.
{
"name": "gaetan/oprofile",
"authors": [
{
"name": "GaetanOclock",
"email": "gaetan@oclock.io"
}
],
"require": {},
"autoload": {
"psr-4": {"oProfile\\": "."}
}
}
Se rendre à la racine du plugin et faire dans le terminal :
composer dump-autoload
Cette fonction génère le fichier 'vendor'.
Dans le fichier nomDuPlugin.php, ajouter l'autoload.
// au début de la page
require (__DIR__ . '/vendor/autoload.php');