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

Додайте спеціальне налаштування постійного посилання для свого спеціального типу публікації в WordPress

3

Це навчальний посібник про те, як додати спеціальне налаштування на сторінку адміністратора WordPress «Налаштування > Постійні посилання», щоб визначити слаг для вашого спеціального типу публікації. Якщо ви розробляєте тему або плагін для інших, які мають вбудований спеціальний тип публікації, додавання цього параметра буде вдячно оцінено його користувачами, оскільки вони дозволять їм визначити власну структуру URL-адреси типу публікації.

Я не буду детально описувати, як додати власний тип публікації; якщо ви не впевнені, я рекомендую подивитися, як додати спеціальний тип публікації.

Припустімо, що у вас є такий код для реєстрації власного типу публікації:

Нас цікавить rewriteаргумент. Тут ми визначаємо, який слаг буде отримувати перед усіма публікаціями. Ваш код для реєстрації спеціального типу публікації може дещо відрізнятися, наприклад, без «with_front», але нас цікавить «slug»:

За допомогою цього коду ви практично жорстко задаєте, яким буде слаг постійного посилання на публікації. Тип публікації для посилань можна використовувати для багатьох типів вмісту та користувачів тем; наприклад, проект, портфоліо, рекомендації клієнтів, компанії тощо. Щоб зробити вашу тему гнучкою, ви можете дозволити користувачеві теми самостійно вирішувати тип повідомлення.

Тож давайте розглянемо, як це зробити!

Додавання та збереження поля

Використання API налаштувань WordPress дещо спрощує це для нас. Все, що нам потрібно, це додати поле налаштувань і вказати WordPress, на якій сторінці адміністратора ми хочемо, щоб воно відображалося – у нашому випадку на сторінці налаштувань постійних посилань. Майте на увазі, що нам потрібно написати функцію, яка фактично також зберігає значення, що ми зробимо в кінці.

Ми підключаємо нашу функцію до admin_initгачка та реєструємо наше налаштування. Коли ми реєструємо параметр, ми визначаємо, яку функцію він має запустити для виведення параметра:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

Четверте значення аргументу [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()to 'permalink'вказує WordPress додати налаштування на сторінку налаштувань постійних посилань. Аргумент номер три — це функція, яку WordPress має запускати під час виведення параметрів — функція, яку ми визначаємо далі (поза підключеною функцією):

У цій функції ми просто виводимо базовий текст форми <input>. Для його valueатрибута ми отримуємо значення налаштування за допомогою [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). Атрибут placeholderє необов’язковим, але доцільно розміщувати його в базі слагів за замовчуванням, щоб користувач теми знав, чи хоче він змінити його значення чи ні.

Якщо ви збережете свій код і зараз перейдете на сторінку постійних посилань WordPress, ви побачите своє поле в самому кінці:

Додайте спеціальне налаштування постійного посилання для свого спеціального типу публікації в WordPress

На даний момент налаштування не зберігає своє значення, це наступний крок.

Нам потрібно додати ще одну функцію, admin_initяка перевіряє, чи надіслано наше налаштування у формі структури постійного посилання. І якщо так, то його слід зберегти за допомогою [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

Під час збереження налаштувань постійних посилань надсилається форма, тому ми можемо отримати значення через $_POSTглобальну змінну PHP. Надіслані значення з форми зберігаються у вигляді масиву з атрибутами імені вхідних даних як ключами. У нашому випадку ми встановлюємо атрибут імені ‘ mytheme_reference_slug‘ для нашого введення, щоб ми могли отримати доступ до надісланого значення за допомогою $_POST['mytheme_reference_slug'].

Тепер налаштування має повністю функціонувати на сторінці налаштувань постійного посилання. Останньою частиною є додавання значення цього параметра до нашого спеціального типу публікації.

Встановлення спеціального типу допису з використанням наших налаштувань

Щоб наш власний тип публікації використовував користувацьке значення нашого параметра, ми повертаємося до register_post_type()виклику функції та змінюємо rewriteаргумент на щось подібне:

Все, що ми тут робимо, це отримати значення нашої нової опції. Якщо він пустий 'reference', буде використано значення за умовчанням ().

І це все! Тепер ваш власний тип допису використовуватиме будь-яку базу сликів, установлену на сторінці налаштувань постійних посилань. Таким же чином можна додати більше налаштувань, наприклад, для власних таксономій.

Повний код

Тепер усі разом.

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

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