Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Utilisation de fonctions à la place des variables globales : get_post_field

34

Alors que PHP a continué d’avancer et que WordPress (et son économie de développeurs) s’efforce de commencer à utiliser davantage de fonctionnalités plus modernes, l’une des choses que nous voyons encore se produire est l’utilisation de globals dans WordPress.

Dans une certaine mesure, c’est inévitable: des parties importantes de l’application ont été construites à l’aide de variables globales alors que c’était la fonctionnalité principale ; d’autres parties, cependant, ont avancé en fournissant des classes ou des fonctions qui nous évitent d’avoir à le faire.

Exemple: get_post_fieldest une alternative solide à l’utilisation du $postglobal qui fournit une grande partie des mêmes informations d’une manière légèrement plus moderne (et sans doute plus sûre) de lire les données.

Pour beaucoup, utiliser quelque chose comme ce qui suit est une pratique courante :

<?php
/**
 * Retrieves the slug for the current post via the current post's
 * post_name property.
 *
 * @return string the slug of the post.
 */
function getPostSlug(): string
{
  global $post;
  return $post->post_name;
}

Il n’est pas rare de voir quelque chose comme get_the_title(get_the_ID());dans tout le code, ce qui est une bonne chose, mais il y a encore des moments où nous voyons du code écrit qui accède à certains aspects du message actuel.

Utilisation de fonctions à la place des variables globales : get_post_field

Et je me demande à quel point cette pratique est vraiment nécessaire compte tenu de la get_post_fieldfonction. À partir de la référence de code :

Récupérer les données d’un champ de publication en fonction de l’ID de publication.

Des exemples de champ de publication seront ‘post_type’, ‘post_status’, ‘post_content’, etc. et basés sur la propriété de l’objet de publication ou les noms de clé.

Un exemple similaire à cette fonction serait la get_user_byfonction où l’on passe une chaîne spécifique à la fonction pour laquelle on veut récupérer des informations ainsi qu’un ID (ou l’objet post complet, mais quand l’ID suffit, pourquoi pas ?).

La différence ici est que vous récupérerez la valeur du champ demandé ou une chaîne vide (plutôt qu’une erreur ou null ou false) lorsque la requête échoue. Cela signifie que nous aurions besoin d’écrire une condition ou une clause de garde pour gérer un tel cas.

Ainsi, un cas d’utilisation complet de cette fonction et du code peut nécessiter quelques fonctions :

<?php

/**
 * Generates a boolean value based on the presence of a post slug.
 *
 * @return bool True if there is a slug; otherwise, false.
 */
function hasPostSlug(): bool
{
  return ('' === getPostSlug());
}

/**
 * Retrieves the slug for the current post via the get_post_field
 * API function.
 *
 * @return string the slug of the post.
 */
function getPostSlug(): string
{
  return get_post_field('post_name', get_the_ID());
}

Tout cela peut être lié comme ceci :

<?php

if (hasPostSlug()) {
  echo getPostSlug();
}

Le but du partage de ce type de code est d’aider à partager certaines des alternatives que nous avons aux variables globales pour partager également les API qui existent mais qui peuvent être sous-utilisées.

Source d’enregistrement: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More