不使用内置的“POST”帖子类型的缺点是什么?

时间:2012-05-15 作者:Average Joe

我计划一劳永逸地跳过帖子类型。这是一个全新的门户网站。它将以文章、多媒体和链接的形式提供成千上万的内容。我将使用一种称为“文章”的自定义帖子类型,而不是帖子同样,对于我的视频、音频和图片帖子,我将使用另一种称为“多媒体”的CPT

我这样做是为了在我们发布任何内容的任何时候,为所有行动带来一个统一的标准,这就是CPT。这有助于我处理URL、管理UI、谁可以控制什么、何时显示什么分类以及所有这些。

两个问题:

如何摆脱管理ui上的“发布”菜单

3 个回复
最合适的回答,由SO网友:EAMann 整理而成

1. how do you get rid of the post menu on the admin ui?

简单,只需取消注册post 岗位类型。没有一个默认的函数来实现这一点,但是一个核心开发人员(Nacin) 在WP Trac记录单上发布了一些示例代码,说明了如何执行此操作:

if ( ! function_exists( \'unregister_post_type\' ) ) :
function unregister_post_type( $post_type ) {
    global $wp_post_types;
    if ( isset( $wp_post_types[ $post_type ] ) ) {
        unset( $wp_post_types[ $post_type ] );
        return true;
    }
    return false;
}
endif;

2. any issues of skipping the post type and not using it at all?

请注意,不建议取消注册默认帖子类型。仅仅因为你能做某事并不意味着你应该做。我最好的建议是首先使用默认帖子作为你的文章。

记住,帖子和页面的注册与其他CPT一样So注销posts 只是为了注册articles 类似于重新发明轮子。

SO网友:Chris_O

作为另一个选项,您可以保留默认值post post\\u键入并更改菜单标签以及与之关联的所有其他标签。

add_action( \'init\', \'c3m_change_post_object_label\' );
function c3m_change_post_object_label() {
    global $wp_post_types;
    $labels = &$wp_post_types[\'post\']->labels;
    $labels->name = \'Articles\';
    $labels->singular_name = \'Add New Article\';
    $labels->add_new = \'Add Article\';
    $labels->add_new_item = \'Add Article\';
    $labels->edit_item = \'Edit Article\';
    $labels->new_item = \'New Article\';
    $labels->view_item = \'View Article\';
    $labels->search_items = \'Search Articles\';
    $labels->not_found = \'No Articles Found\';
    $labels->not_found_in_trash = \'No Articles found in Trash\';
}
add_action( \'admin_menu\', \'c3m_change_post_menu_label\' );
function c3m_change_post_menu_label() {
    global $menu;
    global $submenu;
    $menu[5][0] = \'Articles\';
    $submenu[\'edit.php\'][5][0] = \'Articles\';
    $submenu[\'edit.php\'][10][0] = \'Add Article\';
    echo \'\';
}

SO网友:mroncetwice

我知道这是一个很旧的线程,但我刚刚在GitHub上发现了一个非常小的脚本,它对于注销自定义帖子类型非常方便:

Unregisters a post type and removes the menu item

结束