Come aggiornare lo stato della pagina da pubblicato a bozza e da bozza a pubblicato
Sto cercando di capire come scrivere il codice che mi permetterà di fare quanto segue con le pagine di un blog WordPress.
Ho bisogno di avere qualcosa dove specificare quali ID di pagina voglio elencare (circa 15 in totale) e poi dare all'utente la possibilità di selezionare quali saranno pubblicate o quali saranno bozze. Questo le rimuoverà dal menu e rimuoverà anche la pagina dal sito.
Ho trovato questa dichiarazione
Per modificare lo stato di un post, ottieni il post, cambia il suo campo status, quindi chiama
wp_update_post
con il nuovo oggetto post
Il plugin esistente più simile è http://wordpress.org/extend/plugins/wp-hide-pages/ eccetto che questo plugin usa wp-list-pages
. E, si limita a nasconderle e non le sposta effettivamente da Pubblicato a Bozza.

Sì, una soluzione più veloce e semplice. Inoltre, si preoccuperà solo di scrivere l'aggiornamento dello stato e non dovrà preoccuparsi di ri-aggiornare o ignorare tutti gli altri dati recuperati nel post corrente

La mia domanda è identica a quella dell'OP. Sto usando il codice in questa risposta. Lo stato del mio post non cambia da bozza a pubblicato, ma wp_update_post
restituisce 1.

Ecco una funzione che modifica lo stato di un articolo
/*
$post_id - L'ID dell'articolo che vuoi modificare.
$status - Lo stato dell'articolo: 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);
}
Chiama semplicemente la funzione passando l'ID dell'articolo e il nuovo stato che desideri assegnargli, ad esempio:
change_post_status(12,'private');

Come potrei aggiungere la possibilità di rendere lo stato un'opzione selezionabile..? Vorrei poter alternare solo tra pubblicato e bozza e poi aggiornare il post con l'opzione selezionata...

Sai che hai già un menu a tendina appositamente per questo nella schermata di modifica?

ah ah.. sì.. ma sto cercando di creare una pagina personalizzata di opzioni admin che eviti quella pagina.. Vorrei avere un elenco di pagine specifiche disponibili e dare all'utente admin la possibilità di semplicemente alternare tra pubblicato.. o come bozza (non pubblicato) - So che si può fare, ma sto avendo difficoltà con il codice per implementarlo.

aggiorna la tua domanda con il codice che hai e avrò una visione migliore di dove posso aiutarti.

Non ho molto più codice di quello che mi hai dato... In realtà non so sviluppare codice ma di solito riesco a modificare qualcosa se è vicino a quello che voglio fare... Fondamentalmente ho bisogno di una pagina di opzioni che mi permetta di elencare un ID pagina specifico e dare all'amministratore la possibilità di scegliere pubblica o bozza per ogni pagina elencata, poi cliccare salva (o aggiorna) e impostare ogni pagina come configurato dall'utente. Mi piacerebbe imparare a farlo ma sento che potrei chiedere troppo in un forum di supporto gratuito.. ?

Ho appena aggiornato la mia domanda per darti un'idea migliore di quello che sto cercando di realizzare
