Cum să actualizezi statusul unei pagini din publicat în schiță și din schiță în publicat

19 mar. 2011, 22:58:05
Vizualizări: 52.1K
Voturi: 12

Încerc să înțeleg cum să scriu codul care îmi va permite să fac următoarele lucruri cu paginile unui blog WordPress.

Am nevoie să pot specifica ID-urile paginilor pe care vreau să le listez (aproximativ 15 în total) și apoi să ofer utilizatorului posibilitatea de a selecta care dintre ele vor fi publicate sau care vor fi schițe. Acest lucru le va elimina din meniu și va elimina, de asemenea, pagina de pe site.

Am găsit această afirmație

Pentru a schimba statusul unei postări, obții postarea, schimbi câmpul de status, apoi apelezi wp_update_post cu noul obiect post

Cel mai apropiat plugin existent este http://wordpress.org/extend/plugins/wp-hide-pages/ cu excepția faptului că acest plugin folosește wp-list-pages. Și, doar le ascunde și nu le mută efectiv din Publicat în Schiță.

0
Toate răspunsurile la întrebare 2
3
29

O soluție mai rapidă este:

$post = array( 'ID' => $post_id, 'post_status' => $status );
wp_update_post($post);

În acest fel nu este nevoie să obții postarea.

6 apr. 2013 01:45:40
Comentarii

Da, o soluție mai rapidă și mai simplă. În plus, atunci se va concentra doar pe scrierea actualizării statusului și nu va trebui să se preocupe de re-actualizarea sau ignorarea celorlalte date preluate din postarea curentă

Kirby Kirby
10 nov. 2015 21:37:44

Întrebarea mea este identică cu cea a OP. Folosesc codul din acest răspuns. Statusul postării mele nu se schimbă din draft în publicat, dar wp_update_post returnează 1.

TARKUS TARKUS
2 iun. 2021 22:29:15

@TARKUS trebuie să schimbi $status în 'draft'

Nathan Nathan
17 iul. 2021 09:58:33
7
17

Iată o funcție care modifică statusul unui articol

/*
$post_id - ID-ul articolului pe care doriți să-l modificați.
$status -  Statusul articolului: 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);
}

pur și simplu apelați funcția și transmiteți ID-ul articolului și noul status dorit, de exemplu:

change_post_status(12,'private');
20 mar. 2011 00:29:56
Comentarii

Cum aș putea adăuga funcționalitatea de a face statusul o opțiune selectabilă..? Doresc să pot comuta între publicat și ciornă doar și apoi să actualizez articolul cu opțiunea selectată...

User User
20 mar. 2011 00:50:50

Știi că ai deja un meniu derulant pentru asta în ecranul de editare?

Bainternet Bainternet
20 mar. 2011 02:15:07

ha ha.. da.. dar încerc să construiesc o pagină personalizată de opțiuni pentru administrare care să evite acea pagină.. Aș dori să am o listă de pagini specifice disponibile și să ofer utilizatorului admin posibilitatea să comute între a le avea publicate.. sau ca ciornă (nepublicate) - știu că se poate face, dar mă chinui cu codul pentru a realiza asta.

User User
20 mar. 2011 03:53:19

actualizează întrebarea ta cu codul pe care îl ai și voi avea o imagine mai clară despre unde te pot ajuta.

Bainternet Bainternet
20 mar. 2011 03:59:20

Nu am mult mai mult cod decât ceea ce mi-ai dat tu.. De fapt nu știu să dezvolt cod, dar de obicei reușesc să modific ceva dacă este aproape de ceea ce vreau să fac... În esență, am nevoie de o pagină de opțiuni care să-mi permită să listeze un ID specific de pagină și să ofere administratorului posibilitatea de a alege publicare sau ciornă pentru fiecare pagină listată, apoi să apese salvare (sau actualizare) și să setăm fiecare pagină conform configurației utilizatorului. Mi-ar plăcea să învăț cum să fac asta, dar simt că poate cer prea mult pe un forum de suport gratuit.. ?

User User
20 mar. 2011 04:11:00

Tocmai am actualizat întrebarea mea pentru a-ți oferi o idee mai bună despre ce încerc să realizez

User User
20 mar. 2011 04:26:14

@Brainternet care hook ar trebui să folosesc în acest caz?

Prafulla Kumar Sahu Prafulla Kumar Sahu
4 dec. 2015 10:39:03
Arată celelalte 2 comentarii