私はWordPressブログのページで次のことができるようにするコードを書く方法を見つけようとしています。
どのページIDをリストに含めるか(合計約15個)を指定して、公開するページIDとドラフトにするページIDをユーザーが選択できるようにする必要があります。これによりメニューからそれらが削除され、サイトからもページが削除されます。
私はこの声明を見つけました
投稿ステータスを変更するには、投稿を取得し、そのステータスフィールドを変更してから、新しい投稿オブジェクトで
wp_update_post
を呼び出します。
このプラグインがwp-list-pages
を使用することを除いて、最も近い既存のプラグインは http://wordpress.org/extend/plugins/wp-hide-pages/ です。そして、それはそれらを隠しているだけで、実際に Publish から Draft に移動することはありません。
より速い解決策は次のとおりです。
$post = array( 'ID' => $post_id, 'post_status' => $status );
wp_update_post($post);
こうすれば投稿を取得する必要はありません。
投稿ステータスを変更する機能です。
/*
$post_id - The ID of the post you'd like to change.
$status - The post 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');