Використовуйте динамічні дані для відображення всіх видів даних з вашої бази даних WordPress за допомогою Esl.
Наприклад: обране зображення, заголовок повідомлення, дата публікації, ім’я автора, категорії, теги, заголовок сайту, всі ваші власні поля тощо.
Вам, напевно, знадобляться динамічні дані при створенні шаблонів в Esl. Наприклад, шаблон для блогу та шаблони для кастомних типів публікацій (наприклад, окремий запис про нерухомість).
Як вставити динамічні дані
Вибір динамічних даних для тексту з’являється, коли ви вводите “{” на полотні. Ви також можете натиснути іконку “гром” у панелі налаштувань, щоб її відобразити:
Динамічні дані для ненадтекстових налаштувань, таких як зображення, відео тощо, доступні з випадаючого меню “Вибрати динамічні дані” в панелі налаштувань.
Нижче ви можете побачити галерею Advanced Custom Fields (названу “Галерея”), відображену всередині елемента галереї зображень Esl:
З моменту виходу Esl 1.3.5 всі теги динамічних даних доступні в усіх елементах, які підтримують динамічні дані. Це означає, що ви можете вставити галерейне поле (наприклад, тип поля галереї ACF) всередині текстового елемента, і воно буде відображено як набір img
тегів (за допомогою фільтру :image
), ось так:
Інтеграції кастомних полів
Ви можете відображати набагато більше, ніж просто стандартні динамічні дані WordPress. Esl підтримує найпопулярніші плагіни кастомних полів, такі як:
- Advanced Custom Fields
- Meta box
- Crocoblock (JetEngine)
- Pods
- CMB2
- Toolset
Це дозволяє вам створювати шаблони для навіть найскладніших макетів кастомних типів публікацій і вимог до даних.
Advanced Custom Fields
Esl інтегрується з усіма полями ACF та ACF Pro, включаючи гнучкий контент та вкладені групи.
Поля будуть перераховані в випадаючому списку Динамічні дані всередині двигуна Esl, тож ви можете використовувати їх під час створення ваших сторінок і шаблонів за допомогою Esl.
Відносини (включаючи двобічну реалізацію) та типи полів Repeater також доступні в механізмі Query Loop, тому ви можете перебирати вихідні дані цих полів, відображаючи підполя як динамічні дані.
Тип поля ACF “Так / Ні” чудово підходить для умовних перевірок в умовах елемента. За замовчуванням повертається локалізована мітка “Так / Ні”. Використовуючи його у своїх умовах елемента, переконайтеся, що застосували фільтр :value
. Щоб перевірити на false, ви можете порівняти з == 0
. Або == 1
, щоб перевірити на true.
Наступні динамічні дані можуть ефективно використовуватися разом з умовами елементів.
{acf_get_row_layout}
Метабокс
Esl сумісний з типами постів Meta Box, таксономіями, користувацькими полями та відносинами. Щодо користувацьких полів, Esl відобразить поля в механізмі в випадаючому списку динамічних даних. Відповідно до вмісту користувацького поля, ці теги будуть правильно відображатися на фронтенді.
Поле Групи (коли воно повторювальне) та Відносини також будуть доступні в механізмі Query Loop. Ви можете перебирати ці значення та відображати підполя як динамічні дані.
З Esl 1.6.2 також можлива побудова вкладених не повторювальних полів Групи в Esl Query Loop.
Crocoblock JetEngine
Esl сумісний із типами постів Crocoblock JetEngine, метабоксами (користувацькі поля), таксономіями, відносинами та сторінками налаштувань.
Користувальницькі типи контенту (CCT) підтримуються плагіном JetEngine з квітня 2024 року, а не самим Esl. Якщо у вас є запитання щодо CCT, будь ласка, зв’яжіться з підтримкою JetEngine безпосередньо.
Інтеграція Esl з плагіном JetEngine робить користувацькі поля доступними як динамічні дані в механізмі Esl.
Esl також інтегрується з Відносинами та Повторювачами JetEngine, щоб постачати запит циклу Esl.
Стандартні дані WordPress
За замовчуванням ви можете використовувати наступні теги динамічних даних.
Поля постів
Наступні поля пов’язані з постами або користувацькими типами постів.
{post_title}
{post_id}
{post_url}
{post_slug}
{post_date}
{post_modified}
{post_time}
{post_comments_count}
{post_content}
{post_excerpt}
{read_more}
{featured_image}
Ці поля підтримують такі динамічні фільтри даних:
{post_title:link}
{post_title:link:3}
{post_title:link:newTab}
{post_date:human_time_diff}
{post_excerpt:55}
{post_excerpt:format:10}
{featured_image:medium_large}
{featured_image:large:link}
Таксономії
Наступні теги динамічних даних відображають список терміна таксономії, призначених посту. Кожен термін обгорнутий посиланням на архів терміна:
{post_terms_category}
{post_terms_post_tag}
{post_terms_my_taxonomy_slug}
{post_terms_category:plain}
Якщо ви вже використовуєте посилання навколо вашого елемента, ви можете вимкнути вивід посилань термінів, використовуючи фільтр esl/dynamic_data/post_terms_links
.
Терміни
Наступні теги динамічних даних відображають дані, пов’язані з термінами таксономії.
{term_id}
{term_name}
{term_url}
{term_description}
{term_meta:my_term_meta_key}
Поля автора
{author_name}
{author_bio}
{author_email}
{author_website}
{author_archive_url}
{author_avatar}
{author_meta:meta_key}
Ці поля підтримують динамічні фільтри даних, такі як наступні:
{author_bio:20}
{author_name:link}
{author_email:link}
{author_website:link}
{author_avatar:200}
Поля поточної дати
Ви можете відобразити поточну дату через динамічні дані.
{current_date}
{current_wp_date}
Ви можете вказати інший формат дати, використовуючи формат дати PHP, наприклад:
{current_date:Y}
{current_date:Ymd}
{current_date:Y-m-d}
{current_date:Y.m.d}
{current_date:Y/m/d}
{current_date:Y m d}
{current_date:g:i A}
{current_date:timestamp}
Поля запиту
{query_results_count}
{query_results_count:quer34}
Ви повинні використовувати лише ідентифікатор з останніх шістьох символів.
{query_results_count:quer34}
працює лише тоді, коли цільовий запит є на 1 рівень глибше. Ви не зможете отримати правильну кількість, якщо цільовий запит розташований у вкладеному запиті глибиною >= 2 рівнів.
Сайти та архіви
{site_title}
{site_tagline}
{site_url}
{site_login}
{site_login:3}
{site_logout}
{site_logout:3}
{archive_title}
{archive_title:context}
{archive_description}
З моменту виходу Esl 1.3.5 можна отримати динамічні дані з параметрів URL як так:
{url_parameter:my_key}
my_key
Поля профілю користувача
{wp_user_id}
{wp_user_login}
{wp_user_email}
{wp_user_url}
{wp_user_author_url}
{wp_user_nicename}
{wp_user_description}
{wp_user_first_name}
{wp_user_last_name}
{wp_user_display_name}
{wp_user_picture}
{wp_user_meta:my_user_meta_key}
Рідні кастомні поля WordPress
Щоб вивести власні записи кастомного поля, ви повинні префіксувати їх cf_
.
Якщо ваше ім’я кастомного поля phone_number
, ви використаєте {cf_phone_number}
, щоб відобразити це кастомне поле на фронтенді.
Ваш запис кастомного поля phone_number
також повинен бути доступний у випадаючому списку динамічних даних під ‘Кастомні поля’.
Розширене: echo
Починаючи з Esl 1.9.7, ви повинні явно дозволити будь-які імена функцій, які ви хочете викликати через динамічні дані Esl echo
, використовуючи новий фільтр esl/code/echo_function_names
. Ви можете додати його до вашої дочірньої теми Esl або плагіна коду на ваш вибір. Ви можете знайти більше інформації в цій статті: https://academy.eslengine.io/article/filter-esl-code-echo_function_names/
Esl 1.4 вводить тег echo
для виведення результатів будь-якої PHP-функції:
{echo:my_custom_function}
my_custom_function()
{echo:get_the_date('Y-m-d', 55)}
Y-m-d
Зверніть увагу, що тег echo
не підтримує подвійні лапки, і кастомна PHP-функція повинна повертати
значення (не echo
значення всередині кастомної функції).
Розширене: do_action
Тег do_action
дозволяє розробникам і іншим плагінам безперешкодно інтегруватися з вашими шаблонами. За допомогою цього тегу ви можете розмістити хуки дій, такі як {do_action:my_custom_hook}
у будь-якому місці.
Наприклад, ви можете вставити {do_action:woocommerce_after_single_product}
у вашому шаблоні одноразового товару WooCommerce, що дозволить іншим плагінам використовувати його. Це підвищує гнучкість вашого шаблону.
Важливо зазначити, що тег do_action
не підтримує передачу аргументів до дії. Якщо функція add_action()
очікує додаткові аргументи, виникне помилка в PHP. Тег do_action
виконується лише на фронтенді сайту, а не всередині движка.
WooCommerce
Коли плагін WooCommerce встановлений і активний, ви отримаєте доступ до додаткового набору тегів Динамічних Даних, пов’язаних з продуктами та замовленнями. Будь ласка, зверніться до статті WooCommerce engine для отримання додаткових деталей.
Фільтри
Ви можете змінити вихід певних тегів динамічних даних, використовуючи такі фільтри:
:числове значення
– Коли використовується у текстовому полі, обрізає вміст до зазначеної кількості слів (наприклад,Використовуйте динамічні дані для відображення всіх видів даних з…
). Коли використовується з полем аватара, таким якauthor_avatar
, визначає ширину/висоту зображення аватара:context
або:prefix
– Додає контекст до назви архіву:image
– Виводить поле як тег зображення, наприклад.<img src="https://..." />
:link
– Виводить поле як тег посилання, наприклад.<a href="https://...">значення</a>
:newTab
– Налаштовує посилання на відкриття в новій вкладці:tel
– URL якоря буде відформатовано як номер телефону,
наприклад.<a href="tel:+123456789">+123456789</a>
:текстове значення
– Залежно від контексту, це може означати наступне:- Користувацький ключ мета-поля користувача або терміна
- Ключ параметра URL
- Роздільник термінів поста
- Формат дати
- Слаг розміру зображення (наприклад, ескіз або повний)
- Назва функції тегу echo
:value
– Виводить значення замість ярлика. Корисно для порівняння типів полів вибору, таких як список чекбоксів Metabox тощо, у умовах елемента (@since 1.5.7
), або з полями вибору ACF (встановіть тип повернення на “Обидва (масив)”) таких як Select, Checkbox, Radio Button і Button Group (@since 1.7.2
). Коли застосовується до постового поля Metabox, цей фільтр поверне ID поста (@since 1.8
):raw
– Пропускає парсинг динамічного тегу даних (@since 1.6
):url
– Повертає URL з ID поста (@since 1.6
). Корисно для повернення URL дляfile
поля тощо.:format
– Зберігає HTML-формат. (@since 1.6.2
) або показує пусту оцінку зірок для динамічних даних WooCommerce (@since 1.8
):plain
– Видаляє HTML-теги, використовуючиwp_strip_all_tags
, що може бути корисно, коли потрібно витягти простий текст з результату динамічного тегу. Наприклад, ви можете захотіти видалити посилання з динамічного тегу терміна поста. (@since 1.7.2
):array_value|{KEY}
– Повертає значення конкретного ключа масиву в результаті динамічного тегу. Це може бути особливо корисно для користувацьких полів, таких як типи ACF Google Map і ACF Link. Фільтр також може бути застосований до динамічного тегу echo. У випадках, коли значення є вкладеним масивом, Esl спростить його як строку JSON, щоб дозволити безперешкодний вивід без жодних помилок. Важливо зазначити, що цей фільтр слід використовувати лише тоді, коли ви впевнені, що результат динамічного тегу є масивом. Інша важлива річ, яку потрібно мати на увазі, це те, що якщо зазначений ключ масиву не існує, цей фільтр поверне порожній рядок. Приклади (@since 1.8
):timestamp
– Перетворює пов’язані з датою чи часом динамічні дані на значення мітки часу. (@since 1.9.3)
Приклади фільтру :array_value
{acf_place_map:array_value|lat}
$value['lat']
{acf_place_map:array_value|post_code}
$value['post_code']
{acf_ext_link:array_value|title}
$value['title']
{je_football-team_logo:array_value|id}
$value['id']
{mb_testimonials_user_image:array_value|name}
$value['name']
{echo:custom_function:array_value|hello}
$value['hello']
custom_function()
Аргументи пар ключ-значення
З Esl 1.10 ви можете додавати аргументи пар ключ-значення. Ця функція дозволяє забезпечити більшу гнучкість і налаштування при відображенні динамічного контенту. Загальний синтаксис для використання аргументів пар ключ-значення: {dynamic_data_tag @key:value}
.
- Обгорніть текст із пробілами в одинарні лапки.
- Значення може включати інші динамічні ярлики даних (наприклад,
{acf_text_field @fallback:'Не знайдено контенту для динамічних даних'}
).
Доступні аргументи:
@fallback
– надає текст заміни, якщо динамічний ярлик даних не повертає жодних даних. Цей аргумент можна використовувати з будь-яким динамічним ярликом даних.
- Приклад:
{acf_text_field @fallback:'Це текст заміни!'}
. Якщоacf_text_field
пустий, буде відображено “Це текст заміни!”.
@fallback-image
– використовується для динамічних ярликів даних з зображеннями. Він приймає або ID вкладення, або URL.
- Приклади:
{acf_image @fallback-image:554}
або{acf_image @fallback-image:'https://example.com/placeholder.png'}
. Якщоacf_image
недоступний, буде відображено вказане зображення (за ID вкладення або URL).
Механізми Esl, що стосуються динамічних даних
esl/dynamic_data/exclude_tags
– виключити список ярликів з логіки динамічних даних Esl
esl/dynamic_data/replace_nonexistent_tags
– вимкнути стандартну поведінку Esl щодо заміни неіснуючих динамічних ярликів даних порожнім рядком