✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Використання функцій замість глобальних: get_post_field

18

Оскільки PHP продовжує розвиватися, а WordPress (і його економіка розробників) працює над тим, щоб почати використовувати більш сучасні функції, одна з речей, які ми все ще бачимо, це використання глобальних елементів у WordPress.

Певною мірою це неминуче: значні частини програми були створені з використанням глобалів, коли це була функція, яка була основною; інші частини, однак, просунулися вперед, надаючи класи або функції, які запобігають нам від необхідності робити це.

Приклад: get_post_fieldце надійна альтернатива використанню $postglobal, яка надає більшу частину тієї самої інформації в трохи сучаснішому (і, можливо, безпечнішому) способі читання даних.

Для багатьох використання чогось подібного до наступного є звичайною практикою:

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

Нерідко можна побачити щось на кшталт get_the_title(get_the_ID());у всьому коді, і це добре, але бувають випадки, коли ми бачимо написаний код, який отримує доступ до певних аспектів поточної публікації.

Використання функцій замість глобальних: get_post_field

І я сумніваюся, наскільки ця практика справді потрібна get_post_field. З посилання на код:

Отримати дані з поля публікації на основі ідентифікатора публікації.

Прикладами поля публікації є ‘post_type’, ‘post_status’, ‘post_content’ тощо, які базуються на властивості об’єкта публікації або іменах ключів.

Подібним прикладом цієї функції може бути get_user_byфункція, у якій ви передаєте певний рядок функції, для якої ви хочете отримати інформацію, а також ідентифікатор (або повний об’єкт публікації, але якщо ідентифікатора достатньо, чому б і ні?).

Різниця тут полягає в тому, що ви отримуєте значення запитаного поля або порожній рядок (а не помилку, null або false), коли запит завершується помилкою. Це означає, що нам потрібно буде написати умовне або охоронне речення для обробки такого випадку.

Тож для повного використання цієї функції та коду може знадобитися кілька функцій :

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

Це все можна зв’язати так:

<?php

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

Суть спільного використання такого коду полягає в тому, щоб допомогти поділитися деякими наявними альтернативами глобальним змінним, щоб також поділитися API, які існують, але можуть недостатньо використовуватися.

Джерело запису: tommcfarlin.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі