✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Używanie funkcji zamiast globalnych: get_post_field

28

Ponieważ PHP nadal się rozwija, a WordPress (i jego ekonomia programistyczna) zaczyna korzystać z bardziej nowoczesnych funkcji, jedną z rzeczy, które wciąż widzimy, jest korzystanie z globalnych elementów w WordPressie.

Do pewnego stopnia jest to nieuniknione: znaczące części aplikacji zostały zbudowane przy użyciu globalnych, kiedy to właśnie ta funkcja była główną funkcją; jednak inne części posunęły się naprzód, udostępniając klasy lub funkcje, które uniemożliwiają nam to.

Przykład: get_post_fieldjest to solidna alternatywa dla używania $postglobalnego, która dostarcza wiele tych samych informacji w nieco bardziej nowoczesny (i prawdopodobnie bezpieczniejszy) sposób odczytywania danych.

Dla wielu powszechną praktyką jest używanie czegoś takiego jak poniżej :

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

Nierzadko można zobaczyć coś takiego get_the_title(get_the_ID());w całym kodzie, co jest dobrą rzeczą, ale wciąż zdarzają się sytuacje, w których widzimy kod napisany, który ma dostęp do pewnych aspektów bieżącego posta.

Używanie funkcji zamiast globalnych: get_post_field

I zastanawiam się, jak bardzo potrzebna jest ta praktyka get_post_field. Z odniesienia do kodu:

Pobierz dane z pola wpisu na podstawie identyfikatora wpisu.

Przykładami pola post będą: 'post_type’, 'post_status’, 'post_content’ itp. i oparte na właściwościach obiektu post lub nazwach kluczy.

Podobnym przykładem do tej funkcji może być get_user_byfunkcja, w której przekazujesz określony ciąg do funkcji, dla której chcesz pobrać informacje, a także identyfikator (lub pełny obiekt postu, ale jeśli identyfikator wystarczy, dlaczego nie?).

Różnica polega na tym, że w przypadku niepowodzenia żądania pobierzesz wartość żądanego pola lub pusty ciąg (zamiast błędu, wartości null lub false). Oznacza to, że musielibyśmy napisać klauzulę warunkową lub klauzulę ochronną, aby obsłużyć taki przypadek.

Tak więc pełny przypadek użycia tej funkcji i kodu może wymagać kilku funkcji :

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

To wszystko można połączyć w ten sposób:

<?php

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

Celem udostępniania tego rodzaju kodu jest pomoc w udostępnianiu niektórych alternatyw, jakie mamy dla zmiennych globalnych, aby również udostępniać interfejsy API, które istnieją, ale mogą być niewykorzystane.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów