# Функция ADD_PERMASTRUCT() в WordPress 3.0.0
Функция add_permastruct() используется для добавления структуры постоянных ссылок (постоянных URL) в WordPress. Это позволяет вам создавать дружелюбные к пользователю URL для вашего контента.
## Зачем нужна эта функция?
С помощью этой функции вы можете настроить, как будут выглядеть постоянные ссылки для ваших типов записей. Это может помочь улучшить SEO и сделать ссылки более понятными для пользователей.
## Что возвращает функция?
Функция ничего не возвращает (null).
## Как использовать?
Функция имеет следующий синтаксис:
```php
add_permastruct( $name, $struct, $args );
Параметры:
- $name (string) — обязательный, имя для структуры постоянной ссылки.
- $struct (string) — обязательный, структура постоянной ссылки.
- $args (array) — параметры для формировании правил на основе структуры постоянной ссылки. По умолчанию является пустым массивом.
Примеры использования
Пример 1: Дружелюбные URL для пользовательского типа записи книги
Предположим, что при регистрации типа записи с помощью функции register_post_type() вы указали параметр rewrite=false. Теперь вы хотите вручную настроить дружелюбные URL для этого типа записи. Для этого используйте следующий код:
add_action( 'init', 'book_post_type_permastruct' );
function book_post_type_permastruct() {
$post_type = 'book';
$permastruct = "$post_type/%book%"; // Структура дружелюбного URL
$args = [
'with_front' => true, // Использовать переднюю часть URL
'paged' => true, // Разбивка на страницы
'ep_mask' => EP_NONE, // Маска конечной точки
'feed' => false, // Не использовать фид
'forcomments' => false, // Не для комментариев
'walk_dirs' => false, // Не обходить директории
'endpoints' => false, // Не использовать конечные точки
];
add_permastruct( $post_type, $permastruct, $args );
// Добавляем тег для повторного использования в ��труктуре постоянной ссылки.
add_rewrite_tag( "%book%", '([^/]+)', "post_type=$post_type&name=" );
}
Обратите внимание:
Третий параметр в add_permastruct() можно опустить — в этом случае будут использованы параметры по умолчанию.
После установки кода вам нужно сбросить правила постоянных ссылок. Это можно сделать, перейдя в раздел Настройки > Постоянные ссылки в административной панели. Либо выполните функцию flush_rewrite_rules():
// Сбросить правила переписывания, если ваши постоянные ссылки изменились (например, при активации плагина):
flush_rewrite_rules();
Примечания
- Для получения более подробной информации о функции вы можете ознакомиться с документацией
WP_Rewrite::add_permastruct(). - Глобальная переменная:
$wp_rewrite— компонент переписывания в WordPress.
Изменения
- Функция была введена в версии 3.0.0.
Код функции ADD_PERMASTRUCT
Вот как выглядит сама функция add_permastruct в файле wp-includes/rewrite.php:
function add_permastruct( $name, $struct, $args = array() ) {
global $wp_rewrite;
// Поддержка старых параметров: $with_front и $ep_mask.
if ( ! is_array( $args ) ) {
$args = array( 'with_front' => $args );
}
if ( func_num_args() === 4 ) {
$args['ep_mask'] = func_get_arg( 3 );
}
$wp_rewrite->add_permastruct( $name, $struct, $args );
}
Связанные функции
Вот некоторые функции, связанные с изменением и созданием постоянных ссылок:
add_rewrite_endpoint()add_rewrite_rule()add_rewrite_tag()flush_rewrite_rules()remove_permastruct()remove_rewrite_tag()save_mod_rewrite_rules()WP_Rewrite()WP_Rewrite::flush_rules()