Фільтр: esl/code/echo_function_names

Починаючи з Esl 1.9.7, ви повинні явно дозволити будь-які імена функцій, які ви хочете викликати через тег динамічних даних Esl, використовуючи новий фільтр esl/code/echo_function_names. Ви можете додати це до вашої дочірньої теми Esl або плагіна для фрагментів коду на ваш вибір.

add_filter( 'esl/code/echo_function_names', function() {return ['my_custom_function','another_custom_function',];} );

Щоб використовувати функції echo, спочатку необхідно увімкнути “Виконання коду” для відповідної ролі користувача або користувача у вашій панелі управління WordPress під “Esl – Налаштування – Користувацький код” (див. скріншот нижче).

Виконання коду: Увімкнено для ролі користувача “Адміністратор”

Переконайтеся, що ви увімкнули виконання коду лише для користувачів та ролей користувачів, яким ви повністю довіряєте.

Ви можете отримати список усіх функцій на вашому сайті, які викликані через тег echo як частина результатів “Огляд коду”. Ось як:

  1. Перейдіть до Esl > Налаштування > Користувацький код
  2. Натисніть кнопку “Почати: Огляд коду”
  3. Після закінчення виберіть “Echo теги” з випадаючого списку.
  4. Скопіюйте фрагмент коду під “Echo: Імена функцій” і вставте його в файл functions.php вашої дочірньої теми Esl. Переконайтеся, що ви видалили будь-які невідомі або небажані імена функцій з масиву.

Використання шаблонів (regex) для спрощення викликів функцій echo

Esl 1.9.8 пропонує більшу гнучкість у викликах функцій echo.

Хоча ви все ще можете повернути масив з точними іменами функцій, ви також можете повернути масив, який містить специфічні перевірки regex. Ми ідентифікуємо ці regex виклики за префіксом @.

Якщо ім’я вашої функції відповідає будь-яким з тих перевірок regex, його можна викликати через тег echo.

Приклад: Дозволити виклик будь-яких функцій, які починаються з eslcms_:

add_filter( 'esl/code/echo_function_names', function($function_name) {return ['@^eslcms_', // Дозволити всі функції, які починаються з "eslcms_"];} );

Перевірте імена функцій відповідно до вашої власної логіки

Замість того щоб повертати масив, ви також можете виконати будь-яку власну перевірку для самого імені функції або будь-якої іншої логіки, яку ви хочете виконати. Фільтр отримує ім’я функції ($function_name) як аргумент, щоб допомогти у прийнятті більш динамічних рішень. Повернення булевого значення (true або false)

Приклад: Дозволити виконання функцій на основі префіксу імені функції

add_filter('esl/code/echo_function_names', function($function_name) {// Тільки дозволити функції, які починаються з "custom_"return strpos($function_name, 'custom_') === 0;});

Цей приклад використовує просту перевірку, щоб визначити, чи функція починається з custom_. Якщо так, повертає true, дозволяючи виконання функції; в іншому випадку повертає false.

Приклад: Виконати будь-яку функцію, коли увімкнено режим розробки

add_filter( 'esl/code/echo_function_names', function($function_name) {return defined( 'WP_DEVELOPMENT_MODE' ) ? WP_DEVELOPMENT_MODE : false;} );

Константа PHP WP_DEVELOPMENT_MODE доступна в WordPress pro починаючи з версії 6.3. Ми використовуємо її лише як приклад. Ви можете використовувати будь-яку кастомну PHP константу на ваш вибір, визначивши її у файлі functions.php вашої дочірньої теми.

Приклад: Виконати функцію, якщо поточний користувач може редагувати пости

add_filter( 'esl/code/echo_function_names', function($function_name) {return current_user_can( 'edit_posts' );} );