• 解決済 white50

    (@white50)


    下書きや、非公開状態の記事を、プレビューで確認して、公開したい場合
    いちいち管理画面に戻って、「公開」ボタンを押すのは効率が悪いので
    プレビューで表示された記事の画面内のどこかに、「公開」ボタンを設置できればと思っております。

    下記の書き込みを参考にして作ってみましたが、当方の環境では動かず・・・。
    https://ja.forums.wordpress.org/topic/9642?replies=5

    どなたか、ご存知ありませんか?

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 white50

    (@white50)

    自己解決致しましたので、共有しておきます。

    以下のコードで出来ました。

    single.php

    <?php if(current_user_can('read_private_pages')) : ?>
    <?php
    $url = add_query_arg(array('action'=>'mypublish', 'post'=>$post->ID),home_url());
    echo  "<a href='" . wp_nonce_url($url, 'my-publish-post_' . $post->ID) . "'>公開する</a>";
    ?><?php endif; ?>

    function.php

    if(isset($_REQUEST['action']) && $_REQUEST['action']=='mypublish')
        add_action('init','my_publish_draft');
    
        function my_publish_draft(){
             //Get the post's ID.
             $post_id = (isset($_REQUEST['post']) ?  (int) $_REQUEST['post'] : 0);
    
            //No post? Oh well..
            if(empty($post_id))
                return;
    
            $nonce = $_REQUEST['_wpnonce'];
    
            //Check nonce
            if (! wp_verify_nonce($nonce,'my-publish-post_'.$post_id))
                wp_die('Are you sure?'); 
    
            //Check user permissions
            if (!current_user_can('publish_posts'))
                wp_die("You can't do that"); 
    
            //Any other checks you may wish to perform..
    
            //Publish post
            wp_publish_post( $post_id );
    
            //Redirect to published post
            $redirect = get_permalink($post_id);
            wp_redirect($redirect);
            exit;
        }

1件の返信を表示中 - 1 - 1件目 (全1件中)

トピック「プレビュー画面内に公開ボタンを設置」には新たに返信することはできません。