Fermer

mai 18, 2023

WordPress : comment ajouter du texte avec un champ personnalisé à votre contenu de type de publication personnalisé

WordPress : comment ajouter du texte avec un champ personnalisé à votre contenu de type de publication personnalisé


dans WordPress, add_filter() est une fonction utilisée pour rattacher une fonction personnalisée ou une fonction WordPress existante à une action de filtre spécifique. Les filtres sont l’un des deux types de crochets, l’autre étant les actions. Ils permettent aux fonctions de modifier les données d’autres fonctions et sont la pierre angulaire de la fonctionnalité du plugin de WordPress.

Voici la syntaxe de base de add_filter():

add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

En tant que système de gestion de contenu (CMS), WordPress a été conçu comme n’importe quelle autre plateforme… qu’il s’agisse d’une page, d’un article ou même d’un article personnalisé, vous avez un titre et un contenu. Mais tout le contenu n’est pas limité à ces deux options. Un exemple est le acronyme bibliothèque que j’ai développée sur Martech Zone. Un acronyme comporte trois éléments… l’acronyme lui-même, le définition qui montre ce que signifie l’acronyme, et une explication de celui-ci.

J’ai pu facilement ajouter un champ personnalisé pour la définition en utilisant MetaBox, mais ce champ personnalisé n’est pas publié sur l’ensemble du site. Un moyen de le faire serait de créer un modèle personnalisé pour l’archive et la page d’acronyme unique où je peux extraire le champ personnalisé. Cependant, cela nécessite pas mal de travail et doit être fait là où je veux ces informations – dans les archives, la publication unique, l’extrait et le flux du type de publication personnalisé.

Une alternative consiste à utiliser votre thème et à ajouter ces informations dans le contenu lui-même. Dans ce cas, je veux simplement ajouter une courte phrase : Le {titre} est l’acronyme de {définition}. Comme j’utilise également la bibliothèque d’acronymes pour les codes, je souhaite également modifier le texte ajouté si le code est numérique : Le {titre} est le code de la {définition}. Voici des exemples :

0p est l’acronyme de Zero Party et 404 est le code pour Not Found.

Pour ce faire, je peux utiliser add_filter pour le concept, l’extrait, le flux et RSS pour ajouter le texte approprié. De plus, je vérifie si l’acronyme est numérique… auquel cas il s’agit probablement d’un code. (Je me rends compte que je pourrais encore améliorer cela, mais pour l’instant ça va). Au sein de la fonctions.php dossier de mon thème enfantj’ajoute simplement la fonction suivante, puis j’appelle les filtres appropriés pour l’appliquer sur l’ensemble du site :

// Prepend text to the content of 'acronym' posts
add_filter('the_content', 'prepend_text_to_acronym');
add_filter('the_excerpt', 'prepend_text_to_acronym');
add_filter('the_content_feed', 'prepend_text_to_acronym');
add_filter('the_excerpt_rss', 'prepend_text_to_acronym');
function prepend_text_to_acronym($content) {
    global $post;

    // Check if it's an 'acronym' post
    if($post->post_type == 'acronym') {
        // Get the post title and the 'acronym_definition' field
        $title = get_the_title($post->ID);
        $definition = get_post_meta($post->ID, 'acronym_definition', true);

		if (is_numeric($title)) {
			$new_content = "<p>$title is the code for $definition.</p>";
		} else {
			$new_content = "<p>$title is the acronym for $definition.</p>";
		}

        // Prepend the new content to the original content
        $content = $new_content . $content;
    }

    return $content;
}

Maintenant, quand tu vois mon Acronyme archive, vous verrez que chacune des entrées a cette phrase en préfixe dans l’extrait. Et c’est un paragraphe autonome sur la page des messages uniques.




Source link