如何隐藏PUBLISH metabox中的所有内容(“移至垃圾箱和PUBLISH”按钮除外)


10

我有一个自定义帖子类型(称为联系人)。由于此帖子类型无法像帖子一样工作,因此我不想显示“保存草稿”,“预览”,“状态”,“可见性”或“发布日期”。

我要显示的唯一选项是“发布”和“移至垃圾箱”按钮。

有没有办法隐藏其他选项?如果没有,如何创建可以添加到新的metabox的新发布并移至垃圾箱?

Answers:


14

您可以简单地使用CSS隐藏选项。这将为post.php和post-new.php页面上的杂项和次要发布操作添加display:none样式。由于所有帖子类型都使用这两个文件,因此也会检查特定的帖子类型。

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');

Brian-感谢您的快速回复。我尝试了该功能,将“ POST_TYPE”替换为自定义帖子类型(联系人)的名称,但是当我进入编辑/添加新页面时,什么都不会删除。
katemerart 2011年

查看我的最新编辑。它应该解决此问题。:)
Brian Fegter 2011年

太好了-这为清除我不想显示的内容开辟了一种全新的方式!非常感谢。
katemerart 2011年

很高兴为您提供帮助:)
Brian Fegter 2011年

1
只是指出一点:您只需if ( $post->post_type != $my_post_type ){ return; }在开始时就可以删除代码的缩进级别。无需将整个代码包装在if语句中。
皮特

1

在此示例中,您可以轻松设置要隐藏发布选项的帖子类型,该示例针对内置pots类型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' );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.