Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. WordPress
  3. WordPress et PHP
Extrait - WordPress Développez des thèmes avancés avec PHP (théorie, TP, ressources) (5e édition)
Extraits du livre
WordPress Développez des thèmes avancés avec PHP (théorie, TP, ressources) (5e édition)
2 avis
Revenir à la page d'achat du livre

WordPress et PHP

Introduction

WordPress étant un CMS entièrement conçu en PHP, langage orienté objet, il est donc normal que WordPress ait développé ses propres API, classes, méthodes, fonctions... pour simplifier la vie des développeurs. En tant que développeur, il vous faudra donc vous familiariser avec le fonctionnement de WordPress, afin de pouvoir profiter de tout son potentiel.

Ce chapitre décrit la place prépondérante de PHP dans WordPress, la structure et les fonctions récurrentes de WordPress. Il sert de référence pour l’ensemble du livre, vous pouvez très bien le sauter et vous y référer par la suite lors de la personnalisation du fichier functions.php, de la création de thèmes avancés ou lors de la création d’extensions...

Ce chapitre est un condensé des possibilités qu’offre WordPress, il va à l’essentiel. Alors n’hésitez pas à consulter la documentation officielle, le codex ou de nombreux tutoriels gratuits, présents sur la Toile, pour approfondir vos connaissances sur un sujet précis.

Tous les mots-clés et termes techniques de chaque chapitre vous permettent de mener votre propre enquête sur le Net. Avec une communauté très active, il serait dommage de ne pas profiter de l’expérience de toutes ces personnes...

La structure des fichiers et dossiers WordPress

Connaître l’organisation des fichiers dans WordPress est important. La structure est toujours la même, pour un petit site ou pour un gros site : le core ou cœur de WordPress ne change pas.

1. Les fichiers et dossiers à la racine du site

Les sites WordPress ont tous la même structure. À la racine, vous trouverez les dossiers wp-admin, wp-content, wp-includes et les fichiers WordPress.

images/301.png

Fichiers et dossiers à la racine du site WordPress

Il ne faut pas modifier ou supprimer certains fichiers ou dossiers natifs de WordPress, en l’occurrence ceux qui font partie du core, le site risquerait de ne plus fonctionner. De plus, la mise à jour de WordPress écrase toutes les modifications.

Le dossier wp-admin contient l’ensemble des fichiers concernant l’administration du site. Il ne faut pas modifier des fichiers dans ce dossier.

Le dossier wp-content contient l’ensemble des fichiers des thèmes, des extensions et des médias, des langues... C’est dans ce dossier que s’effectuent les modifications et personnalisations principales du site.

Le dossier wp-includes contient l’ensemble des fichiers du core de WordPress (classes, fonctions, scripts…). Il ne faut pas modifier des fichiers dans ce dossier. 

Le fichier wp-config.php est un fichier généré lors de l’installation de WordPress, à...

La base de données WordPress

WordPress installe douze tables dans la base de données. Pour le constater, connectez-vous à votre base de données via phpMyAdmin. C’est là où sont stockées toutes les informations de votre site (contenu des articles, des pages, des catégories, des étiquettes, la configuration de WordPress, des extensions, des thèmes, les informations sur les utilisateurs...).

Dans ce livre, les exemples sont illustrés avec le préfixe msw_ (par défaut, WordPress utilise le préfixe wp_). Normalement, le préfixe est choisi lors de l’installation, il se peut donc qu’il soit différent si vous l’avez changé pour des questions de sécurité. Pensez à changer le préfixe lors de l’utilisation des exemples.

images/ei03p05n1.png

Tables en base de données lors de l’installation de WordPress, dans phpMyAdmin

D’autres tables apparaissent selon les thèmes, les extensions et l’utilisation du mode multisite.

Voici les tables natives de WordPress avec le préfixe de base wp :

  • La table wp_commentmeta contient des informations complémentaires concernant les commentaires. Cette table est utilisée par l’extension Akismet, devenue extension native de WordPress, indispensable...

La structure et les fichiers principaux d’un thème

De base, lors de l’installation de WordPress, trois thèmes sont présents dans le répertoire wp-content/themes : Twenty Twenty-One, Twenty Twenty-Two, Twenty Twenty-Three, qui sont des thèmes par défaut développés par WordPress.

Les thèmes ont tous une structure commune constituée de fichiers et de dossiers principaux, qui sont présents dans la plupart des thèmes. Ils sont appelés fichiers modèles ou modèles de page.

images/03EI01N.png

Fichiers qui composent trois thèmes par défaut de WordPress : Twenty Twenty-One, Twenty Twenty-Two, Twenty Twenty-Three

1. Les fichiers principaux

Voici les fichiers à la racine des thèmes WordPress. Analysons le thème Twenty Twenty-One :

  • Un fichier image screenshot.png : ce fichier, propre à tous les thèmes, sert de miniature au thème, WordPress détecte automatiquement l’image et l’affiche dans la partie Apparence - Thèmes de l’administration.

  • Le fichier style.css : ce fichier, propre à tous les thèmes, est le fichier général CSS des thèmes, notamment grâce à l’en-tête. Dans certains thèmes, le code CSS est dans un dossier spécifique, souvent un dossier css. Le fichier style.css est alors presque vide à l’exception de l’en-tête. 

    L’en-tête est important, ses paramètres donnent des informations sur le thème. Ces informations s’affichent dans la partie Apparence - Thèmes - Détails du thème, dans l’administration. Par exemple, le nom du thème, la version, l’URL de téléchargement, l’auteur, la description, la licence...

    Voici comme exemple l’en-tête du fichier style.css du thème Twenty Twenty-One :

/* 
Theme Name: Twenty Twenty-One 
Theme URI: https://wordpress.org/themes/twentytwentyone/ 
Author: the WordPress team 
Author URI: https://wordpress.org/ 
Description: Twenty Twenty-One is a blank canvas for your ideas 
and it makes the block editor your best brush. With new block 
patterns, which allow...

Les fonctions d’inclusion

Dans les thèmes classiques, WordPress utilise ses propres fonctions PHP d’inclusion :

  • get_header() : pour appeler le fichier header.php.

  • get_footer() : pour appeler le fichier footer.php.

  • get_sidebar() : pour appeler le fichier sidebar.php.

  • get_searchform() : pour appeler le fichier searchform.php.

  • comments_template() : pour appeler le fichier comments.php.

  • get_template_part(’slug’) : pour appeler le fichier slug.php.

  • get_template_part(’slug’,’nom’) : pour appeler le fichier slug-nom.php. 

Exemples

<?php get_searchform(); ?> 

La fonction get_searchform() fait appel au fichier searchform.php et affiche le formulaire de recherche.

<?php get_template_part( 'template-parts/page/content', 'page' ); ?> 

La fonction get_template_part() du fichier page.php fait appel au fichier template-parts/page/content-page.php.

Selon les thèmes et l’utilisation des formats, dans certains thèmes, comme par exemple Twenty Seventeen, dans le fichier single.php vous pouvez voir la fonction suivante :

<?php get_template_part( 'template-parts/post/content', 
get_post_format() );?> 

La fonction get-template_part() fait appel au fichier content-nomduformat.php si les formats sont utilisés lors de l’édition des articles dans le bloc Format.

La fonction get_post_format() permet de récupérer...

Les marqueurs conditionnels

Les marqueurs conditionnels, comme dans tout langage de programmation, permettent d’effectuer des actions dans des cas particuliers.

Les conditions dans WordPress sont les mêmes qu’en PHP : if, elseif, else, endif.

Elles s’écrivent de deux façons, la deuxième étant la plus fréquente dans WordPress :

if(ma_condition){  
}elseif(ma_condition){  
}else{ 
} 

ou :

if (ma_condition) :  
elseif (ma_condition) :  
else :  
endif; 

Il existe des fonctions conditionnelles propres à WordPress qui renvoient true ou false. Elles sont directement liées au type de fichier PHP (modèle de page) qui s’affichera sur le navigateur.

Par exemple, is_home() vérifie que vous êtes sur la page d’accueil du blog (liste de tous les articles), ce qui correspond au fichier d’affichage index.php ou archive.php.

Voici quelques fonctions :

  • is_home() : indique si vous êtes sur la page de liste de publication de blog. Il peut s’agir de la page d’accueil WordPress par défaut qui affiche la liste chronologique inversée des articles de blog, ou d’une autre page si vous avez déplacé la liste des articles vers une autre page via l’onglet Réglages - Lecture dans l’administration. Ce qui correspond au fichier index.php ou frontpage.php.

  • is_frontpage() : indique si vous êtes sur la page d’accueil du site (quel que soit le contenu affiché), qu’il s’agisse d’une page d’accueil statique ou d’une liste d’articles de blog. Ce qui correspond au fichier index.php ou frontpage.php....

La boucle et ses fonctions

La boucle de WordPress est une boucle while() propre à PHP.

Elle permet de récupérer le contenu des pages et des articles grâce aux fonctions WordPress have_posts() et the_post().

Elle est présente dans presque tous les fichiers du thème et sa particularité est d’afficher le contenu en fonction du fichier PHP (modèle de page) où elle se trouve, tout en tenant compte des différentes conditions et fonctions qu’elle intègre.

<?php 
while ( have_posts() ) : the_post(); 
   //mes fonctions pour afficher du contenu 
endwhile; 
?> 

À l’intérieur de la boucle, insérez des fonctions principales d’affichage propres à WordPress afin d’afficher le contenu, ou servez-vous des fonctions principales de récupération de variables pour créer vos propres fonctions. À l’intérieur d’une boucle, il n’est pas rare de voir également une fonction d’inclusion qui fait appel à un autre fichier.

Dans les thèmes basés sur les blocs, le bloc Boucle de requête est un bloc avancé permettant d’afficher une liste de publications à partir de paramètres spécifiques. Cela fonctionne comme une boucle PHP mais ne nécessite pas d’écrire du code.

1. Les principales fonctions d’affichage dans une boucle

Les fonctions d’affichage sont propres à WordPress et affichent directement le résultat. Ces fonctions commencent généralement par le préfixe the_.

  • the_ID() : affiche l’id d’un article ou d’une page.

<?php the_ID(); ?> 
  • the_title() : affiche le titre d’un article ou d’une page.

<?php the_title($before,$after,$echo); ?> 

La fonction peut recevoir des arguments facultatifs :

  • $before : texte avant le titre, en général du HTML comme les balises H.

  • $after : texte après le titre, en général la ou les balises HTML fermantes. Attention à respecter la structure HTML : si vous utilisez pour $beforeune balise <h1> ouvrante, il faut absolument que $after utilise la balise </h1> fermante.

  • $echo : accepte une valeur booléenne true ou false pour l’affichage. Par défaut :...

Les fonctions pour les textes dans les fichiers PHP

Insérer du texte brut dans les fichiers PHP est possible (mais pas très recommandé), malheureusement les caractères spéciaux et accentués ne sont pas pris en compte. Il faut utiliser les codes ASCII ou les convertir en UTF-8, grâce à une fonction PHP classique ou bien utiliser les fonctions de WordPress.

L’avantage d’utiliser les fonctions de WordPress est que celles-ci ont été spécialement conçues pour gérer le multilingue, grâce à un fichier de traduction.

Deux fonctions WordPress sont récurrentes dans la plupart des thèmes : __() et _e().

  • __() : retourne une variable.

  • _e() : fait un echo de la variable, ce qui revient à faire echo __().

<?php _e( $text, $domain ); ?> 
<?php __( $text, $domain ); ?> 

Les fonctions acceptent deux arguments :

  • $text : le texte à traduire.

  • $domain : le nom clé du fichier dans lequel se trouvent les chaînes de traduction. 

    Exemple :

<?php _e( 'Nothing Found', 'twentytwenty' ); ?> 

Ce code affiche à l’écran le texte « Nothing Found », mais le texte apparaît en français : « Rien Trouvé ».

WordPress cherche le fichier twentytwenty.po se trouvant dans le dossier...

Les chemins dans les URL

Plusieurs fonctions propres à WordPress permettent d’afficher les chemins des différents dossiers.

Voici les différentes fonctions :

  • site_url() : renvoie l’adresse du site web sous forme de variable.

    Exemples : http://www.monsite.com ou http://www.monsite.com/dossier-Wordpress 

  • home_url() : renvoie l’adresse de la racine du site WordPress sous forme de variable.

    Exemple : http://www.monsite.com 

  • admin_url() : renvoie l’adresse de l’administration sous forme de variable. 

    Exemple : http://www.monsite.com/wp-admin

  • includes_url() : renvoie le chemin du dossier wp-includes sous forme de variable.

    Exemple : http://www.monsite.com/wp-includes

  • content_url() : renvoie le chemin du dossier wp-content sous forme de variable. 

    Exemple : http://www.monsite.com/wp-content

  • plugins_url() : renvoie le chemin du dossier plugins sous forme de variable. 

    Exemple : http://www.monsite.com/wp-content/plugins

  • theme_url() : renvoie le chemin du dossier themes sous forme de variable. 

    Exemple : http://www.monsite.com/wp-content/themes

  • wp_upload_dir() : renvoie le chemin du dossier uploads sous forme de variable. 

    Exemple : http://www.monsite.com/wp-content/uploads

Vous trouvez également les fonctions :

  • get_template_directory_uri() : dans le cas d’un thème enfant, renvoie l’URL...

La fonction bloginfo()

La fonction bloginfo() permet de récupérer diverses informations sur le blog. La fonction get_bloginfo() renvoie une variable, tandis que bloginfo() affiche le résultat.

La fonction demande un argument obligatoire : $param, pour renvoyer un résultat :

<?php bloginfo($param); ?> 

ou :

<?php 
$bloginfo=get_bloginfo($param); 
echo $bloginfo 
?> 

Voici le détail des différents arguments de la fonction :

  • bloginfo(’name’) : permet d’afficher le titre du site. Vous avez renseigné le champ Titre du site dans Réglages - Général et vous pouvez le modifier à tout moment dans l’administration. Retrouvez cette information dans la table wp_options.

  • bloginfo(’description’) : permet d’afficher le slogan du site. Vous avez renseigné le champ Slogan dans Réglages - Général, et vous pouvez le modifier à tout moment dans l’administration. Retrouvez cette information dans la table wp_options.

  • bloginfo(’wpurl’) : permet d’afficher l’URL du site. Vous avez renseigné le champ Adresse web de WordPress dans Réglages - Général, et vous pouvez le modifier à tout moment dans l’administration. Retrouvez cette information dans la table wp_options. Cette fonction équivaut à faire un echo de la fonction...

La fonction wp_nav_menu()

WordPress gère très facilement les menus et permet d’en créer à volonté via le panel d’administration dans Apparence - Menus. Voir le chapitre Introduction à WordPress, section Apparence.

La fonction wp_nav_menu() permet d’afficher n’importe quel menu créé dans l’administration Apparence - Menus dans les fichiers de WordPress. Le menu principal du blog utilise donc cette fonction. Elle se trouve en général dans le fichier header.php, mais cela peut varier selon les thèmes.

Dans la plupart des cas, si aucun menu personnel n’est créé en tant que menu principal, WordPress affiche automatiquement les pages par ordre alphabétique.

 <?php wp_nav_menu($defaults) ; ?> 

La fonction peut recevoir un ou plusieurs arguments optionnels, classés à l’intérieur d’un tableau.

Voici le détail de la fonction par défaut :

<?php 
$defaults = array( 
 'menu' => '', 
 'menu_class' => 'menu', 
 'menu_id' => '', 
 'container' => 'div', 
 'container_class' => '', 
 'container_id' => '', 
 'fallback_cb' => 'wp_page_menu', 
 'before' => '', 
 'after' => '', 
 'link_before' => '', 
 'link_after' => '', 
 'echo' => true, 
 'depth' => 0, 
 'walker' => '', 
 'theme_location' => '' 
 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 
 'item_spacing' =>'preserve', 
); 
wp_nav_menu( $defaults ); 
 
?> 

Notez qu’un menu se compose de la structure HTML suivante :

<nav> 
 
<ul> 
   <li><a href='http://monlien.com'>nom de mon lien</a></li> 
   <li><a href='http://monlien2.com'>nom de mon lien2</a></li> 
</ul> 
 
</nav> 

Voici le détail des différents arguments :

  • menu : accepte le nom ou l’id d’un...

Les hooks (filtres et actions)

Les hooks (crochets ou hameçons) vous permettent de personnaliser votre site WordPress. Il existe deux types de hooks dans WordPress : les actions et les filtres.

Les hooks sont indispensables lors de la création de fonctions dans un thème via le fichier functions.php (parfois fichier d’un dossier annexe) ou lors de la création d’extensions.

Ils ont été créés pour ne pas modifier les fichiers sources de WordPress ou des extensions, qui seraient écrasés lors d’une mise à jour. Les hooks accrochent les fonctions personnalisées au core de WordPress.

Référence au codex pour plus de détails sur les hooks : https://developer.wordpress.org/reference/hooks

1. Les actions

Les hooks d’actions permettent de charger des fonctions WordPress ou personnalisées à un moment donné. Lors du chargement d’un site, des fonctions s’exécutent dans un ordre précis, on peut alors choisir à quel moment exécuter notre action.

Par exemple, pour charger des fichiers CSS, ou pour ajouter une action lors d’un clic sur un bouton...

Pour ajouter une action, utilisez la fonction :

<?php add_action( $hook, $function_name, $priority, 
$accepted_args ); ?> 
  • $function_name : argument obligatoire. Accepte le nom de la fonction où se passe l’action.

  • $priority : argument optionnel. Sert à spécifier l’ordre dans lequel doit être exécutée l’action. Par défaut : 10. Plus le chiffre est bas, plus l’action se déroule tôt. Les actions avec la même priorité s’exécutent dans l’ordre de leur apparition.

  • $accepted_args : argument optionnel. Sert à spécifier le nombre d’arguments passant dans la fonction $function_name.

Exemple

<?php  
   ma_fonction_change_hook(){ 
     // mon action 
   } 
   add_action('hook_action_existant','ma_fonction_change_hook'); ...

Les globales

Les globales sont utilisées partout dans WordPress, c’est exactement comme dans PHP. Presque toutes les données de WordPress peuvent être récupérées par les globales. Il est préférable de ne pas modifier les globales directement, mais d’utiliser des fonctions spécifiques de WordPress.

Pour récupérer les globales, déclarez-les, comme en PHP, de la façon suivante :

<?php global $ma_variable; ?> 

1. Les globales dans les boucles

La globale $post s’utilise à l’intérieur d’une boucle et renvoie toutes les informations concernant l’article ou la page. $post utilise l’objet WP_Query que vous verrez à la section La classe WP_Query et les requêtes sur le contenu.

<?php global $post; ?> 

Les fonctions à l’intérieur des boucles de WordPress utilisent également $post pour récupérer les informations. Cette globale est généralement chargée directement par les modèles de page, il n’est donc pas utile de la déclarer une deuxième fois.

$post permet de récupérer les informations sous forme de variables. La fonction get_the_id() revient à faire $post->id par exemple.

  • $post->ID : renvoie l’id de la page ou de l’article.

  • $post->post_author : renvoie l’id de l’auteur....

Les classes de WordPress

WordPress est construit en programmation orientée objet (POO), il utilise donc de nombreuses classes.

Ces classes appartiennent généralement aux API de WordPress. Les API sont un ensemble de classes, de méthodes et de fonctions qui permettent de coder plus simplement.

Exemple : API des widgets, API des shortcodes, API sur la base de données...

Les classes permettent de structurer WordPress. De nombreuses fonctions instancient directement une classe, et permettent d’utiliser certaines méthodes à travers d’autres fonctions. Également, certaines globales permettent d’instancier directement une classe.

Il est donc normal de récupérer des informations de plusieurs manières, soit par des fonctions WordPress, soit par des globales, soit en utilisant directement des objets.

Les objets s’utilisent comme en PHP, par instance de classe :

<?php $Nom_de_l_objet = new Nom_de_la_classe; ?> 

Voici la liste des classes qu’utilise WordPress : https://developer.wordpress.org/reference/classes

Détaillons-en quelques-unes :

  • WP_Roles est la classe permettant de gérer les rôles.

  • WP_User est la classe permettant de gérer les rôles attribués aux utilisateurs.

  • WP_Post est la classe utilisée pour récupérer les informations d’un article ou d’une page.

  • WP_Query est la classe permettant...

La classe WP_Query et les requêtes sur le contenu

La classe WP_Query permet de faire des requêtes à la base de données sur la table wp_posts, et de récupérer n’importe quel contenu concernant les articles et les pages créés dans l’administration, onglets Pages et Articles, grâce à la méthode the_post().

<?php $the_query = new WP_Query( $args ); ?> 

WP_Query avec la méthode the_post() renvoie un tableau avec le contenu des articles et des pages, ce qui permet de faire une boucle et de récupérer ce contenu à l’aide de fonctions d’affichage (ex : the_title() pour le titre).

<?php  
$the_query = new WP_Query($args); 
 
if($the_query->have_posts()){ 
   while ($the_query->have_posts()){ 
     $the_query->the_post(); 
       //fonctions ex: the_title(); 
   } 
} 
?> 

Beaucoup de fonctions vues précédemment utilisent la classe WP_Query. La boucle principale de WordPress utilise la méthode the_post(), ainsi que les fonctions demandant des informations sur le contenu d’un article ou d’une page, mais également les marqueurs conditionnels. L’ensemble représente une partie de l’API WP_Query.

La boucle avec la classe WP_Query et la méthode the_post() fonctionne exactement comme la boucle de WordPress ; la boucle accepte donc les mêmes fonctions d’affichage. Cette boucle peut s’utiliser en tant que boucle secondaire à la boucle principale.

Il est important de souligner qu’un trop grand nombre de requêtes à la base de données peut créer des ralentissements sur le site, selon la complexité des requêtes et le nombre d’articles ou de pages présents sur le site.

Voici le lien du codex sur les shortcodes : https://developer.wordpress.org/reference/classes/wp_query

1. Les méthodes

Voici les méthodes pour tester ou récupérer la globale $post les plus fréquemment utilisées, mais il en existe bien d’autres à consulter dans le codex de WordPress.

  • have_posts() : permet de tester avant ou dans la boucle, si le tableau renvoyé contient des articles. Elle est également présente...

La classe wpdb et les requêtes au format SQL

Les méthodes de la classe wpdb ne s’utilisent pas directement, mais au travers de la globale $wpdb, et permettent de communiquer avec la base de données grâce à des requêtes SQL.

<?php global $wpdb; ?> 

$wpdb ne se limite pas aux tables prédéfinies par WordPress, mais communique avec n’importe quelles tables de la base de données. Cela est utile pour créer vos propres tables.

Voici le lien du codex sur l’objet wpdb : https://developer.wordpress.org/reference/classes/wpdb

1. Les méthodes utiles

  • $wpdb->nom_de_la_table (avec le nom de la table sans le préfixe) : permet d’obtenir le nom de la table avec le préfixe.

    Exemple : dans le cas d’un préfixe wp_, vous avez comme nom pour la table posts : wp_posts. Pour récupérer la variable sous la forme : wp_posts, faites $wpdb->posts.

  • $wpdb->prefix : permet d’obtenir le préfixe des tables.

    Exemple : dans le cas d’un préfixe wp_, $wpdb->prefix renvoie wp_.

<?php  
$prefixe= $wpdb->prefix;  
//echo $prefixe renvoie le nom de votre préfixe 
?> 
  • $wpdb->prepare($req,$value,...) : permet de se protéger contre les injections SQL malveillantes. S’utilise lors d’insertion de variables dans la base de données et équivaut à utiliser la fonction PHP classique mySQL_real_escape_string().

  • $req : accepte une requête SQL ou une méthode de requête.

  • $value : accepte autant de valeurs à sécuriser. Identifiez dans la requête $req les champs à insérer et remplacez-les par %s pour une variable textuelle ou un nombre décimal, %d pour un nombre entier, %f pour un nombre approximatif.

    Ensuite, ajoutez les valeurs correspondant à la suite de la requête dans l’ordre d’apparition.

Exemple

<?php 
   $string= "je suis une variable textuelle"; 
 
$wpdb->query( $wpdb->prepare(  
 " 
 INSERT INTO $wpdb->matable 
 ( id, content ) 
 VALUES (%d,%s ) ...

La classe WP_rewrite et la réécriture d’URL

Les méthodes de la classe WP_rewrite ne s’utilisent pas directement, mais à travers la globale $wp_rewrite. Cela permet d’ajouter des règles d’écriture, grâce à des méthodes et fonctions spécifiques.

<?php global $wp_rewrite; ?> 

Vous serez obligé d’utiliser cet objet si vous utilisez les permaliens (autres que ceux par défaut) pour la réécriture d’URL (URL rewriting), et que vous souhaitez passer des variables dans vos URL, ou si vous utilisez une structure d’articles ou une taxonomie personnalisée, ou encore, une boucle personnalisée nécessitant une pagination...

Si vous avez l’habitude d’utiliser le fichier .htaccess pour faire passer vos règles de réécriture d’URL, ici il sera préférable d’utiliser les différentes méthodes qu’offre l’objet WP_rewrite.

WordPress utilise ce système pour éviter les conflits avec les différentes extensions ou thèmes, et la réécriture systématique du fichier .htaccess. Pour éviter les conflits, les règles d’écriture sont enregistrées en base de données, dans la table d’options.

En local, pensez à activer le module rewrite_module d’Apache.

Voici...

Les shortcodes

Le shortcode est un code simplifié entre crochets, propre à WordPress, de la forme :

[monshortcode] 

Il permet d’afficher le résultat d’une fonction réalisée en PHP. Il s’insère dans les pages, les articles...

Il s’insère parfois automatiquement dans vos pages ou dans vos articles. C’est le cas lorsque vous créez une galerie par exemple, le shortcode s’insère dans votre éditeur WYSIWYG, et sur la page vous voyez votre galerie photo.

Exemple

[ gallery ] 

Le shortcode permet d’afficher la galerie photo.

Le shortcode peut aussi accepter des arguments ou récupérer du contenu.

Exemple

[ gallery columns='2' size='large'] 

La galerie est alors sur deux colonnes dans une grande taille.

[tag] mon contenu [/tag] 

Il est possible de récupérer le contenu entre les deux shortcodes.

Certaines extensions nécessitent l’utilisation de ces arguments pour fonctionner, cela est généralement indiqué dans la documentation de l’extension concernée.

Le shortcode est très pratique pour les novices en programmation. Mettre à disposition des shortcodes lors de la création d’extensions permet de simplifier beaucoup de tâches.

Voici la liste des shortcodes de WordPress par défaut :

  • [audio] : permet d’ajouter une musique....

Conclusion

Dans ce chapitre théorique, vous avez vu la base des fonctions WordPress vous permettant de progresser.

Beaucoup de fonctions propres à WordPress existent, et il est difficile de les maîtriser du premier coup. Ce chapitre a pour but d’être une référence dans votre apprentissage, et vous découvrirez tout au long du livre d’autres fonctions qui compléteront ces informations, lors d’exemples précis.

N’hésitez surtout pas à vous référer au codex. Sur le Net, vous trouverez des tas d’exemples qui s’adaptent à des besoins précis. Le lexique propre à WordPress, que vous retrouvez tout au long du livre, contient autant de mots-clés vous permettant de mener votre propre enquête.