set_post_type() – позволяет изменить тип поста с указанным ID

Функция возвращает целое число, равное количеству измененных строк в базе данных, соответственно 1 — в случае успеха, 0 — если тип поста изменить не удалось.

Абсолютно все данные поста сохраняются, вплоть до категорий и меток. Т.е. например, если вы сделали преобразование в страницу page (страницы, как вы знаете, не имеют ни рубрик ни меток), а потом преобразовали обратно в post — и рубрики, и метки у поста останутся те же, которые были до преобразования.

А ещё, рекомендую моё подробное руководство по произвольным типам записей.

set_post_type( $post_id = 0, $post_type = 'post' )

Параметры

$post_id
(целое число) ID поста, тип которого нужно изменить.
$post_type
(строка) Тип поста, в который нужно преобразовать, по умолчанию — post. То есть, если этот параметр не указывать, то пост произвольного типа преобразуется в Запись.

Пример

Взял и перевёл пример из официальной документации WordPress:

$post_id = 54;
 
if( set_post_type( $post_id, 'page'  ) ) {
	printf( 'Пост с ID = %d теперь страница.', $post_id ); // т.е. стал типом page
} else {
	echo 'Невозможно трансформировать указанный пост в страницу.';
}

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал