web-dev-qa-db-ja.com

ワンクリックで投稿ステータスを変更する

「公開」ボタンの近くにカスタムボタン「修正のために送信」を追加します。このカスタムボタンは、投稿ステータスを「保留」から自分で作成した「修正中」というステータスに変更する必要があります。

今のところ5クリックでステータスを変更することが可能です(ステータスの編集 - >ドロップダウンクリック - >訂正時の選択 - > Ok - >訂正時に保存)。

更新:

add_action('post_submitbox_misc_actions', 'send_for_correction_button');
function send_for_correction_button()
{
    //global $post;
    echo '<div id="send-for-correction" class="misc-pub-section"
    style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">
    <input id="save-post2" class="button button-highlighted"
    type="submit" value="Send for correction" name="save">
        </div>';
}
add_action('save_post', 'save_status');
function save_status($post_id)
{
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
        return $post_id;

    if ($_POST['save'] == 'Send for correction')
    {
        update_post_meta($post_id, "post_status", 'on-correction');
    }
}
6
Bubka Gob

カスタムボタンを関数で作成してpost_submitbox_misc_actionsにフックすると、公開ボタンの真上に追加できます。

ステータスを変更するには、Ajax関数で wp_update_post を使用します。何か問題が発生した場合は、試してみてコードをポストバックしてください。

更新:

add_action('post_submitbox_misc_actions', 'send_for_correction_button');
function send_for_correction_button()
{
    //global $post;
    echo '<div id="send-for-correction" class="misc-pub-section"
    style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;">
    <input id="save-post2" class="button button-highlighted"
    type="submit" value="Send for correction" name="save">
        </div>';
}
add_filter( 'wp_insert_post_data' , 'my_filter_handler' , '99', 2 );
function my_filter_handler( $data , $postarr )
{
    if ($postarr['save'] == 'Send for correction')
        $data['post_status'] = 'on-correction';

    return $data;
}
5
Chris_O