wp_publish_post()
Публикует запись. Меняет её статус с future, draft и т.д. на publish. Запускает все хуки необходимые для смены статуса записи.
Подробнее читайте в описании функции: wp_transition_post_status()
Если вам нужно поменять статус записи например с draft на publish, то лучше запустить функцию wp_update_post():
wp_update_post( [ 'ID' => $post_id, 'post_status' => 'publish', ] );
Эта функция не делает всех нужных операций для правильной смены статуса, в частности не выставляются даты поста и возможно что-то еще.
Работает на основе: wp_transition_post_status()
Возвращает
null. Ничего (null)
Использование
wp_publish_post( $post_id );
- $post_id(число/WP_Post) (обязательный)
- Объект или ID записи.
Примеры
#1 Публикация поста с задержкой
Допустим нам нужно опубликовать пост только если пройдена какая-то проверка. Для этого, мы добавляем пост в БД со статусом pending. Затем делаем нашу проверку и если она пройдена публикуем пост, а если не пройдена, то ничего не делаем.
function add_coin_post(){
// Добавляем пост в БД
$post_data = [
'post_type' => 'coin',
'post_title' => $args['name'],
'post_name' => sanitize_title( $symbol ),
'post_status' => 'pending', // ! IMPORTANT
];
$post_id = wp_insert_post( wp_slash( $post_data ), true, false );
if( is_wp_error( $post_id ) ){
return $post_id;
}
// ДЕЛАЕМ НУЖНУЮ НАМ ПРОВЕРКУ
// где будет определена переменная $check_is_ok, если все ок
if( $check_is_ok ){
// запускаем хуки публикации на которых будут проделаны
// операции для нового опубликованного поста
wp_publish_post( $post_id );
}
}
Заметки
- Global. wpdb.
$wpdbWordPress database abstraction object.
Список изменений
| С версии 2.1.0 | Введена. |