Функция get_post_type_archive_link()
в WordPress предназначена для получения URL (постоянной ссылки) на архивную страницу произвольного типа записи. Это может быть полезно, когда вам нужно создать ссылки на страницы, где отображаются все записи определенного типа.
get_post_type_archive_link( string $post_type )
Параметры
$post_type
(string) (обязательный): Название типа записи, для которого вы хотите получить ссылку на архив. Например, стандартный тип записей ‘post’, ‘page’, или кастомные типы, такие как ‘products’.
Возвращаемое значение
Функция возвращает URL-адрес архивной страницы для указанного типа записей. В случае, если архивная страница не существует, или указанный тип записей не зарегистрирован, функция вернет пустую строку. Если для указанного типа записей не был установлен параметр 'has_archive' => true
при регистрации типа, функция также вернет пустую строку.
Примечания
- Убедитесь, что при регистрации типа записей через
register_post_type()
вы указали'has_archive' => true
, чтобы архивная страница была доступна. - Функция основывается на
get_post_type_object()
, которая извлекает объект типа записи по его имени. - В случае, если вы укажете тип записи
'post'
, функция вернет ссылку на главную страницу сайта или на страницу, которая была указана в настройках админки как «Страница записей». - Хуки, связанные с этой функцией:
post_type_archive_link
.
Пример 1: Ссылка на архивную страницу произвольного типа записи
Предположим, вы создали произвольный тип записи с именем book
с помощью функции register_post_type()
. Чтобы получить ссылку на архивную страницу этого типа, можно использовать следующий код:
<a href="<?php echo esc_url( get_post_type_archive_link('book') ); ?>">Книги</a>
Пример 2: Проверка наличия ссылки на архив
Если вы хотите проверить, существует ли архивная страница для определенного типа записей, и только затем отображать ссылку, используйте такой подход:
$post_type = 'book';
$archive_link = get_post_type_archive_link( $post_type );
if ( $archive_link ) {
echo '<a href="' . esc_url( $archive_link ) . '">Перейти к архиву книг</a>';
} else {
echo 'Архивная страница для этого типа записей не найдена.';
}
Заключение
Функция get_post_type_archive_link()
в WordPress предоставляет удобный способ получения URL-адреса архивных страниц для различных типов записей. Это помогает улучшить навигацию и доступность вашего контента. Не забудьте проверить, что для вашего типа записей установлен параметр 'has_archive' => true
, чтобы архив был доступен.