管理画面・投稿一覧でformの入れ子を回避する方法
-
管理画面・投稿一覧で、レビュー待ちの投稿を1クリックで公開、または削除出来るよう、投稿一覧の新たなカラムに、『公開ボタン』を表示しました。
function show_publish_button($post_id){ $pub_form = <<<EOF <form name="front_end_publish" method="post" action=""> <input type="hidden" name="pid" id="pid" value="{$post_id}"> <input type="hidden" name="fe_publish" id="fe_publish" value="fe_publish"> <input type="submit" name="submit" id="submit" value="approve"> </form> EOF; echo $pub_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); } if (isset($_POST['fe_publish']) && $_POST['fe_publish'] == 'fe_publish'){ if (isset($_POST['pid']) && !empty($_POST['pid'])){ change_post_status((int)$_POST['pid'],'publish'); } } add_theme_support( 'post-thumbnails', array( 'post' ) );//if custom post type then post type name set_post_thumbnail_size( 50, 50, true ); function manage_posts_columns($columns) { $columns['publish'] = "承認"; $columns['thumbnail'] = __('Thumbnail'); $columns['custom_field'] = "カスタムフィールド"; return $columns; } function add_column($column_name, $post_id) { if($column_name == 'publish'){ $pub = "publish"; } if ( $column_name == 'thumbnail') { $thum = get_the_post_thumbnail($post_id, array(150,150), 'thumbnail'); } if( $column_name == 'custom_field' ) { $stitle = get_post_meta($post_id, 'custom_field', true); } if ( isset($thum) && $thum ) { echo $thum; } else if ( isset($stitle) && $stitle ){ echo attribute_escape($stitle); } else if ( isset($pub) && $pub ){ show_publish_button($post_id); } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
基本的には期待する挙動を実現できたものの、1点だけ問題が生じてしまいました。
投稿一覧では、一括操作や絞り込みにformを使用していますが、そのformが閉じるのがページ最下部の『一括操作』の後の様です。
結果として以下の様に、formが入れ子となってしまい、当然ですが、一番上の投稿のみ追加した『公開ボタン』が効かなくなってしまいます。
<form> 一括操作に関するもの 絞り込みに関するもの --- 投稿1 タイトル|作成者|カテゴリー|<form>公開ボタン</form>|... --- 投稿2 タイトル|作成者|カテゴリー|<form>公開ボタン</form>|... --- : : --- 一括操作に関するもの </form>
これを回避する方法が全く思いつかないのですが、何か良い方法はありませんでしょうか。。。?
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「管理画面・投稿一覧でformの入れ子を回避する方法」には新たに返信することはできません。