✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Utilizzo delle funzioni al posto dei globali: get_post_field

17

Poiché PHP ha continuato ad andare avanti e WordPress (e la sua economia degli sviluppatori) lavora per iniziare a utilizzare più delle funzionalità più moderne, una delle cose che vediamo ancora accadere è l’uso dei globali all’interno di WordPress.

In una certa misura, è inevitabile: parti significative dell’applicazione sono state create utilizzando globali quando quella era la funzione che era una caratteristica principale; altre parti, tuttavia, sono andate avanti fornendo classi o funzioni che ci impediscono di doverlo fare.

Caso in questione: get_post_fieldè una solida alternativa all’utilizzo del $postglobale che fornisce gran parte delle stesse informazioni in un modo leggermente più moderno (e probabilmente più sicuro) di leggere i dati.

Per molti, usare qualcosa come il seguente è una pratica comune:

<?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;
}

Non è raro vedere qualcosa di simile get_the_title(get_the_ID());in tutto il codice, il che è positivo, ma ci sono ancora momenti in cui vediamo codice scritto che accede ad alcuni aspetti del post corrente.

Utilizzo delle funzioni al posto dei globali: get_post_field

E mi chiedo quanto sia davvero necessaria quella pratica per la get_post_fieldfunzione. Dal codice di riferimento:

Recupera i dati da un campo post in base all’ID post.

Esempi del campo post saranno ‘post_type’, ‘post_status’, ‘post_content’, ecc. e basati sulla proprietà dell’oggetto post o sui nomi delle chiavi.

Un esempio simile a questa funzione sarebbe la get_user_byfunzione in cui si passa una stringa specifica alla funzione per la quale si desidera recuperare informazioni, nonché un ID (o l’oggetto post completo, ma quando l’ID è sufficiente, perché no?).

La differenza qui è che recupererai il valore del campo richiesto o una stringa vuota (piuttosto che un errore o null o false) quando la richiesta non riesce. Ciò significa che dovremmo scrivere una clausola condizionale o di guardia per gestire un caso del genere.

Quindi un caso d’uso completo di questa funzione e del codice potrebbe richiedere un paio di funzioni :

<?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());
}

Tutto ciò può essere legato insieme in questo modo:

<?php

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

Lo scopo della condivisione di questo tipo di codice è aiutare a condividere alcune delle alternative che abbiamo alle variabili globali per condividere anche le API esistenti ma che potrebbero essere sottoutilizzate.

Fonte di registrazione: 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