add_rewrite_tag()

Добавляет новый метатег перезаписи (например, %postname%)
Функция WordPress
INT 2.1.0
WordPress Icon

Описание функции

Функция add_rewrite_tag() добавляет новый тег перезаписи (например, %postname%). Она регистрирует новый тег, который может быть использован в правилах перезаписи WordPress.

Теги перезаписи используются для определения структуры URL-адресов на сайте WordPress. Они позволяют создавать пользовательские URL-адреса для страниц, записей, таксономий и других типов контента.

Функция add_rewrite_tag() позволяет разработчикам добавлять собственные теги перезаписи, которые могут быть использованы в правилах перезаписи WordPress.

Использование

add_rewrite_tag( string $tag, string $regex, string $query = '' )

Функция add_rewrite_tag() принимает три параметра:

  • $tag (обязательный): Название нового тега перезаписи.
  • $regex (обязательный): Регулярное выражение, которое заменяет тег в правилах перезаписи.
  • $query (необязательный): Строка, добавляемая к перезаписанному запросу. Должна заканчиваться на ‘=’. По умолчанию: ».

/**
 * Регистрация нового тега перезаписи.
 *
 * @param string $tag   Название нового тега перезаписи.
 * @param string $regex Регулярное выражение, заменяющее тег в правилах перезаписи.
 * @param string $query Строка, добавляемая к перезаписанному запросу. Должна заканчиваться на '='. По умолчанию: ''.
 */
add_rewrite_tag( 'custom_tag', '([^/]+)', 'custom_query=' );

В этом примере мы регистрируем новый тег перезаписи с названием ‘custom_tag’. Регулярное выражение ‘([^/]+)’ заменяет этот тег в правилах перезаписи. Мы также добавляем строку ‘custom_query=’ к перезаписанному запросу.

Примеры использования

Добавление нового тега перезаписи


/**
 * Добавляет новый тег перезаписи (например, %postname%).
 *
 * @param string $tag   Название нового тега перезаписи.
 * @param string $regex Регулярное выражение, которое заменит тег в правилах перезаписи.
 * @param string $query Строка, которая будет добавлена к перезаписанному запросу. Должна заканчиваться на '='.
 *                     По умолчанию: ''.
 */
add_rewrite_tag( string $tag, string $regex, string $query = '' );

Функция add_rewrite_tag() используется для добавления нового тега перезаписи в WordPress. Теги перезаписи позволяют определить динамические части URL-адресов и использовать их в правилах перезаписи.

Использование регулярного выражения для замены тега в правилах перезаписи


// Добавление нового тега перезаписи для постов
add_rewrite_tag( 'postname', '([^/]+)' );

В этом примере мы добавляем новый тег перезаписи с именем «postname» и регулярным выражением «([^/]+)». Регулярное выражение определяет, что значение тега может содержать любые символы, кроме слэша (/). Таким образом, мы можем использовать этот тег в правилах перезаписи для определения URL-адресов постов.

Добавление строки к перезаписанному запросу


// Добавление строки "post_type=product" к перезаписанному запросу
add_rewrite_tag( 'product', '([^/]+)', 'post_type=product' );

В этом примере мы добавляем новый тег перезаписи с именем «product», регулярным выражением «([^/]+)» и строкой «post_type=product». При перезаписи URL-адреса, WordPress добавит эту строку к запросу, чтобы указать тип поста «product».

Вопросы и ответы

Как добавить новый rewrite tag с помощью функции add_rewrite_tag()?

Чтобы добавить новый rewrite tag с помощью функции add_rewrite_tag(), нужно вызвать эту функцию и передать ей два обязательных параметра: имя нового rewrite tag и регулярное выражение, которое будет заменять этот тег в правилах перезаписи.

Пример кода:


add_rewrite_tag( 'author_name', '([^/]+)' );

Как использовать регулярное выражение в функции add_rewrite_tag()?

Регулярное выражение в функции add_rewrite_tag() используется для определения шаблона, который будет использоваться для замены нового rewrite tag в правилах перезаписи.

Пример кода:


add_rewrite_tag( 'author_name', '([^/]+)' );

Как добавить строку к переписанному запросу с помощью функции add_rewrite_tag()?

Чтобы добавить строку к переписанному запросу с помощью функции add_rewrite_tag(), нужно передать третий необязательный параметр — строку, которая будет добавлена к перезаписанному запросу. Эта строка должна заканчиваться знаком равенства (=).

Пример кода:


add_rewrite_tag( 'author_name', '([^/]+)', 'author=' );

Как удалить существующий rewrite tag с помощью функции add_rewrite_tag()?

Если вам нужно удалить существующий rewrite tag, вы можете воспользоваться функцией add_rewrite_tag(). Для этого вам нужно указать имя тега, который вы хотите удалить, и использовать пустую строку в качестве регулярного выражения и запроса.


add_rewrite_tag( 'postname', '', '' );

Как проверить, существует ли уже определенный rewrite tag с помощью функции add_rewrite_tag()?

Если вам нужно проверить, существует ли уже определенный rewrite tag, вы можете воспользоваться функцией add_rewrite_tag(). Для этого вам нужно указать имя тега, который вы хотите проверить, и использовать пустую строку в качестве регулярного выражения и запроса. Функция вернет true, если тег уже существует, и false в противном случае.


if ( add_rewrite_tag( 'postname', '', '' ) ) {
    echo 'Тег уже существует';
} else {
    echo 'Тег не существует';
}

Как использовать add_rewrite_tag() для создания пользовательских пермалинков?

Функция add_rewrite_tag() позволяет создавать пользовательские пермалинки, добавляя новые rewrite tag’и. Для этого вам нужно указать имя тега, регулярное выражение для замены тега в правилах перезаписи и запрос, который будет добавлен к перезаписанному запросу.


add_rewrite_tag( 'authorname', '([^/]+)/?', 'author_name=' );

Теперь вы можете использовать новый тег %authorname% в своих пермалинках и он будет заменяться на соответствующее значение автора в запросе.

Как использовать add_rewrite_tag() для создания динамических URL?

Функция add_rewrite_tag() в WordPress позволяет создавать динамические URL, добавляя новые теги для перезаписи. Это полезно, когда вам нужно добавить дополнительные параметры к URL, которые будут использоваться в вашем коде.

Чтобы использовать add_rewrite_tag(), вам нужно передать ей имя нового тега и регулярное выражение, которое будет заменять этот тег в правилах перезаписи. Опционально, вы можете добавить строку, которая будет добавлена к перезаписанному запросу.


add_rewrite_tag( 'author_name', '([^/]+)/?', 'author_name=' );

В этом примере мы создаем новый тег с именем ‘author_name’. Регулярное выражение ‘([^/]+)/?’ будет заменять этот тег в правилах перезаписи. Мы также добавляем строку ‘author_name=’ к перезаписанному запросу.

Как использовать add_rewrite_tag() для создания кастомных запросов?

Функция add_rewrite_tag() также может быть использована для создания кастомных запросов. Это позволяет вам определить свои собственные параметры запроса и использовать их в вашем коде.


add_rewrite_tag( 'custom_query', '([^/]+)/?', 'custom_query=' );

В этом примере мы создаем новый тег с именем ‘custom_query’. Регулярное выражение ‘([^/]+)/?’ будет заменять этот тег в правилах перезаписи. Мы также добавляем строку ‘custom_query=’ к перезаписанному запросу.

Как использовать add_rewrite_tag() для создания фильтров в запросах?

Функция add_rewrite_tag() может быть использована для создания фильтров в запросах. Это позволяет вам добавить дополнительные параметры к URL и использовать их для фильтрации результатов запроса.


add_rewrite_tag( 'filter', '([^/]+)/?', 'filter=' );

В этом примере мы создаем новый тег с именем ‘filter’. Регулярное выражение ‘([^/]+)/?’ будет заменять этот тег в правилах перезаписи. Мы также добавляем строку ‘filter=’ к перезаписанному запросу.

Функция add_rewrite_tag() в WordPress — это мощный инструмент для создания динамических URL, кастомных запросов и фильтров в запросах. Она позволяет добавлять новые теги для перезаписи и использовать их в вашем коде. Используйте add_rewrite_tag() для создания более гибких и мощных функций ваших WordPress-сайтов.

Связанные элементы

  • Функция add_rewrite_rule(): добавляет новое правило перезаписи.
  • Функция flush_rewrite_rules(): сбрасывает правила перезаписи, чтобы они обновились.
  • Функция add_permastruct(): регистрирует новую структуру постоянных ссылок.
  • Функция add_feed(): регистрирует новую ленту.
  • Хук rewrite_rules_array: позволяет изменять массив правил перезаписи перед его компиляцией.
  • Хук generate_rewrite_rules: позволяет добавлять дополнительные правила перезаписи вручную.
  • Хук post_rewrite_rules: позволяет изменять правила перезаписи для типа записи «post».
  • Класс WP_Rewrite: обеспечивает функциональность перезаписи URL.
Обсуждение