Функция get_post_type()
в WordPress используется для получения типа поста. Это полезно, когда нужно узнать, к какому типу относится конкретный пост, что позволяет выполнять различные действия в зависимости от этого типа.
Описание функции
Функция get_post_type()
возвращает тип поста в виде строки. Тип поста может быть стандартным (post
, page
) или пользовательским (например, product
, event
).
get_post_type( int|WP_Post|null $post = null )
Параметры
- $post (int|WP_Post|null): (Необязательный) ID поста или объект WP_Post. По умолчанию используется глобальный объект текущего поста в цикле.
Возвращаемое значение
- (string|false): Тип поста в виде строки или
false
, если пост не найден.
Примеры использования
Пример 1. Получение типа текущего поста в цикле
Если функция используется внутри основного цикла WordPress, параметр $post
можно не передавать.
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$post_type = get_post_type();
echo '<p>Тип поста: ' . $post_type . '</p>';
the_title( '<h2>', '</h2>' );
the_content();
endwhile;
endif;
Пример 2. Получение типа конкретного поста по ID
Если нужно получить тип поста для конкретного поста, можно передать его ID в функцию.
$post_id = 42;
$post_type = get_post_type( $post_id );
if ( $post_type ) {
echo '<p>Тип поста с ID ' . $post_id . ': ' . $post_type . '</p>';
} else {
echo '<p>Пост не найден.</p>';
}
Пример 3. Проверка типа поста
Функция get_post_type()
может быть использована для выполнения различных действий в зависимости от типа поста.
$post_id = 42;
$post_type = get_post_type( $post_id );
if ( $post_type === 'page' ) {
echo '<p>Это страница.</p>';
} elseif ( $post_type === 'post' ) {
echo '<p>Это запись блога.</p>';
} else {
echo '<p>Это пользовательский тип поста: ' . $post_type . '</p>';
}
Пример 4. Использование в пользовательском шаблоне
Вы можете использовать get_post_type()
для условного отображения различных частей шаблона в зависимости от типа поста.
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$post_type = get_post_type();
if ( $post_type === 'product' ) {
get_template_part( 'template-parts/content', 'product' );
} elseif ( $post_type === 'event' ) {
get_template_part( 'template-parts/content', 'event' );
} else {
get_template_part( 'template-parts/content', 'default' );
}
endwhile;
endif;
Заключение
Функция get_post_type()
— это полезный инструмент для получения типа поста в WordPress. Она позволяет разработчикам легко проверять тип поста и выполнять различные действия на основе этого типа, что делает её неотъемлемой частью создания динамических и адаптируемых тем.