- Описание класса
- Методы
- add_endpoint()
- add_external_rule()
- add_permastruct()
- add_rewrite_tag()
- add_rule()
- flush_rules()
- generate_rewrite_rule()
- generate_rewrite_rules()
- get_author_permastruct()
- get_category_permastruct()
- get_comment_feed_permastruct()
- get_date_permastruct()
- get_day_permastruct()
- get_extra_permastruct()
- get_feed_permastruct()
- get_month_permastruct()
- get_page_permastruct()
- get_search_permastruct()
- get_tag_permastruct()
- get_year_permastruct()
- iis7_url_rewrite_rules()
- init()
- mod_rewrite_rules()
- page_rewrite_rules()
- page_uri_index()
- preg_index()
- remove_permastruct()
- remove_rewrite_tag()
- rewrite_rules()
- set_category_base()
- set_permalink_structure()
- set_tag_base()
- using_index_permalinks()
- using_mod_rewrite_permalinks()
- using_permalinks()
- wp_rewrite_rules()
- __construct()
- Примеры использования
- Добавление новой структуры ссылок
- Обновление существующих тегов перезаписи
- Удаление правила перезаписи
- Генерация правил перезаписи на основе структуры ссылок
- Изменение базы категорий для ссылок
- Вопросы и ответы
- Как добавить новую структуру постоянных ссылок?
- Как удалить существующую структуру постоянных ссылок?
- Как добавить новый тег перезаписи?
- Как удалить существующий тег перезаписи?
- Как добавить новое правило перезаписи?
- Как удалить существующее правило перезаписи?
- Как сгенерировать правила перезаписи из структуры постоянных ссылок?
- Как получить структуру постоянных ссылок для категорий?
Описание класса
Класс «WP_Rewrite» является ядром для реализации API компонента перезаписи в WordPress. Он предоставляет методы для создания и управления правилами перезаписи URL-адресов сайта.
Этот класс отвечает за преобразование URL-адресов в набор переменных запроса, которые затем используются для определения контента, который должен быть отображен на странице. Он также управляет созданием и обновлением правил перезаписи, которые определяют, как URL-адрес должен быть преобразован в набор переменных запроса.
Методы
__construct()— Конструктор — вызывает методinit(), который запускает настройку.add_endpoint( $name, $places, $query_vars )— Добавляет конечную точку, например, /trackback/.add_external_rule( $regex, $redirect )— Добавляет правило перезаписи, которое не соответствует index.php.add_permastruct( $name, $struct, $args )— Добавляет новую структуру постоянных ссылок.add_rewrite_tag( $tag, $regex, $query )— Добавляет или обновляет существующие теги перезаписи (например, %postname%).add_rule( $regex, $query, $after )— Добавляет правило перезаписи, которое преобразует структуру URL-адреса в набор переменных запроса.flush_rules()— Удаляет правила перезаписи и затем создает их заново.generate_rewrite_rule( $permalink_structure, $walk_dirs )— Генерирует правила перезаписи с использованием структуры постоянных ссылок и только пройденных каталогов.generate_rewrite_rules( $permalink_structure )— Генерирует правила перезаписи из структуры постоянных ссылок.get_author_permastruct()— Возвращает структуру постоянных ссылок для авторов.get_category_permastruct()— Возвращает структуру постоянных ссылок для категорий.get_comment_feed_permastruct()— Возвращает структуру постоянных ссылок для лент комментариев.get_date_permastruct()— Возвращает структуру постоянных ссылок для даты с годом, месяцем и днем.get_day_permastruct()— Возвращает структуру постоянных ссылок для дня с месяцем и годом.get_extra_permastruct( $name )— Возвращает дополнительную структуру постоянных ссылок по имени.get_feed_permastruct()— Возвращает структуру постоянных ссылок для ленты.get_month_permastruct()— Возвращает структуру постоянных ссылок для месяца без дня и с годом.get_page_permastruct()— Возвращает структуру постоянных ссылок для страниц.get_search_permastruct()— Возвращает структуру постоянных ссылок для поиска.get_tag_permastruct()— Возвращает структуру постоянных ссылок для тегов.get_year_permastruct()— Возвращает структуру постоянных ссылок для года без месяца и дня.iis7_url_rewrite_rules()— Возвращает правила перезаписи в формате IIS7 URL Rewrite для записи в файл web.config.init()— Настраивает свойства объекта.mod_rewrite_rules()— Возвращает правила перезаписи в формате mod_rewrite для записи в файл .htaccess.page_rewrite_rules()— Возвращает все правила перезаписи для страниц.page_uri_index()— Возвращает все страницы и вложения для URI страниц.preg_index( $number )— Индексы для совпадений для использования в функциях preg_*().remove_permastruct( $name )— Удаляет структуру постоянных ссылок.remove_rewrite_tag( $tag )— Удаляет существующий тег перезаписи.rewrite_rules()— Создает совпадения перезаписи и запросы из структуры постоянных ссылок.set_category_base( $base )— Устанавливает базу категорий для постоянных ссылок категорий.set_permalink_structure( $permalink_structure )— Устанавливает основную структуру постоянных ссылок для сайта.set_tag_base( $base )— Устанавливает базу тегов для постоянных ссылок тегов.using_index_permalinks()— Определяет, используются ли постоянные ссылки и модуль перезаписи не включен.using_mod_rewrite_permalinks()— Определяет, используются ли постоянные ссылки и модуль перезаписи включен.using_permalinks()— Определяет, используются ли постоянные ссылки.wp_rewrite_rules()— Возвращает правила перезаписи.
Методы
add_endpoint()
Метод add_endpoint() класса WP_Rewrite используется для добавления конечной точки (endpoint) в URL-адреса WordPress. Конечная точка представляет собой дополнительный сегмент в URL, который может быть использован для обработки определенных запросов или действий. Например, можно добавить конечную точку /trackback/, чтобы обрабатывать запросы на отслеживание обратных ссылок.
WP_Rewrite::add_endpoint( string $name, int $places, string|bool $query_var = true ) Метод add_endpoint() принимает три параметра:
$name(обязательный) — имя конечной точки.$places(обязательный) — маска конечной точки, описывающая места, где конечная точка должна быть добавлена. Принимает одну из следующих масок: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.$query_var(необязательный) — имя соответствующей переменной запроса. Передайте значениеfalse, чтобы пропустить регистрацию переменной запроса для этой конечной точки. По умолчанию используется значение$name.
<?php
// Добавляем конечную точку "trackback"
WP_Rewrite::add_endpoint( 'trackback', EP_PERMALINK | EP_PAGES );
/*
* Параметры метода add_endpoint():
* $name - "trackback"
* $places - EP_PERMALINK | EP_PAGES
* $query_var - true (по умолчанию)
*/
?> В приведенном выше примере мы используем метод add_endpoint() для добавления конечной точки с именем «trackback». Маска конечной точки состоит из двух значений: EP_PERMALINK и EP_PAGES. Это означает, что конечная точка будет добавлена во все постоянные ссылки и страницы WordPress. По умолчанию будет зарегистрирована переменная запроса с именем «trackback».
Обратите внимание, что в примере используются комментарии PHP для объяснения каждого параметра метода add_endpoint().
add_external_rule()
Метод add_external_rule() класса WP_Rewrite используется для добавления правила перезаписи, которое не соответствует файлу index.php. Этот метод позволяет создавать пользовательские правила перезаписи для обработки запросов к WordPress.
WP_Rewrite::add_external_rule( string $regex, string $query ) Метод add_external_rule() принимает два обязательных параметра:
$regex(строка) — Регулярное выражение для сопоставления с запросом.$query(строка) — Соответствующие переменные запроса для этого правила перезаписи.
Метод add_external_rule() принимает следующие параметры:
$regex(строка, обязательный) — Регулярное выражение для сопоставления с запросом. Это регулярное выражение должно быть совместимо с PCRE (Perl Compatible Regular Expressions).$query(строка, обязательный) — Соответствующие переменные запроса для этого правила перезаписи. Это строка, содержащая переменные запроса в форматеkey=value&key2=value2.
<?php
/**
* Добавление пользовательского правила перезаписи.
*
* @param string $regex Регулярное выражение для сопоставления с запросом.
* @param string $query Соответствующие переменные запроса для этого правила перезаписи.
*/
WP_Rewrite::add_external_rule( $regex, $query );
?> add_permastruct()
Метод add_permastruct() класса WP_Rewrite используется для добавления новой структуры постоянных ссылок.
Он позволяет создавать пользовательские шаблоны URL-адресов для различных типов записей, таких как категории, метки, авторы и т. д.
Этот метод добавляет новую структуру ссылок, которая будет использоваться при генерации URL-адресов для соответствующих типов записей.
WP_Rewrite::add_permastruct( string $name, string $struct, array $args = array() ) Метод add_permastruct() принимает три параметра:
$name(обязательный) — Название для структуры постоянных ссылок.$struct(обязательный) — Структура постоянных ссылок (например, category/%category%).$args(необязательный) — Аргументы для создания правил перезаписи на основе структуры постоянных ссылок.
$name (string) — Обязательный. Название для структуры постоянных ссылок.
$struct (string) — Обязательный. Структура постоянных ссылок (например, category/%category%).
$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) — По умолчанию пустой массив.
<?php
/**
* Пример использования метода add_permastruct()
*/
// Добавляем структуру постоянных ссылок для категорий
WP_Rewrite::add_permastruct( 'category', 'category/%category%', array(
'with_front' => false,
'ep_mask' => EP_CATEGORIES,
'paged' => true,
'feed' => true,
'forcomments' => false,
'walk_dirs' => true,
'endpoints' => true,
) );
?> В этом примере мы добавляем новую структуру постоянных ссылок для категорий. Структура будет иметь вид «category/%category%». Мы также указываем некоторые дополнительные аргументы, такие как отключение префикса WP_Rewrite::$front, добавление правил пагинации архива и правил перезаписи для ленты.
add_rewrite_tag()
Метод add_rewrite_tag() добавляет или обновляет существующие теги перезаписи (например, %postname%). Он используется для определения пользовательских тегов, которые могут быть использованы в правилах перезаписи.
WP_Rewrite::add_rewrite_tag( string $tag, string $regex, string $query ); Метод add_rewrite_tag() принимает три обязательных параметра:
$tag(строка) — Название тега перезаписи, который нужно добавить или обновить.$regex(строка) — Регулярное выражение, которое будет заменять тег в правилах перезаписи.$query(строка) — Строка, которая будет добавлена к измененному запросу. Должна заканчиваться символом ‘=’.
/**
* Добавление пользовательского тега перезаписи.
*
* @param string $tag Название тега перезаписи.
* @param string $regex Регулярное выражение для замены тега.
* @param string $query Строка для добавления к запросу.
*/
WP_Rewrite::add_rewrite_tag( 'custom_tag', '([^/]+)', 'custom_query=' );
В этом примере мы добавляем пользовательский тег перезаписи с названием ‘custom_tag’. Регулярное выражение ‘([^/]+)’ будет заменять этот тег в правилах перезаписи. Строка ‘custom_query=’ будет добавлена к измененному запросу.
$tag(строка, обязательный) — Название тега перезаписи, который нужно добавить или обновить.$regex(строка, обязательный) — Регулярное выражение, которое будет заменять тег в правилах перезаписи.$query(строка, обязательный) — Строка, которая будет добавлена к измененному запросу. Должна заканчиваться символом ‘=’.
add_rule()
Метод add_rule() класса WP_Rewrite используется для добавления правил перезаписи, которые преобразуют структуру URL в набор переменных запроса. Он позволяет определить пользовательские правила перезаписи для обработки определенных URL-адресов.
WP_Rewrite::add_rule( string $regex, string|array $query, string $after = 'bottom' )
Где:
$regex(обязательный) — Регулярное выражение, с которым будет сопоставляться запрос.$query(обязательный) — Соответствующие переменные запроса для данного правила перезаписи.$after(необязательный) — Приоритет нового правила. Принимает значения ‘top’ или ‘bottom’. По умолчанию ‘bottom’.
<?php
// Добавляем правило перезаписи для преобразования URL-адреса в переменные запроса
$wp_rewrite->add_rule( 'news/([^/]+)/page/?([0-9]{1,})/?$', 'index.php?category_name=$matches[1]&paged=$matches[2]', 'top' );
?>
В данном примере мы добавляем правило перезаписи, которое преобразует URL-адрес вида news/{category}/{page} в переменные запроса category_name и paged. Здесь $matches[1] соответствует значению {category}, а $matches[2] соответствует значению {page}. Приоритет нового правила установлен в ‘top’, что означает, что оно будет обрабатываться раньше других правил перезаписи.
$regex (string) — Обязательный. Регулярное выражение, с которым будет сопоставляться запрос.
$query (string|array) — Обязательный. Соответствующие переменные запроса для данного правила перезаписи.
$after (string) — Необязательный. Приоритет нового правила. Принимает значения ‘top’ или ‘bottom’. По умолчанию ‘bottom’.
Примечание: Метод add_rule() должен вызываться после инициализации объекта WP_Rewrite.
flush_rules()
Метод flush_rules() класса WP_Rewrite используется для удаления существующих правил перезаписи и последующего создания новых правил перезаписи. Этот метод обновляет правила перезаписи, которые используются WordPress для преобразования URL-адресов и обработки запросов.
WP_Rewrite::flush_rules( bool $hard = true ) Метод flush_rules() принимает один необязательный параметр:
$hard: Логическое значение, указывающее, нужно ли обновить файл .htaccess (полная перезапись) или просто обновить опциюrewrite_rules(частичная перезапись). По умолчанию установлено значениеtrue(полная перезапись).
$hard (тип: bool, необязательный): Указывает, нужно ли обновить файл .htaccess (полная перезапись) или просто обновить опцию rewrite_rules (частичная перезапись). По умолчанию установлено значение true (полная перезапись).
<?php
// Обновление правил перезаписи с полной перезаписью .htaccess
$wp_rewrite = new WP_Rewrite();
$wp_rewrite->flush_rules(true);
// Обновление правил перезаписи с частичной перезаписью опции rewrite_rules
$wp_rewrite = new WP_Rewrite();
$wp_rewrite->flush_rules(false);
?> generate_rewrite_rule()
Метод generate_rewrite_rule() класса WP_Rewrite используется для генерации правил перезаписи с учетом структуры постоянных ссылок и только для просмотра каталогов.
WP_Rewrite::generate_rewrite_rule( string $permalink_structure, bool $walk_dirs = false ): array Метод generate_rewrite_rule() принимает два параметра:
$permalink_structure(обязательный) — структура постоянных ссылок для генерации правил.$walk_dirs(необязательный) — флаг, указывающий, нужно ли создавать список каталогов для обхода. По умолчанию:false.
$permalink_structure (string) — Обязательный. Структура постоянных ссылок для генерации правил.
$walk_dirs (bool) — Необязательный. Флаг, указывающий, нужно ли создавать список каталогов для обхода. По умолчанию: false.
Метод generate_rewrite_rule() возвращает массив правил перезаписи, сгруппированных по их регулярному выражению.
<?php
/**
* Пример использования метода generate_rewrite_rule()
*/
// Структура постоянных ссылок
$permalink_structure = '/%category%/%postname%/';
// Создание правил перезаписи
$rewrite_rules = WP_Rewrite::generate_rewrite_rule( $permalink_structure, true );
// Вывод правил перезаписи
echo '<pre>';
print_r( $rewrite_rules );
echo '</pre>';
?> generate_rewrite_rules()
Метод generate_rewrite_rules() класса WP_Rewrite используется для генерации правил перезаписи из структуры постоянных ссылок.
Этот метод принимает структуру постоянных ссылок в качестве обязательного параметра и генерирует массив правил перезаписи, которые используются для преобразования URL-адресов во внутренние запросы WordPress.
Метод generate_rewrite_rules() обрабатывает структуру постоянных ссылок и создает правила перезаписи, которые определяют, как URL-адреса будут преобразовываться в запросы WordPress. Это может включать в себя добавление правил для архивных страниц, пагинации, каналов ленты, комментариев и других типов страниц.
WP_Rewrite::generate_rewrite_rules( string $permalink_structure, int $ep_mask = EP_NONE, bool $paged = true, bool $feed = true, bool $forcomments = false, bool $walk_dirs = true, bool $endpoints = true ): string[] Метод generate_rewrite_rules() принимает следующие параметры:
$permalink_structure(обязательный) — Структура постоянных ссылок.$ep_mask(необязательный) — Маска конечных точек, определяющая, какие конечные точки добавляются в структуру. Принимает одну из следующих масок: 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(необязательный) — Определяет, должны ли быть добавлены правила пагинации для архивных страниц. По умолчанию: true.$feed(необязательный) — Определяет, должны ли быть добавлены правила перезаписи для ленты. По умолчанию: true.$forcomments(необязательный) — Определяет, должны ли правила ленты быть запросом для ленты комментариев. По умолчанию: false.$walk_dirs(необязательный) — Определяет, должны ли «каталоги», составляющие структуру, быть обработаны и созданы правила перезаписи для каждого из них. По умолчанию: true.$endpoints(необязательный) — Определяет, должны ли конечные точки быть применены к сгенерированным правилам перезаписи. По умолчанию: true.
Метод generate_rewrite_rules() принимает следующие параметры:
$permalink_structure(обязательный) — Структура постоянных ссылок.$ep_mask(необязательный) — Маска конечных точек, определяющая, какие конечные точки добавляются в структуру. Принимает одну из следующих масок: 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(необязательный) — Определяет, должны ли быть добавлены правила пагинации для архивных страниц. По умолчанию: true.$feed(необязательный) — Определяет, должны ли быть добавлены правила перезаписи для ленты. По умолчанию: true.$forcomments(необязательный) — Определяет, должны ли правила ленты быть запросом для ленты комментариев. По умолчанию: false.$walk_dirs(необязательный) — Определяет, должны ли «каталоги», составляющие структуру, быть обработаны и созданы правила перезаписи для каждого из них. По умолчанию: true.$endpoints(необязательный) — Определяет, должны ли конечные точки быть применены к сгенерированным правилам перезаписи. По умолчанию: true.
Метод generate_rewrite_rules() возвращает массив правил перезаписи, сгруппированных по их регулярным выражениям.
<?php
/**
* Пример использования метода generate_rewrite_rules()
*/
// Создание экземпляра класса WP_Rewrite
$rewrite = new WP_Rewrite();
// Генерация правил перезаписи
$rewrite_rules = $rewrite->generate_rewrite_rules( '/%postname%/' );
// Вывод правил перезаписи
print_r( $rewrite_rules );
?> get_author_permastruct()
Метод get_author_permastruct() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Этот метод используется для получения структуры постоянной ссылки автора.
Метод get_author_permastruct() возвращает строку, представляющую структуру постоянной ссылки автора. Если структура постоянной ссылки автора не установлена, метод вернет значение false.
WP_Rewrite::get_author_permastruct(): string|false Метод get_author_permastruct() является публичным методом класса WP_Rewrite. Он возвращает строку, представляющую структуру постоянной ссылки автора. Если структура постоянной ссылки автора не установлена, метод вернет значение false.
Пример использования:
// Получение структуры постоянной ссылки автора
$author_permastruct = $wp_rewrite->get_author_permastruct(); В приведенном примере переменная $author_permastruct будет содержать строку, представляющую структуру постоянной ссылки автора.
Метод get_author_permastruct() возвращает строку, представляющую структуру постоянной ссылки автора в случае успеха. В случае неудачи метод вернет значение false.
get_category_permastruct()
Метод get_category_permastruct() класса WP_Rewrite используется для получения структуры постоянных ссылок для категорий. Он возвращает строку, представляющую структуру ссылки для категорий.
WP_Rewrite::get_category_permastruct(): string|false Метод get_category_permastruct() возвращает строку, представляющую структуру ссылки для категорий. Если структура ссылки для категорий не установлена, метод вернет false.
Метод get_category_permastruct() возвращает строку, представляющую структуру ссылки для категорий. В случае успеха возвращается строка, представляющая структуру ссылки для категорий. В случае неудачи метод вернет false.
get_comment_feed_permastruct()
Метод get_comment_feed_permastruct() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Он используется для получения структуры постоянных ссылок для комментариев.
Метод get_comment_feed_permastruct() извлекает структуру постоянных ссылок для комментариев из базы данных WordPress. Он возвращает строку, представляющую структуру ссылки для комментариев, или false в случае ошибки.
WP_Rewrite::get_comment_feed_permastruct(): string|false Метод get_comment_feed_permastruct() является публичным статическим методом класса WP_Rewrite. Он не принимает никаких аргументов.
Данный метод используется для получения структуры постоянных ссылок для комментариев. Он возвращает строку, представляющую структуру ссылки для комментариев, или false, если структура не найдена или произошла ошибка.
Метод get_comment_feed_permastruct() возвращает строку или false в зависимости от результата выполнения.
В случае успешного выполнения, метод возвращает строку, представляющую структуру ссылки для комментариев.
В случае ошибки или отсутствия структуры ссылки, метод возвращает false.
get_date_permastruct()
Метод get_date_permastruct() класса WP_Rewrite используется для получения структуры постоянных ссылок для даты, включающей год, месяц и день. Он возвращает строку, представляющую структуру ссылки, или false в случае ошибки.
Метод позволяет получить текущую настройку структуры ссылок для даты, которая используется в WordPress. Структура ссылки для даты может быть настроена в административной панели WordPress в разделе «Настройки» -> «Постоянные ссылки».
Структура ссылки для даты может содержать следующие элементы:
%year%— год%monthnum%— номер месяца%day%— день
Метод get_date_permastruct() полезен для разработчиков, которым необходимо получить текущую структуру ссылок для даты в своих проектах на WordPress.
WP_Rewrite::get_date_permastruct(): string|false Метод get_date_permastruct() возвращает строку или false.
Метод get_date_permastruct() возвращает строку, представляющую структуру ссылки для даты, включающую год, месяц и день, в случае успеха. В случае ошибки метод возвращает false.
get_day_permastruct()
Метод get_day_permastruct() класса WP_Rewrite используется для получения структуры постоянных ссылок для дней с учетом месяца и года.
Этот метод возвращает строку, содержащую структуру ссылки для дней с учетом месяца и года. Если структура ссылки не найдена, метод возвращает значение false.
WP_Rewrite::get_day_permastruct(): string|false Метод get_day_permastruct() является частью класса WP_Rewrite и доступен только через объект этого класса. Он не принимает никаких аргументов.
Пример использования:
$rewrite = new WP_Rewrite();
$day_permastruct = $rewrite->get_day_permastruct(); В этом примере создается объект класса WP_Rewrite и вызывается метод get_day_permastruct() для получения структуры ссылки для дней с учетом месяца и года. Результат сохраняется в переменной $day_permastruct.
Метод get_day_permastruct() возвращает строку, содержащую структуру ссылки для дней с учетом месяца и года в формате «Год/Месяц/День». В случае ошибки или отсутствия структуры ссылки, метод возвращает значение false.
get_extra_permastruct()
Метод get_extra_permastruct() класса WP_Rewrite используется для получения дополнительной структуры постоянных ссылок по имени.
Данный метод извлекает дополнительную структуру постоянных ссылок, которая была зарегистрирована с помощью метода add_extra_permastruct(). Он позволяет получить структуру ссылки, которая была определена для определенного типа записи или таксономии.
WP_Rewrite::get_extra_permastruct( string $name ): string|false Метод get_extra_permastruct() принимает один обязательный параметр:
$name(string) — Название структуры постоянных ссылок.
$name (string) — Обязательный. Название структуры постоянных ссылок.
Метод get_extra_permastruct() возвращает строку структуры постоянных ссылок в случае успеха и false в случае ошибки.
<?php
/**
* Пример использования метода get_extra_permastruct()
*/
// Получаем объект класса WP_Rewrite
$rewrite = new WP_Rewrite();
// Получаем структуру постоянных ссылок для типа записи "book"
$book_permastruct = $rewrite->get_extra_permastruct( 'book' );
// Выводим структуру постоянных ссылок
echo $book_permastruct;
?> get_feed_permastruct()
Метод get_feed_permastruct() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Он используется для получения структуры постоянных ссылок для лент новостей.
WP_Rewrite::get_feed_permastruct(): string|false Метод get_feed_permastruct() возвращает строку, представляющую структуру постоянных ссылок для лент новостей. Если структура существует, метод возвращает строку, в противном случае возвращается значение false.
Метод get_feed_permastruct() возвращает структуру постоянных ссылок для лент новостей в виде строки. В случае успеха возвращается строка, а в случае ошибки возвращается значение false.
get_month_permastruct()
Метод get_month_permastruct() класса WP_Rewrite возвращает структуру постоянных ссылок для месяца без указания дня и с указанием года. Он используется для получения формата ссылки на архив месяца в WordPress.
WP_Rewrite::get_month_permastruct(): string|false Метод get_month_permastruct() возвращает строку, представляющую структуру ссылки на архив месяца без указания дня и с указанием года. Если структура ссылки не найдена, метод вернет false.
Метод get_month_permastruct() возвращает строку, представляющую структуру ссылки на архив месяца без указания дня и с указанием года. В случае успешного выполнения метод возвращает строку, в противном случае возвращает false.
get_page_permastruct()
Метод get_page_permastruct() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Он используется для получения структуры постоянных ссылок страницы.
Метод get_page_permastruct() возвращает структуру постоянных ссылок страницы, которая определена в настройках WordPress. Если структура постоянных ссылок страницы не определена, метод вернет значение false.
WP_Rewrite::get_page_permastruct(): string|false
Метод get_page_permastruct() не принимает никаких аргументов.
Пример использования:
$rewrite = new WP_Rewrite();
$page_permastruct = $rewrite->get_page_permastruct();
В данном примере создается объект класса WP_Rewrite, а затем вызывается метод get_page_permastruct() для получения структуры постоянных ссылок страницы.
Метод get_page_permastruct() возвращает строку, представляющую структуру постоянных ссылок страницы. В случае успеха, метод возвращает структуру постоянных ссылок страницы. В случае ошибки, метод возвращает значение false.
get_search_permastruct()
Метод get_search_permastruct() класса WP_Rewrite используется для получения структуры постоянных ссылок для поиска.
Класс WP_Rewrite является основным классом, используемым для реализации API компонента перезаписи в WordPress.
WP_Rewrite::get_search_permastruct(): string|false Метод get_search_permastruct() возвращает строку с структурой постоянных ссылок для поиска или false в случае ошибки.
Код:
// Получение структуры постоянных ссылок для поиска
$search_permastruct = $wp_rewrite->get_search_permastruct(); Комментарии к коду:
$wp_rewrite— объект классаWP_Rewrite, через который вызывается метод.$search_permastruct— переменная, в которую сохраняется результат вызова метода.
Метод get_search_permastruct() возвращает строку с структурой постоянных ссылок для поиска в случае успеха или false в случае ошибки.
get_tag_permastruct()
Метод get_tag_permastruct() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Этот метод используется для получения структуры постоянных ссылок для меток.
Метод get_tag_permastruct() возвращает структуру постоянных ссылок для меток, которая определена в настройках WordPress. Если структура постоянных ссылок для меток не определена, метод вернет значение false.
WP_Rewrite::get_tag_permastruct(): string|false Метод get_tag_permastruct() является публичным и статическим, поэтому его можно вызывать напрямую из класса WP_Rewrite. Он не принимает никаких аргументов.
Пример использования:
$tag_permastruct = WP_Rewrite::get_tag_permastruct(); В этом примере переменной $tag_permastruct будет присвоено значение структуры постоянных ссылок для меток, если она определена. В противном случае, переменной будет присвоено значение false.
Метод get_tag_permastruct() возвращает структуру постоянных ссылок для меток в виде строки. В случае успеха, метод вернет строку с структурой постоянных ссылок для меток. В случае неудачи, метод вернет значение false.
get_year_permastruct()
Метод get_year_permastruct() класса WP_Rewrite используется для получения структуры постоянных ссылок года без указания месяца и дня.
Этот метод возвращает строку, содержащую структуру постоянных ссылок года, которая используется в WordPress. Если структура постоянных ссылок года не установлена, метод вернет значение false.
WP_Rewrite::get_year_permastruct(): string|false Метод get_year_permastruct() является частью класса WP_Rewrite и доступен для использования в любом месте веб-разработки WordPress. Он возвращает строку, содержащую структуру постоянных ссылок года, если она установлена, или значение false, если структура не установлена.
Пример использования:
// Получение структуры постоянных ссылок года
$year_permastruct = WP_Rewrite::get_year_permastruct();
if ($year_permastruct) {
echo 'Структура постоянных ссылок года: ' . $year_permastruct;
} else {
echo 'Структура постоянных ссылок года не установлена.';
} В этом примере мы используем метод get_year_permastruct() для получения структуры постоянных ссылок года. Если структура установлена, она будет выведена на экран, иначе будет выведено сообщение о том, что структура не установлена.
Метод get_year_permastruct() возвращает строку, содержащую структуру постоянных ссылок года, если она установлена. В случае, если структура не установлена, метод вернет значение false.
iis7_url_rewrite_rules()
Метод iis7_url_rewrite_rules() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Данный метод используется для извлечения правил перезаписи URL, отформатированных для IIS7 URL Rewrite, с целью записи в файл web.config.
WP_Rewrite::iis7_url_rewrite_rules( bool $add_parent_tags = false ): string Метод iis7_url_rewrite_rules() принимает один необязательный параметр:
$add_parent_tags(тип: bool, по умолчанию: false) — указывает, нужно ли добавлять родительские теги к наборам правил перезаписи. Если значение равно true, то будут добавлены родительские теги, в противном случае — нет.
Метод iis7_url_rewrite_rules() принимает следующий параметр:
$add_parent_tags(тип: bool, по умолчанию: false) — Опциональный параметр, указывающий, нужно ли добавлять родительские теги к наборам правил перезаписи. Если значение равно true, то будут добавлены родительские теги, в противном случае — нет.
Метод iis7_url_rewrite_rules() возвращает строку, содержащую наборы правил перезаписи URL для IIS7.
<?php
/**
* Пример использования метода iis7_url_rewrite_rules()
*
* @param bool $add_parent_tags Опциональный параметр. Указывает, нужно ли добавлять родительские теги к наборам правил перезаписи.
* @return string Наборы правил перезаписи URL для IIS7.
*/
$rewrite_rules = WP_Rewrite::iis7_url_rewrite_rules( true );
?> init()
Метод init() является методом класса WP_Rewrite, который используется для настройки свойств объекта. Он выполняется при инициализации объекта и устанавливает значения для свойств, необходимых для работы компонента перезаписи URL.
Метод init() является внутренним методом и не предназначен для использования в пользовательском коде. Он вызывается автоматически при создании объекта класса WP_Rewrite.
WP_Rewrite::init();
Метод init() вызывается автоматически при создании объекта класса WP_Rewrite. Он не требует явного вызова из пользовательского кода.
Этот метод выполняет настройку свойств объекта WP_Rewrite, необходимых для работы компонента перезаписи URL. Он устанавливает значения по умолчанию и выполняет другие необходимые действия для инициализации компонента.
mod_rewrite_rules()
Метод mod_rewrite_rules() является частью класса WP_Rewrite и используется для извлечения правил перезаписи, отформатированных в стиле mod_rewrite, для записи в файл .htaccess. Он возвращает строку с правилами перезаписи, которые могут быть использованы для настройки URL-адресов в WordPress.
WP_Rewrite::mod_rewrite_rules() Метод mod_rewrite_rules() не принимает никаких аргументов.
Код возвращает строку с правилами перезаписи в формате mod_rewrite.
Пример использования:
$rewrite_rules = WP_Rewrite::mod_rewrite_rules();
echo $rewrite_rules; В этом примере мы вызываем метод mod_rewrite_rules() и сохраняем возвращаемое значение в переменную $rewrite_rules. Затем мы выводим эти правила перезаписи на экран.
Метод mod_rewrite_rules() возвращает строку с правилами перезаписи в формате mod_rewrite.
page_rewrite_rules()
Метод page_rewrite_rules() является частью класса WP_Rewrite и используется для получения всех правил перезаписи для страниц WordPress.
Он возвращает массив строк, представляющих правила перезаписи для страниц.
Метод page_rewrite_rules() работает следующим образом:
- Получает текущие настройки перезаписи из глобальной переменной
$wp_rewrite. - Проверяет, были ли уже получены правила перезаписи для страниц.
- Если правила уже получены, возвращает их в виде массива строк.
- Если правила еще не получены, вызывает метод
rewrite_rules()классаWP_Rewriteдля получения всех правил перезаписи. - Фильтрует полученные правила, оставляя только те, которые относятся к страницам.
- Сохраняет полученные правила в глобальной переменной
$wp_rewriteдля последующего использования. - Возвращает полученные правила в виде массива строк.
WP_Rewrite::page_rewrite_rules() Метод page_rewrite_rules() не принимает аргументов.
Код метода:
public function page_rewrite_rules() {
global $wp_rewrite;
// Check if page rewrite rules have already been generated
if ( isset( $wp_rewrite->rules['page'] ) ) {
return $wp_rewrite->rules['page'];
}
// Generate rewrite rules
$rewrite_rules = $this->rewrite_rules();
// Filter out non-page rewrite rules
$page_rewrite_rules = array_filter( $rewrite_rules, array( $this, 'is_page_rewrite_rule' ) );
// Save page rewrite rules
$wp_rewrite->rules['page'] = $page_rewrite_rules;
return $page_rewrite_rules;
}
Комментарии к коду:
- Глобальная переменная
$wp_rewriteсодержит экземпляр классаWP_Rewrite, который используется для работы с правилами перезаписи. - Метод проверяет, были ли уже получены правила перезаписи для страниц, и если да, возвращает их.
- Если правила еще не получены, метод вызывает метод
rewrite_rules()классаWP_Rewriteдля их генерации. - Полученные правила фильтруются с помощью функции
array_filter(), чтобы оставить только те, которые относятся к страницам. - Полученные правила сохраняются в глобальной переменной
$wp_rewriteдля последующего использования. - Метод возвращает полученные правила в виде массива строк.
Метод page_rewrite_rules() возвращает массив строк, представляющих правила перезаписи для страниц WordPress.
Тип возвращаемого значения: string[]
Описание возвращаемого значения: Page rewrite rules.
page_uri_index()
Метод page_uri_index() класса WP_Rewrite используется для получения всех страниц и вложений страниц в виде URI.
WP_Rewrite::page_uri_index(): array
Метод page_uri_index() возвращает массив, содержащий URI страниц в качестве первого элемента и URI вложений страниц в качестве второго элемента.
Метод page_uri_index() возвращает массив, содержащий URI страниц в качестве первого элемента и URI вложений страниц в качестве второго элемента.
preg_index()
Метод preg_index() является частью класса WP_Rewrite и используется для получения индексов совпадений для использования в функциях preg_*. Он возвращает строку, содержащую индекс совпадения.
WP_Rewrite::preg_index( int $number ): string Метод preg_index() принимает один обязательный параметр:
$number(int) — Номер индекса. Это обязательный параметр.
Метод preg_index() принимает следующий параметр:
$number(int) — Номер индекса. Это обязательный параметр.
Параметр $number определяет номер индекса совпадения, который нужно получить.
Метод preg_index() возвращает строку, содержащую индекс совпадения.
<?php
/**
* Пример использования метода preg_index()
*
* @param int $number Номер индекса.
* @return string Строка, содержащая индекс совпадения.
*/
$index = WP_Rewrite::preg_index( $number );
?> remove_permastruct()
Метод remove_permastruct() класса WP_Rewrite используется для удаления структуры постоянных ссылок (permalink structure) в WordPress.
Структура постоянных ссылок определяет формат URL-адресов страниц, записей, категорий и других типов контента на сайте. Метод remove_permastruct() позволяет удалить определенную структуру постоянных ссылок, что приведет к изменению формата URL-адресов для соответствующего типа контента.
WP_Rewrite::remove_permastruct( string $name ) Метод remove_permastruct() принимает один обязательный параметр:
$name(string) — Название структуры постоянных ссылок, которую необходимо удалить.
$name (string) — Обязательный параметр. Название структуры постоянных ссылок, которую необходимо удалить.
<?php
/**
* Удаляет структуру постоянных ссылок для записей.
*
* @param string $name Название структуры постоянных ссылок.
*/
WP_Rewrite::remove_permastruct( 'post' );
?> remove_rewrite_tag()
Метод remove_rewrite_tag() класса WP_Rewrite используется для удаления существующего тега перезаписи.
Этот метод позволяет удалить тег перезаписи, который был ранее добавлен с помощью метода add_rewrite_tag(). Удаление тега перезаписи может быть полезно, если вы больше не хотите использовать этот тег или если он больше не требуется в вашем проекте.
WP_Rewrite::remove_rewrite_tag( string $tag ) Метод remove_rewrite_tag() принимает один обязательный параметр:
$tag(строка) — Название тега перезаписи, который нужно удалить.
Пример использования метода remove_rewrite_tag():
// Удаляем тег перезаписи с названием 'product'
WP_Rewrite::remove_rewrite_tag( 'product' ); В этом примере мы удаляем тег перезаписи с названием ‘product’.
Метод remove_rewrite_tag() принимает следующий параметр:
$tag(строка, обязательный) — Название тега перезаписи, который нужно удалить.
Параметр $tag должен быть строкой, содержащей название тега перезаписи, который нужно удалить.
<?php
/**
* Удаляем тег перезаписи с названием 'product'
*/
WP_Rewrite::remove_rewrite_tag( 'product' );
?> В этом примере мы удаляем тег перезаписи с названием ‘product’.
rewrite_rules()
Метод rewrite_rules() является частью класса WP_Rewrite и используется для конструирования совпадений перезаписи и запросов из структуры постоянных ссылок. Он позволяет настраивать правила перезаписи URL-адресов в WordPress.
Этот метод принимает на вход никаких аргументов и возвращает ассоциативный массив с совпадениями и запросами.
WP_Rewrite::rewrite_rules(); Метод rewrite_rules() вызывается статически, используя имя класса WP_Rewrite и оператор двойного двоеточия ::. Он не принимает никаких аргументов.
Этот метод возвращает ассоциативный массив, содержащий совпадения и запросы для правил перезаписи URL-адресов.
Метод rewrite_rules() возвращает ассоциативный массив с совпадениями и запросами для правил перезаписи URL-адресов. Каждый элемент массива представляет собой пару ключ-значение, где ключ — это совпадение, а значение — это запрос.
set_category_base()
Метод set_category_base() класса WP_Rewrite используется для установки базового пути категории для постоянных ссылок категорий.
Категории в WordPress имеют свои постоянные ссылки, которые включают базовый путь. Этот метод позволяет установить пользовательский базовый путь категории, который будет использоваться вместо значения по умолчанию.
Например, если вы установите базовый путь категории на «blog», то ссылка на категорию «новости» будет выглядеть так: http://example.com/blog/%category%.
WP_Rewrite::set_category_base( string $category_base ) Метод set_category_base() принимает один обязательный параметр:
$category_base(строка) — Базовый путь категории для постоянных ссылок. Обязательный параметр.
Пример использования:
// Установить базовый путь категории на "blog"
WP_Rewrite::set_category_base( 'blog' ); Метод set_category_base() принимает следующий параметр:
$category_base(строка) — Базовый путь категории для постоянных ссылок. Это обязательный параметр.
Параметр $category_base должен быть строкой, содержащей пользовательский базовый путь категории.
<?php
/**
* Установить базовый путь категории на "blog"
*/
WP_Rewrite::set_category_base( 'blog' );
?> set_permalink_structure()
Метод set_permalink_structure() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Данный метод устанавливает основную структуру постоянных ссылок для сайта.
WP_Rewrite::set_permalink_structure( string $permalink_structure ) Метод set_permalink_structure() принимает один обязательный параметр:
$permalink_structure(строка, обязательный) — Структура постоянных ссылок.
Метод не возвращает значения.
$permalink_structure (строка, обязательный) — Определяет структуру постоянных ссылок для сайта. Эта строка должна содержать специальные теги, которые будут заменены на соответствующие значения при генерации ссылок. Например, %postname% будет заменен на слаг (часть URL) поста.
<?php
/**
* Устанавливает структуру постоянных ссылок для сайта.
*
* @param string $permalink_structure Структура постоянных ссылок.
*/
WP_Rewrite::set_permalink_structure( $permalink_structure );
?> set_tag_base()
Метод set_tag_base() класса WP_Rewrite используется для установки базовой структуры ссылок на метки (теги) в WordPress. Он позволяет задать пользовательский URL-адрес для меток, который будет использоваться вместо стандартного.
WP_Rewrite::set_tag_base( string $tag_base ) Метод set_tag_base() принимает один обязательный параметр:
$tag_base(string) — Базовая структура URL-адреса для меток. Обязательный параметр.
Метод не возвращает значения.
$tag_base (string) — Обязательный параметр. Определяет базовую структуру URL-адреса для меток. Это должна быть строка, содержащая текст, который будет использоваться в URL-адресе метки. Например, если вы установите $tag_base в «tags», то URL-адрес метки будет иметь вид «http://example.com/tags/метка».
<?php
/**
* Пример использования метода set_tag_base()
*
* Установка базовой структуры URL-адреса для меток на "tags".
*/
$wp_rewrite = new WP_Rewrite();
$wp_rewrite->set_tag_base( 'tags' );
?> В приведенном выше примере кода создается новый экземпляр класса WP_Rewrite, а затем вызывается метод set_tag_base() для установки базовой структуры URL-адреса для меток на «tags». Это означает, что URL-адрес метки будет иметь вид «http://example.com/tags/метка».
using_index_permalinks()
Метод using_index_permalinks() является частью класса WP_Rewrite, который является основным классом для реализации API компонента перезаписи в WordPress. Данный метод определяет, используются ли постоянные ссылки и отключен ли модуль перезаписи.
Метод using_index_permalinks() проверяет, включены ли постоянные ссылки и отключен ли модуль перезаписи. Если постоянные ссылки включены и модуль перезаписи отключен, то метод возвращает значение true, в противном случае — false.
WP_Rewrite::using_index_permalinks(): bool Метод using_index_permalinks() не принимает никаких аргументов.
Пример использования:
$rewrite = new WP_Rewrite();
$using_index_permalinks = $rewrite->using_index_permalinks();
В данном примере создается новый объект класса WP_Rewrite, а затем вызывается метод using_index_permalinks(), который возвращает значение true или false в зависимости от того, используются ли постоянные ссылки и отключен ли модуль перезаписи.
Метод using_index_permalinks() возвращает значение типа bool. Если постоянные ссылки включены и модуль перезаписи отключен, то метод возвращает true. В противном случае, метод возвращает false. Это позволяет разработчикам узнать, используются ли постоянные ссылки и отключен ли модуль перезаписи в текущей установке WordPress.
using_mod_rewrite_permalinks()
Метод using_mod_rewrite_permalinks() класса WP_Rewrite используется для определения, используются ли ЧПУ (человеко-понятные урлы) и включен ли модуль перезаписи веб-сервера.
Метод проверяет, включена ли опция «Постоянные ссылки» в настройках WordPress и возвращает true, если она включена и модуль перезаписи веб-сервера также включен. В противном случае метод возвращает false.
WP_Rewrite::using_mod_rewrite_permalinks(): bool
Метод using_mod_rewrite_permalinks() не принимает аргументов.
Пример использования:
$rewrite = new WP_Rewrite();
$using_mod_rewrite_permalinks = $rewrite->using_mod_rewrite_permalinks();
В данном примере создается объект класса WP_Rewrite и вызывается метод using_mod_rewrite_permalinks() для проверки использования ЧПУ и включенности модуля перезаписи веб-сервера.
Метод using_mod_rewrite_permalinks() возвращает значение типа bool. Если ЧПУ включены и веб-сервер использует модуль перезаписи, метод вернет true. В противном случае метод вернет false.
using_permalinks()
Метод using_permalinks() класса WP_Rewrite используется для определения, используются ли в данный момент постоянные ссылки (пермалинки) на сайте WordPress.
Он проверяет значение опции permalink_structure в таблице wp_options базы данных WordPress и возвращает true, если постоянные ссылки включены, и false, если они отключены.
WP_Rewrite::using_permalinks(); Этот код проверяет, используются ли в данный момент постоянные ссылки на сайте WordPress.
Метод не принимает никаких аргументов.
Метод using_permalinks() возвращает значение типа bool.
Он возвращает true, если постоянные ссылки включены, и false, если они отключены.
wp_rewrite_rules()
Метод wp_rewrite_rules() является частью класса WP_Rewrite и используется для извлечения правил перезаписи (rewrite rules) из базы данных WordPress.
Правила перезаписи определяют, как WordPress обрабатывает URL-адреса и преобразует их в запросы к базе данных. Эти правила позволяют создавать красивые и понятные URL-адреса для страниц, записей, категорий и других типов контента.
Метод wp_rewrite_rules() возвращает массив правил перезаписи, где каждое правило представлено в виде ключа, соответствующего регулярному выражению, и значения, содержащего информацию о том, как обрабатывать соответствующий URL-адрес.
WP_Rewrite::wp_rewrite_rules(): string[] Метод wp_rewrite_rules() вызывается как статический метод класса WP_Rewrite. Он не принимает никаких аргументов.
Этот метод возвращает массив правил перезаписи, где каждое правило представлено в виде ключа, соответствующего регулярному выражению, и значения, содержащего информацию о том, как обрабатывать соответствующий URL-адрес.
Пример использования:
$rewrite = WP_Rewrite::wp_rewrite_rules();
В переменной $rewrite будет содержаться массив правил перезаписи.
Метод wp_rewrite_rules() возвращает массив правил перезаписи, где каждое правило представлено в виде ключа, соответствующего регулярному выражению, и значения, содержащего информацию о том, как обрабатывать соответствующий URL-адрес.
__construct()
Метод __construct() является конструктором класса WP_Rewrite и вызывается при создании объекта данного класса. Он выполняет инициализацию и настройку компонента перезаписи URL-адресов.
Конструктор вызывает метод init(), который запускает процесс настройки перезаписи. В ходе инициализации происходит установка правил перезаписи, обработка запросов и установка хуков для обработки URL-адресов.
WP_Rewrite::__construct();
Вызов конструктора класса WP_Rewrite не требует передачи аргументов. Он автоматически выполняется при создании объекта данного класса и запускает процесс настройки перезаписи URL-адресов.
Примеры использования
Добавление новой структуры ссылок
function add_custom_permalink_structure() {
global $wp_rewrite;
// Добавляем новую структуру ссылок
$wp_rewrite->add_permastruct( 'custom', '/%postname%/', array(
'with_front' => false,
'ep_mask' => EP_PERMALINK,
) );
// Перегенерируем правила перезаписи
$wp_rewrite->flush_rules();
}
add_action( 'init', 'add_custom_permalink_structure' );
В этом примере мы используем метод add_permastruct() для добавления новой структуры ссылок с именем «custom». Мы указываем, что ссылки будут иметь вид «/%postname%/», а также указываем параметры «with_front» и «ep_mask». Затем мы вызываем метод flush_rules(), чтобы перегенерировать правила перезаписи.
Обновление существующих тегов перезаписи
function update_rewrite_tags() {
global $wp_rewrite;
// Добавляем или обновляем существующие теги перезаписи
$wp_rewrite->add_rewrite_tag( '%custom_tag%', '([^/]+)', 'custom_tag=' );
// Перегенерируем правила перезаписи
$wp_rewrite->flush_rules();
}
add_action( 'init', 'update_rewrite_tags' );
В этом примере мы используем метод add_rewrite_tag() для добавления или обновления существующих тегов перезаписи. В данном случае мы добавляем тег с именем «custom_tag», который будет соответствовать любому непустому значению в URL. Затем мы вызываем метод flush_rules(), чтобы перегенерировать правила перезаписи.
Удаление правила перезаписи
function remove_rewrite_rule() {
global $wp_rewrite;
// Удаляем правило перезаписи
$wp_rewrite->remove_rule( 'custom-rule' );
// Перегенерируем правила перезаписи
$wp_rewrite->flush_rules();
}
add_action( 'init', 'remove_rewrite_rule' );
В этом примере мы используем метод remove_rule() для удаления правила перезаписи с именем «custom-rule». Затем мы вызываем метод flush_rules(), чтобы перегенерировать правила перезаписи.
Генерация правил перезаписи на основе структуры ссылок
function generate_rewrite_rules() {
global $wp_rewrite;
// Генерируем правила перезаписи на основе структуры ссылок
$wp_rewrite->generate_rewrite_rules( '/%year%/%monthnum%/%postname%/' );
// Перегенерируем правила перезаписи
$wp_rewrite->flush_rules();
}
add_action( 'init', 'generate_rewrite_rules' );
В этом примере мы используем метод generate_rewrite_rules() для генерации правил перезаписи на основе структуры ссылок «/%year%/%monthnum%/%postname%/». Затем мы вызываем метод flush_rules(), чтобы перегенерировать правила перезаписи.
Изменение базы категорий для ссылок
function change_category_base() {
global $wp_rewrite;
// Изменяем базу категорий для ссылок
$wp_rewrite->set_category_base( 'new-category-base' );
// Перегенерируем правила перезаписи
$wp_rewrite->flush_rules();
}
add_action( 'init', 'change_category_base' );
В этом примере мы используем метод set_category_base() для изменения базы категорий для ссылок на «new-category-base». Затем мы вызываем метод flush_rules(), чтобы перегенерировать правила перезаписи.
Вопросы и ответы
Как добавить новую структуру постоянных ссылок?
Для добавления новой структуры постоянных ссылок в WordPress используется метод add_permastruct() класса WP_Rewrite. Этот метод позволяет определить новый формат URL-адресов для постов, страниц, категорий и других типов записей.
<?php
global $wp_rewrite;
// Добавляем новую структуру постоянных ссылок для постов
$wp_rewrite->add_permastruct( 'custom', '/%postname%/' );
// Перезаписываем правила
$wp_rewrite->flush_rules();
?> Как удалить существующую структуру постоянных ссылок?
Для удаления существующей структуры постоянных ссылок в WordPress используется метод remove_permastruct() класса WP_Rewrite. Этот метод позволяет удалить определенную структуру URL-адресов для постов, страниц, категорий и других типов записей.
<?php
global $wp_rewrite;
// Удаляем структуру постоянных ссылок для постов
$wp_rewrite->remove_permastruct( 'post', '/%postname%/' );
// Перезаписываем правила
$wp_rewrite->flush_rules();
?> Как добавить новый тег перезаписи?
Для добавления нового тега перезаписи в WordPress используется метод add_rewrite_tag() класса WP_Rewrite. Этот метод позволяет определить новый тег, который может быть использован в структуре постоянных ссылок.
<?php
global $wp_rewrite;
// Добавляем новый тег перезаписи
$wp_rewrite->add_rewrite_tag( '%custom_tag%', '([^/]+)' );
// Перезаписываем правила
$wp_rewrite->flush_rules();
?> Как удалить существующий тег перезаписи?
Для удаления существующего тега перезаписи в WordPress используется метод remove_rewrite_tag() класса WP_Rewrite. Этот метод позволяет удалить определенный тег, который был ранее добавлен.
<?php
global $wp_rewrite;
// Удаляем существующий тег перезаписи
$wp_rewrite->remove_rewrite_tag( '%custom_tag%' );
// Перезаписываем правила
$wp_rewrite->flush_rules();
?> Как добавить новое правило перезаписи?
Для добавления нового правила перезаписи в WordPress используется метод add_rule() класса WP_Rewrite. Этот метод принимает два параметра: шаблон URL-адреса и массив с набором переменных запроса.
$wp_rewrite = new WP_Rewrite();
$wp_rewrite->add_rule( 'news/([^/]+)/?', 'index.php?category_name=$matches[1]', 'top' );
Как удалить существующее правило перезаписи?
Для удаления существующего правила перезаписи в WordPress используется метод remove_rule() класса WP_Rewrite. Этот метод принимает один параметр — шаблон URL-адреса.
$wp_rewrite = new WP_Rewrite();
$wp_rewrite->remove_rule( 'news/([^/]+)/?' );
Как сгенерировать правила перезаписи из структуры постоянных ссылок?
Для генерации правил перезаписи из структуры постоянных ссылок в WordPress используется метод generate_rewrite_rules() класса WP_Rewrite. Этот метод не принимает параметров и возвращает массив с правилами перезаписи.
$wp_rewrite = new WP_Rewrite();
$rewrite_rules = $wp_rewrite->generate_rewrite_rules();
Как получить структуру постоянных ссылок для категорий?
Для получения структуры постоянных ссылок для категорий в WordPress используется метод get_category_permastruct() класса WP_Rewrite. Этот метод не принимает параметров и возвращает строку с структурой постоянных ссылок для категорий.
$wp_rewrite = new WP_Rewrite();
$category_permastruct = $wp_rewrite->get_category_permastruct();
Класс
WP_Rewriteв WordPress является основным классом, используемым для реализации API компонента перезаписи. Он предоставляет методы для добавления и удаления правил перезаписи, генерации правил из структуры постоянных ссылок и получения структуры постоянных ссылок для категорий.