Wordpress:如何在管理员帖子列表中添加发布/草稿按钮 [英] Wordpress: How to add publish/draft button in Admin Post Lists

查看:42
本文介绍了Wordpress:如何在管理员帖子列表中添加发布/草稿按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在Wordpress Admin帖子列表中添加发布/草稿"按钮,但是在某些情况下效果不佳.

I try to add publish/draft button in Wordpress Admin Post Lists but it doesn’t work well in a certain situation.

新帖子->另存为草稿->使用Adomin帖子列表中的新按钮发布

New post -> Save as Draft -> Publish using new button in Adomin Post Lists

新帖子->发布->草稿->使用Adomin帖子列表中的新按钮发布

New post -> Publish -> Draft -> Publish using new button in Adomin Post Lists

在此先感谢大家的帮助或:D

Thank You all in advance for help or any other ways :D

参考: https://wordpress.stackexchange.com/questions/17794/从带有按钮的前端发布待处理的文章(这不起作用)

此处是functions.php代码

Here’s functions.php code

    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="publish">
             </form>
    EOF;
    echo $pub_form;
    }

    function show_draft_button($post_id){
    $pri_form = <<<EOF
            <form name="make_it_draft" method="post" action="">
                    <input type="hidden" name="pid" id="pid" value="{$post_id}">
                    <input type="hidden" name="mi_draft" id="mi_draft" value="mi_draft">
                    <input type="submit" name="submit" id="submit" value="draft">
             </form>
    EOF;
    echo $pri_form;
    }

    function change_post_status($post_id,$status){

        $time = current_time('mysql');
        wp_update_post(
            array(
               'ID'                         =>  $post_id,
               'post_status'        =>  $status,
               'post_name'          =>  $post_id,
               'post_date_gmt'  =>  get_gmt_from_date( $time )
            )
        );
    }

    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_draft']) && $_POST['mi_draft'] == 'mi_draft'){
            if (isset($_POST['pid']) && !empty($_POST['pid'])){
                change_post_status((int)$_POST['pid'],'draft');
            }
        }
    });


    function manage_posts_columns($columns) {
        $columns['publish'] = "publish";
        $columns['draft'] = "draft";
        return $columns;
    }

    function add_column($column_name, $post_id) {

        if($column_name == 'publish'){
            $pub = "publish";
        }
        if($column_name == 'draft'){
            $pri = "draft";
        }


        if ( isset($pub) && $pub ){
            show_publish_button($post_id);
        } else if ( isset($pri) && $pri ){
            show_draft_button($post_id);
        } else {
            echo __('None');
        }
    }
    add_filter( 'manage_posts_columns', 'manage_posts_columns' );
    add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

推荐答案

原因是嵌套表单标签.

Admin Post Lists是巨大的表格,我添加了表格标签.这就是为什么它不起作用.

Admin Post Lists is huge form and I added form tag. That's why it didn't work.

简单的方法是使用ajax和wp_update_post.

Simple way is using ajax and wp_update_post.

这篇关于Wordpress:如何在管理员帖子列表中添加发布/草稿按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆