set_post_type()WP 2.5.0

Обновляет тип записи по указанному ID записи. Примеры типов записей: post, page, attachment.

Кэш записи и связанных с ней таксономий и терминов будет очищен.

Хуков нет.

Возвращает

int|false. Количество строк затронутых в БД. Результат запроса $wpdb->update.

Использование

set_post_type( $post_id, $post_type );
$post_id(число)
ID записи, тип которой нужно изменить.
$post_type(строка)
Название типа записи, который нужно установить. Название нового типа записи.
По умолчанию: 'post'

Примеры

0

#1 Обновим тип записи

Предположим у нас есть пост с ID 15. Сделаем из него постоянную страницу, для этого поменяем тип записи на page:

$post_id = 15;
if ( set_post_type( $post_id, 'page' ) ) {
	  echo "Пост 15 теперь страница";
}
else {
	  echo "Невозможно изменить тип поста на page";
}

Заметки

  • Global. wpdb. $wpdb WordPress database abstraction object.

Список изменений

С версии 2.5.0 Введена.

Код set_post_type() WP 6.4.3

function set_post_type( $post_id = 0, $post_type = 'post' ) {
	global $wpdb;

	$post_type = sanitize_post_field( 'post_type', $post_type, $post_id, 'db' );
	$return    = $wpdb->update( $wpdb->posts, array( 'post_type' => $post_type ), array( 'ID' => $post_id ) );

	clean_post_cache( $post_id );

	return $return;
}