web-dev-qa-db-ja.com

ごみ箱に移動&PUBLISHボタン以外のPUBLISHメタボックス内のすべてを隠す方法

カスタムの投稿タイプがあります(連絡先と呼ばれます)。この投稿タイプは投稿のように機能していないため、[ドラフトの保存]、[プレビュー]、[ステータス]、[表示]、[公開日]のいずれも表示したくありません。

私が見せたいのはPUBLISH&Move to Trashボタンだけです。

これらの他のオプションを隠す方法はありますか?そうでない場合は、どのようにして新しいPUBLISHを作成し、新しいメタボックスに追加できるゴミ箱へ移動することができますか?

10
katemerart

CSSを使ってオプションを隠すことができます。これはdisplay:noneスタイルをpost.phpページとpost-new.phpページのその他およびマイナーなパブリッシングアクションに追加します。すべての投稿タイプがこれら2つのファイルを使用するため、特定の投稿タイプもチェックします。

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');
14
Brian Fegter

この例では、公開オプションを非表示にする投稿タイプを簡単に設定できます。この例では、ビルトインポットタイプpageおよびカスタム投稿タイプcpt_portfolioに対してそれらを非表示にします。

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

重要なアップデート

また、投稿を下書きとして保存しないように投稿ステータスを「公開」にすることをお勧めします。

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
1
Nabil Kadimi