Добавление структуры постоянных ссылок в WordPress: функция ADD_PERMASTRUCT()

# Функция 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()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *