Функция is_singular()
в WordPress используется для проверки того, просматривает ли пользователь отдельный пост любого типа (пост, страница или пользовательский тип поста). Это полезно, когда нужно изменить поведение или внешний вид сайта для отдельных постов.
bool is_singular( string|string[] $post_types = '' )
Параметры
$post_types
(string|string[]): Опциональный параметр. Один или несколько типов постов. Если указан, функция вернетtrue
, только если текущий просмотримый пост соответствует одному из указанных типов. По умолчанию — пустая строка.
Возвращаемое значение
true
если это страница отдельного поста, иначеfalse
.
Пример 1: Проверка на отдельный пост любого типа
if ( is_singular() ) {
echo 'Это отдельный пост!';
}
Пример 2: Проверка на отдельный пост определенного типа
Если нужно проверить, просматривается ли отдельный пост типа «post»:
if ( is_singular( 'post' ) ) {
echo 'Это отдельный пост типа "post"!';
}
Пример 3: Проверка на несколько типов постов
Если нужно проверить, просматривается ли отдельный пост типа «post» или «page»:
if ( is_singular( array( 'post', 'page' ) ) ) {
echo 'Это либо пост, либо страница!';
}
Пример 4: Изменение стиля для отдельного поста
Можно использовать is_singular()
для добавления специальных классов к тегу <body>
на отдельных постах:
function genius_custom_body_class( $classes ) {
if ( is_singular( 'post' ) ) {
$classes[] = 'custom-single-post-class';
}
return $classes;
}
add_filter( 'body_class', 'genius_custom_body_class' );
Пример 5: Подключение определенного скрипта только на странице
Можно использовать is_singular()
для условного подключения скриптов. В нашем случае скрип будет подгружен только на одиночных страницах, то есть типа page
:
function genius_custom_scripts() {
if ( is_singular( 'page' ) ) {
wp_enqueue_script( 'custom-page-script', get_template_directory_uri() . '/js/custom-page.js', array(), null, true );
}
}
add_action( 'wp_enqueue_scripts', 'genius_custom_scripts' );
Заключение
Функция is_singular()
предоставляет гибкий и эффективный способ управления отображением и функциональностью вашего сайта на уровне отдельных постов в WordPress. С её помощью можно легко определить, когда пользователь просматривает конкретный пост или страницу, и применить соответствующие настройки. Используя примеры выше, вы можете настроить ваши темы и плагины для обеспечения наилучшего пользовательского опыта на отдельных постах, страницах и пользовательских типах постов, что позволяет создавать более динамичные и контекстуально адаптированные веб-сайты.