- Описание функции
- Примеры использования
- Создание пользовательской структуры ссылок
- Изменение структуры ссылок для категорий
- Добавление пагинации к пользовательской структуре ссылок
- Настройка структуры ссылок для постов определенного типа
- Добавление конечных точек к пользовательской структуре ссылок
- Вопросы и ответы
- Как добавить кастомную permalink структуру?
- Как изменить существующую permalink структуру?
- Как удалить permalink структуру?
- Как использовать переменные в permalink структуре?
- Как настроить пагинацию для permalink структуры?
- Как добавить эндпоинты в permalink структуру?
- Как настроить permalink структуру для категорий?
- Связанные элементы
Описание функции
Функция add_permastruct() добавляет структуру постоянных ссылок.
Структура постоянных ссылок определяет формат URL-адресов для различных типов записей в WordPress. Эта функция позволяет создавать пользовательские структуры URL-адресов для постов, страниц, категорий и других типов записей.
Функция add_permastruct() используется внутри класса WP_Rewrite, который отвечает за обработку и генерацию URL-адресов в WordPress.
Использование
add_permastruct( string $name, string $struct, array $args = array() ) Эта функция принимает три параметра: $name, $struct и $args.
$name (обязательный) — название для структуры постоянных ссылок.
$struct (обязательный) — структура постоянных ссылок. Это строка, которая определяет формат URL-адресов.
$args (необязательный) — аргументы для построения правил на основе структуры постоянных ссылок. Подробности можно найти в документации к методу WP_Rewrite::add_permastruct().
$name(string) — Обязательный. Название для структуры постоянных ссылок.$struct(string) — Обязательный. Структура постоянных ссылок. Это строка, которая определяет формат URL-адресов.$args(array) — Необязательный. Аргументы для построения правил на основе структуры постоянных ссылок.with_front(bool) — Определяет, должна ли структура быть добавлена передWP_Rewrite::$front. По умолчанию true.ep_mask(int) — Маска конечных точек, определяющая, какие конечные точки добавляются в структуру. Принимает одну из следующих масок: EP_ALL, EP_NONE, EP_ALL_ARCHIVES, EP_ATTACHMENT, EP_AUTHORS, EP_CATEGORIES, EP_COMMENTS, EP_DATE, EP_DAY, EP_MONTH, EP_PAGES, EP_PERMALINK, EP_ROOT, EP_SEARCH, EP_TAGS, EP_YEAR. По умолчанию EP_NONE.paged(bool) — Определяет, должны ли быть добавлены правила пагинации для архивов. По умолчанию true.feed(bool) — Определяет, должны ли быть добавлены правила для обработки лент. По умолчанию true.forcomments(bool) — Определяет, должны ли правила лент быть запросом для ленты комментариев. По умолчанию false.walk_dirs(bool) — Определяет, должны ли «каталоги», составляющие структуру, быть просмотрены, и для каждого из них построены правила. По умолчанию true.endpoints(bool) — Определяет, должны ли конечные точки быть применены к сгенерированным правилам. По умолчанию true.default(array) — Массив значений по умолчанию для аргументов. По умолчанию array().
<?php
add_permastruct( 'category', '/%category%/%postname%/', array(
'with_front' => false,
'paged' => true,
'feed' => true,
'forcomments' => false,
'walk_dirs' => true,
'endpoints' => true,
'default' => array(),
) );
?> В этом примере мы добавляем пользовательскую структуру постоянных ссылок для категорий. Структура URL-адресов будет иметь формат /категория/заголовок-поста/. Мы также указываем некоторые дополнительные аргументы, такие как отключение добавления WP_Rewrite::$front перед структурой, добавление правил пагинации и правил для обработки лент.
Примеры использования
Создание пользовательской структуры ссылок
add_action( 'init', 'custom_permalink_structure' );
function custom_permalink_structure() {
add_permastruct( 'custom', '/%postname%/' );
}
В этом примере мы создаем пользовательскую структуру ссылок с помощью функции add_permastruct(). Мы используем хук ‘init’, чтобы вызвать функцию custom_permalink_structure() при инициализации WordPress. Внутри функции мы вызываем add_permastruct() с двумя обязательными параметрами: имя структуры ссылок (‘custom’) и саму структуру ссылок (‘/%postname%/’).
Изменение структуры ссылок для категорий
add_action( 'init', 'custom_category_permalink_structure' );
function custom_category_permalink_structure() {
add_permastruct( 'category', '/news/%category%/' );
}
В этом примере мы изменяем структуру ссылок для категорий. Мы используем хук ‘init’, чтобы вызвать функцию custom_category_permalink_structure() при инициализации WordPress. Внутри функции мы вызываем add_permastruct() с двумя обязательными параметрами: имя структуры ссылок (‘category’) и новую структуру ссылок (‘/news/%category%/’). Теперь ссылки на категории будут иметь вид ‘/news/category-name/’.
Добавление пагинации к пользовательской структуре ссылок
add_action( 'init', 'custom_pagination_permalink_structure' );
function custom_pagination_permalink_structure() {
add_permastruct( 'custom', '/%postname%/%paged%/' );
}
В этом примере мы добавляем пагинацию к пользовательской структуре ссылок. Мы используем хук ‘init’, чтобы вызвать функцию custom_pagination_permalink_structure() при инициализации WordPress. Внутри функции мы вызываем add_permastruct() с двумя обязательными параметрами: имя структуры ссылок (‘custom’) и новую структуру ссылок (‘/%postname%/%paged%/’). Теперь ссылки на посты будут иметь вид ‘/post-name/page/2/’ при пагинации.
Настройка структуры ссылок для постов определенного типа
add_action( 'init', 'custom_post_type_permalink_structure' );
function custom_post_type_permalink_structure() {
add_permastruct( 'custom', '/%postname%/', array( 'with_front' => false, 'ep_mask' => EP_PERMALINK ) );
}
В этом примере мы настраиваем структуру ссылок для постов определенного типа. Мы используем хук ‘init’, чтобы вызвать функцию custom_post_type_permalink_structure() при инициализации WordPress. Внутри функции мы вызываем add_permastruct() с тремя параметрами: имя структуры ссылок (‘custom’), новую структуру ссылок (‘/%postname%/’) и массив аргументов для настройки структуры ссылок. В данном случае мы устанавливаем параметры ‘with_front’ в значение false и ‘ep_mask’ в значение EP_PERMALINK. Теперь ссылки на посты данного типа будут иметь вид ‘/post-name/’ без префикса и с использованием только пермалинка.
Добавление конечных точек к пользовательской структуре ссылок
add_action( 'init', 'custom_endpoints_permalink_structure' );
function custom_endpoints_permalink_structure() {
add_permastruct( 'custom', '/%postname%/%custom_endpoint%/' );
}
В этом примере мы добавляем конечные точки к пользовательской структуре ссылок. Мы используем хук ‘init’, чтобы вызвать функцию custom_endpoints_permalink_structure() при инициализации WordPress. Внутри функции мы вызываем add_permastruct() с двумя обязательными параметрами: имя структуры ссылок (‘custom’) и новую структуру ссылок (‘/%postname%/%custom_endpoint%/’). Теперь ссылки на посты будут иметь вид ‘/post-name/endpoint/’ при использовании конечных точек.
Вопросы и ответы
Как добавить кастомную permalink структуру?
Функция add_permastruct() в WordPress используется для добавления пользовательской структуры permalink.
Чтобы добавить кастомную permalink структуру, вы должны вызвать функцию add_permastruct() и передать ей следующие параметры:
- $name (обязательный): Название для permalink структуры.
- $struct (обязательный): Структура permalink.
- $args (необязательный): Аргументы для построения правил на основе permalink структуры.
Пример кода:
add_permastruct( 'custom', '/%category%/%postname%/' );
Как изменить существующую permalink структуру?
Для изменения существующей permalink структуры в WordPress, вы должны использовать функцию add_permastruct() с тем же названием permalink структуры, но с новой структурой.
Пример кода:
add_permastruct( 'custom', '/%year%/%monthnum%/%postname%/' );
Как удалить permalink структуру?
Для удаления permalink структуры в WordPress, вы должны вызвать функцию add_permastruct() с пустой структурой permalink.
Пример кода:
add_permastruct( 'custom', '' );
Как использовать переменные в permalink структуре?
Функция add_permastruct() позволяет добавить пользовательскую структуру permalink в WordPress. Для этого необходимо указать имя структуры и саму структуру в виде строки. Также можно использовать переменные в permalink структуре, чтобы динамически формировать ссылки.
Переменные в permalink структуре заключаются в фигурные скобки {} и могут быть различных типов, например:
- %postname% — переменная, которая будет заменена на слаг поста (название поста в URL)
- %category% — переменная, которая будет заменена на слаг категории (название категории в URL)
- %year% — переменная, которая будет заменена на год публикации поста
Пример использования переменных в permalink структуре:
add_permastruct( 'custom', '/%category%/%postname%/%year%/', array(
'with_front' => false,
) );
Как настроить пагинацию для permalink структуры?
Пагинация для permalink структуры может быть настроена с помощью параметра paged при вызове функции add_permastruct(). По умолчанию пагинация включена.
Пример настройки пагинации для permalink структуры:
add_permastruct( 'custom', '/%category%/%postname%/%year%/', array(
'paged' => false,
) );
Как добавить эндпоинты в permalink структуру?
Эндпоинты — это дополнительные части URL, которые могут быть добавлены к permalink структуре. Для добавления эндпоинтов в permalink структуру используется параметр endpoints при вызове функции add_permastruct(). По умолчанию эндпоинты включены.
Пример добавления эндпоинтов в permalink структуру:
add_permastruct( 'custom', '/%category%/%postname%/%year%/', array(
'endpoints' => true,
) );
Как настроить permalink структуру для категорий?
Для настройки permalink структуры для категорий используется переменная %category% в permalink структуре. При этом можно указать, что категории будут включены в URL с помощью параметра with_front при вызове функции add_permastruct(). По умолчанию категории включены.
Пример настройки permalink структуры для категорий:
add_permastruct( 'custom', '/%category%/%postname%/%year%/', array(
'with_front' => true,
) );
Функция
add_permastruct()позволяет добавить пользовательскую структуру permalink в WordPress. С помощью переменных можно динамически формировать ссылки, а с помощью параметров можно настроить пагинацию, добавить эндпоинты и настроить permalink структуру для категорий. Это полезный инструмент для разработчиков WordPress, позволяющий создавать красивые и удобочитаемые URL.
Связанные элементы
- Функция
add_rewrite_rule(): добавляет правило перезаписи. - Функция
add_rewrite_tag(): добавляет пользовательскую метку для использования в правилах перезаписи. - Функция
flush_rewrite_rules(): сбрасывает правила перезаписи и вызывает их перегенерацию. - Функция
add_rewrite_endpoint(): добавляет конечную точку (endpoint) для правил перезаписи. - Хук
rewrite_rules_array: позволяет изменять массив правил перезаписи перед его использованием. - Класс
WP_Rewrite: обеспечивает генерацию и обработку правил перезаписи.