WordPress 記事の新規作成時に公開状態の初期値を非公開にする

WordPress 6.5.3
広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

概要説明

非公開にして記事を作成し記事が完成したら公開という流れにしたい場合に便利なカスタマイズ。記事投稿時の公開状態設定の初期値を非公開にすることが出来ます

公開状態ステータスを変更

WordPress 記事の新規作成時に公開状態の初期値を非公開にする
functions.php
/*----------------------------------------------------
 記事作成時のデフォルトステータスを非公開にする
----------------------------------------------------*/
if ( !function_exists( 'post_default_status' ) ){
    function post_default_status() {
        global $post;

        if ( $post->post_status == 'publish' ) {
            $visibility = 'public';
            $visibility_trans = __('Public');
        } elseif ( !empty( $post->post_password ) ) {
            $visibility = 'password';
            $visibility_trans = __('Password protected');
        } elseif ( $post->post_type == 'post' && is_sticky( $post->ID ) ) {
            $visibility = 'public';
            $visibility_trans = __('Public, Sticky');
        } else {
            $post->post_password = '';
            $visibility = 'private';
            $visibility_trans = __('Private');
        } 

$visibility_trans = esc_js( $visibility_trans );
$script = <<<EOD
    <script type="text/javascript">
    (function($){
        try {
            $('#post-visibility-display').text('{$visibility_trans}');
            $('#hidden-post-visibility').val('{$visibility}');
            $('#visibility-radio-{$visibility}').attr('checked', true);
        } catch(err) {
        }
    })(jQuery);
    </script>
EOD;
        echo $script;
    }
    add_action( 'post_submitbox_misc_actions' , 'post_default_status' );
}

※ クラシックエディター(Classic Editor)の編集画面で動くコードです。今の標準のブロックエディターでは、公開状態の初期値は変わりません。

この状態で「公開」をクリックして保存する

公開状態を変えずに「公開」をクリックすると、非公開で保存されます。

WordPress Developer Resources

SiteBeacon(サイトビーコン)

サイトが止まったら、すぐに気づける。

ホームページを 5 分ごとにチェックして、止まったとき・エラーが出たとき・SSL やドメインの期限が近いときに、メールでお知らせします。2 サイトまでは、ずっと無料で使えます。

SiteBeacon を見る サイトを直す相談をする

監視で気づいたあとの直す作業も、同じ担当がお受けします。