Actions et Filtres

A

« Retour à la page du cours

Comme nous l’avons vu depuis le début du cours, WordPress est un logiciel très malléable.  Il est fait pour vous donner toute la flexibilité souhaitée pour personnaliser votre site web.  Au-delà du total contrôle du contenu (via la section d’administration) et de son affichage (via le thème), il vous est également possible de modifier le comportement des fonctionnalités internes de WordPress via les crochets (anglais: hooks).

Il existe deux types de crochets pouvant altérer le comportement de WordPress:

  1. Actions:  Les Actions sont des crochets permettant d’intercepter à un moment précis un événement particulier a lieu.  Il est possible de s’accrocher
  2. Filtres: Les Filtres (filters) sont des crochets permettant d’altérer certaines valeurs utilisées avant d’être insérées dans la base de données ou afficher dans une page web par exemple.

 

Les Actions et Filtres sont généralement utilisés lors de la création d’une extension (anglais: plugin).  Si le sujet vous intéresse, voyez comment créer une extension pour WordPress.

 

Utilisation de filtres dans votre travail

Dans le cadre de votre travail, vous avez sans doute insérer des articles que vous avez copié sur un autre site web.  Il ne serait pas une mauvaise idée de le mentionner sur chaque page web d’article afin d’éviter les problèmes qui peuvent survenir quand on fait du plagiat.

Afin d’y parvenir, nous pourrions ajouter une mention dans le bas de chaque article.  Théoriquement, l’idée est bonne, mais si vous avez des milliers d’articles sur votre site, le fait de devoir modifier chaque article manuellement peut prendre un temps fou.  Et si on utilisait un moyen automatiser d’y arriver ?

Pour y parvenir automatiquement, nous devrons « filtrer » le contenu de l’article et y ajouter, à la fin, notre mention.  Il faut donc savoir quelle fonction de WordPress permet d’afficher le contenu d’un article. C’est évidemment the_content().  À la base, cette fonction récupère le texte entré dans la section d’administration pour l’afficher sur le site.

Donc, en utilisant un filtre, nous pourrons modifier ce que la fonction the_content() affichera.  En gros, ce que nous souhaitons faire est : «contenu original de l’article» + «notre mention anti-plagiat» = the_content().

Dans le cas d’un thème, nous devrons ajouter du code dans le fichier functions.php.  Voici le code permettant d’ajouter la mention souhaitée tant sur les articles que sur les pages:

// Fonction qui modifiera le contenu
// La variable $content entre parenthèses contient le texte original
// de l'article.
function mj_the_content_filter_post($content) {
	$new_content = $content;

	// Si c'est un article, ajouter la mention
	if ( is_single() ) {
		$texte_html = "Cet article a été copié dans un cadre académique et n'est pas notre propriété";
		$new_content = $content . '<div class="discalimer-post">' . $texte_html . '</div>';
	}
	// Si c'est une page, ajouter la mention
	else if ( is_page() ) {
		$texte_html = "Cette page a été copiée dans un cadre académique et n'est pas notre propriété";
		$new_content = $content . '<div class="disclaimer-page">' . $texte_html . '</div>';
	}

	return $new_content;
}

// Ajout d'un filtre à la fonction 'the_content'.
// Lorsque the_content() est appelée, le contenu récupéré sera envoyé 
// à la fonction nommée mj_the_content_filter où nous modifierons le contenu.
add_filter( 'the_content', 'mj_the_content_filter_post' );

 

Il vous est également possible de créer un filtre pour la fonction the_title() si vous le souhaitez.  Vous pouvez consulter  la liste de tous les filtres disponibles pour WordPress si vous souhaitez explorer l’étendue des filtres disponibles.

 

« Retour à la page du cours

 

Ajouter un commentaire