✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Usando funções no lugar de globais: get_post_field

36

Como o PHP continuou avançando e o WordPress (e sua economia de desenvolvimento) trabalha para começar a usar mais recursos mais modernos, uma das coisas que ainda vemos acontecendo é o uso de globais dentro do WordPress.

Até certo ponto, é inevitável: partes significativas do aplicativo foram criadas usando globais quando esse era o recurso principal; outras partes, no entanto, avançaram fornecendo classes ou funções que nos impedem de fazer isso.

Caso em questão: get_post_fieldé uma alternativa sólida ao uso do $postglobal que fornece muitas das mesmas informações de uma maneira um pouco mais moderna (e sem dúvida mais segura) de ler os dados.

Para muitos, usar algo como o seguinte é uma prática comum:

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

Não é incomum ver algo como get_the_title(get_the_ID());em todo o código, o que é uma coisa boa, mas ainda há momentos em que vemos código escrito que acessa certos aspectos do post atual.

Usando funções no lugar de globais: get_post_field

E eu questiono o quão necessária essa prática realmente é dada a get_post_fieldfunção. Da referência de código:

Recupere dados de um campo de postagem com base no ID da postagem.

Exemplos do campo post serão, ‘post_type’, ‘post_status’, ‘post_content’, etc e baseados na propriedade do objeto post ou nos nomes das chaves.

Um exemplo semelhante a essa função seria a get_user_byfunção em que você passa uma string específica para a função para a qual deseja recuperar informações, bem como um ID (ou o objeto post completo, mas quando o ID é suficiente, por que não?).

A diferença aqui é que você recuperará o valor do campo solicitado ou uma string vazia (em vez de um erro ou nulo ou falso) quando a solicitação falhar. Isso significa que precisaríamos escrever uma cláusula condicional ou de guarda para lidar com esse caso.

Portanto, um caso de uso completo dessa função e do código pode exigir algumas funções :

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

Isso tudo pode ser amarrado assim:

<?php

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

O objetivo de compartilhar esse tipo de código é ajudar a compartilhar algumas das alternativas que temos às variáveis ​​globais para também compartilhar APIs que existem, mas podem ser subutilizadas.

Fonte de gravação: tommcfarlin.com

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação