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

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)の編集画面で動くコードです。今の標準のブロックエディターでは、公開状態の初期値は変わりません。
この状態で「公開」をクリックして保存する
公開状態を変えずに「公開」をクリックすると、非公開で保存されます。

