Функция возвращает URL (постоянную ссылку) страницы архива типа записи.
Страница архива – это страница, на которой автоматически выводятся все записи данного типа. Обычно имеет URL вида https://misha.agency/название_типа_записи
, но вместо названия типа записи по факту можно указать что угодно, задав это при регистрации в параметре has_archive. Кроме того, у обычных записей (тип поста post
) страницей архива является либо главная, либо страница «Блог», в зависимости от того, что у вас в Настройки > Чтение.
Обратите внимание, что функция вернёт false
в двух ситуациях:
false
. А вообще, рекомендую моё подробное руководство по произвольным типам постов.
get_post_type_archive_link( $post_type )
Предположим, что мы зарегистрировали какой-то произвольный тип постов, что-то типо этого:
add_action( 'init', function() { register_post_type( 'game', array( // любые другие параметры 'has_archive' => true, ) ) )
И потом где-нибудь выводим ссылку на архивы:
echo '<a href="' . get_post_type_archive_link( 'game' ) . '">Архив игр</a>';
При помощи этого фильтра вы можете изменить то, что возвращает функция в зависимости от переданных в неё параметров.
Допустим… хм.. давайте для типа записи game
добавим какой-нибудь якорь к ссылке.
add_filter( 'post_type_archive_link', 'true_change_archive_link', 25, 2 ); function true_change_archive_link( $link, $post_type ) { if( 'game' === $post_type ) { $link = $link . '#games'; } return $link; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Вы пишете "Урлы таких архивов, кстати говоря, обычно выглядят вот так: https://misha.agency/{тип поста}"
То есть из вашего сообщения выходит, что есть какой-то способ поменять этот вид? Мне нужно выводить так {тип поста}.html
Не подскажите, где можно почитать о том, как такое реализовать?
Я всё хочу капитальную статью про WP_Rewrite написать, да всё руки не доходят. Боюсь, что сейчас единственное, чем могу помочь, это предложить поиск в ангоязычном интернете по запросу: html for post type archive urls.