что такое __return_false в фильтрах

Вопрос или проблема

Я думал о том, чтобы удалить/скрыть панель администратора в моей установке WordPress (3.1.1).

Я посетил следующую ссылку:

http://codex.wordpress.org/Plugin_API/Filter_Reference/show_admin_bar

Меня удивило, что для удаления/скрытия панели администратора требуется всего одна строка

add_filter( 'show_admin_bar', '__return_false' );

Мой вопрос: что означает __return_false? Почему два подчеркивания и одно?

WordPress содержит встроенные функции для быстрого возвращения значений.

Они предназначены для использования как быстрая встроенная функция, которая возвращает общее значение для фильтра, такое как true, false или пустой массив.

  • __return_false — Возвращает логическое значение false.
  • __return_true — Возвращает логическое значение true.
  • __return_empty_array — Возвращает пустой массив PHP array.
  • __return_zero — Возвращает целое число 0.
  • __return_null — Возвращает NULL.
  • __return_empty_string — Возвращает ''.

В старых версиях PHP это может быть более компактным, чем вводить эквивалентную функцию целиком. В альтернативу, в PHP 7.4 и новее, вы можете использовать стрелочные функции для еще более компактного эквивалента с меньшим числом косвенных обращений или риском опечаток:

  • fn() => false
  • fn() => true
  • fn() => []
  • fn() => 0
  • fn() => null
  • fn() => ''

Ответ или решение

В WordPress существует несколько встроенных функций, которые позволяют быстро возвращать предопределенные значения, что делает работу с фильтрами более удобной и лаконичной. Одной из таких функций является __return_false.

Что такое __return_false?

__return_false — это предопределённая функция, которая, как следует из названия, возвращает логическое значение false. Она используется в фильтрах и хуках для того, чтобы упростить код и избежать ненужного дублирования.

Зачем использовать __return_false?

Когда вы хотите изменить поведение какого-либо элемента в WordPress, например скрыть админ-панель для авторизованных пользователей, вы можете использовать функцию add_filter(). В вашем примере:

add_filter('show_admin_bar', '__return_false');

Эта строка кода регистрирует фильтр, который отключает отображение админ-панели, возвращая значение false. Использование __return_false делает код более понятным и ясным, так как сразу видно, что функция предназначена для возвращения значения false.

Почему два знака подчеркивания (__)?

Два знака подчеркивания в начале имени функции — это просто часть принятой конвенции именования в WordPress. Они помогают идентифицировать данную функцию как предопределенную и полезную для работы с фильтрами и хуками. Это не имеет особого значения с точки зрения самой функции, но служит для поддержания определенного соглашения в коде.

Альтернативы в более новых версиях PHP

В более новых версиях PHP (начиная с 7.4) можно также использовать стрелочные функции (arrow functions) для создания таких же компактных функций, что делает код ещё более лаконичным:

add_filter('show_admin_bar', fn() => false);

Заключение

Использование __return_false и похожих функций не только делает код более понятным, но и сокращает его объем, что, в свою очередь, уменьшает вероятность ошибок при написании. Если у вас есть дополнительные вопросы о работе с фильтрами и хуками в WordPress, не стесняйтесь спрашивать!

Оцените материал
Добавить комментарий

Капча загружается...