投稿一覧に掲載・未掲載ボタンを追加 ⇒ 一度公開していないと、公開ボタンが動作しない
-
投稿一覧に掲載・未掲載ボタンを追加して動作確認したところ、一定の条件を満たさないと動作しませんでした。
元ネタ:公開・削除ボタンを投稿一覧に表示することは可能でしょうか?をコピペしても同様でした。
————————————————————————
【動作する】
・公開済みの投稿を、一度、下書きまたは、レビュー待ちにしておく【動作しない】
・投稿の新規追加をして、下書きまたは、レビュー待ちにしておく
————————————————————————それぞれの投稿をデータベース(wp_post)で確認したところ、一度も公開していない投稿の場合、post_date_gmtが追加されていないので、それが原因なのかもしれませんが、追加方法がわかりません。。。
期待通りに動作させるにはどのようにすればよいのでしょうか?
/*------------------------------------*\ 投稿一覧に掲載・未掲載ボタンを追加 \*------------------------------------*/ function show_publish_button($post_id){ $pub_form = <<<EOF <form name="make_it_publish" method="post" action=""> <input type="hidden" name="pid" id="pid" value="{$post_id}"> <input type="hidden" name="mi_publish" id="mi_publish" value="mi_publish"> <input type="submit" name="submit" id="submit" value="掲載する"> </form> EOF; echo $pub_form; } function show_private_button($post_id){ $pri_form = <<<EOF <form name="make_it_private" method="post" action=""> <input type="hidden" name="pid" id="pid" value="{$post_id}"> <input type="hidden" name="mi_private" id="mi_private" value="mi_private"> <input type="submit" name="submit" id="submit" value="未掲載"> </form> EOF; echo $pri_form; } 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); } add_action( 'admin_init', function() { if (isset($_POST['mi_publish']) && $_POST['mi_publish'] == 'mi_publish'){ if (isset($_POST['pid']) && !empty($_POST['pid'])){ change_post_status((int)$_POST['pid'],'publish'); } } if (isset($_POST['mi_private']) && $_POST['mi_private'] == 'mi_private'){ if (isset($_POST['pid']) && !empty($_POST['pid'])){ change_post_status((int)$_POST['pid'],'draft'); } } }); function manage_posts_columns($columns) { $columns['publish'] = "掲載"; $columns['private'] = "未掲載"; return $columns; } function add_column($column_name, $post_id) { if($column_name == 'publish'){ $pub = "publish"; } if($column_name == 'private'){ $pri = "private"; } if ( isset($pub) && $pub ){ show_publish_button($post_id); } else if ( isset($pri) && $pri ){ show_private_button($post_id); } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
- トピック「投稿一覧に掲載・未掲載ボタンを追加 ⇒ 一度公開していないと、公開ボタンが動作しない」には新たに返信することはできません。