Как изменить статус страницы с опубликованной на черновик и обратно
Я пытаюсь разобраться, как написать код, который позволит мне выполнить следующие действия со страницами блога WordPress.
Мне нужно иметь возможность указать ID страниц, которые я хочу включить в список (всего около 15), и затем дать пользователю возможность выбирать, какие из них будут опубликованы, а какие останутся в черновиках. Это уберет их из меню, а также удалит страницу с сайта.
Я нашел такое утверждение
Чтобы изменить статус записи, вы получаете запись, меняете поле статуса, затем вызываете
wp_update_post
с обновленным объектом записи
Ближайший существующий плагин - это http://wordpress.org/extend/plugins/wp-hide-pages/, но этот плагин использует wp-list-pages
. И он только скрывает страницы, а не переводит их фактически из статуса Опубликовано в Черновик.

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

Мой вопрос идентичен вопросу автора. Я использую код из этого ответа. Статус моей записи не меняется с черновика на опубликованный, но wp_update_post
возвращает 1.

Вот функция для изменения статуса записи
/*
$post_id - ID записи, которую нужно изменить.
$status - Статус записи: publish|pending|draft|private|static|object|attachment|inherit|future|trash.
*/
function change_post_status($post_id,$status){
$current_post = get_post( $post_id, 'ARRAY_A' );
$current_post['post_status'] = $status;
wp_update_post($current_post);
}
Просто вызовите функцию и передайте ID записи и новый желаемый статус, например:
change_post_status(12,'private');

Как я могу добавить возможность выбирать статус записи? Я хочу иметь возможность переключаться только между "опубликовано" и "черновик", а затем обновлять запись с выбранным вариантом...

Ты же знаешь, что для этого уже есть выпадающий список на экране редактирования?

Ха-ха.. да.. но я пытаюсь создать кастомную страницу настроек в админке, которая будет обходить эту страницу.. Я хочу иметь список определенных доступных страниц и дать администратору возможность просто переключать их статус между "опубликовано" и "черновик" (неопубликовано) - я знаю, что это можно сделать, но у меня проблемы с кодом для реализации.

обновите ваш вопрос с кодом, который у вас есть, и я лучше пойму, чем могу помочь.

У меня не намного больше кода, чем то, что вы мне предоставили... Вообще-то я не умею разрабатывать код, но обычно могу что-то подправить, если это близко к тому, что я хочу сделать... В основном мне нужна страница настроек, которая позволяет мне указать ID конкретной страницы и дать администратору возможность выбрать публикацию или черновик для каждой указанной страницы, затем нажать сохранить (или обновить) и установить статус каждой страницы согласно конфигурации пользователя. Я бы хотел научиться это делать, но чувствую, что, возможно, прошу слишком многого для бесплатного форума поддержки..?

Я только что обновил свой вопрос, чтобы вам было понятнее, что я пытаюсь сделать
