✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Добавьте пользовательскую настройку постоянной ссылки для вашего пользовательского типа записи в WordPress

14

Это руководство о том, как добавить пользовательскую настройку на страницу администрирования 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'); });

Установка четвертого аргумента указывает WordPress [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()добавить 'permalink'параметр на страницу настроек постоянных ссылок. Аргумент номер три — это функция, которую 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 для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее