如何控制帖子的帖子类型及WP数据结构通感

时间:2013-11-23 作者:any_h

我想:

控制帖子类型的名称,就像我可以使用自定义帖子类型一样,为帖子设置存档页面,例如示例。com/posts,如自定义post类型,控制归档slug,如我可以控制自定义post类型,但我不能。我可以创建新的post类型,并unregister_post_type(\'posts\'). 等待它。。。我不能。或者我能不能?This ticket 只解决了这一点,但功能unregister_post_type 还不存在,对吧?

我能做的就是从菜单中隐藏帖子。但这并没有消除它们。我得在这里绕道两条路。如果可以像自定义帖子类型一样控制默认的帖子类型,那不是很好吗?还有其他人有同样的感觉吗?

这一切可能都有我不知道的原因。

enter image description here

谢谢

2 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

您可以使用globals$menu, $submenu$wp_post_types 用于重命名。

Code:

    function wpse124233_alter_builtin_post_menu_label() {
        global $menu;
        global $submenu;
        $menu[5][0] = __( \'YourName\' );
        $submenu[\'edit.php\'][5][0] = __( \'YourName\' );
        $submenu[\'edit.php\'][10][0] = __( \'Add YourName\' );
        $submenu[\'edit.php\'][16][0] = __( \'YourName Tags\' );
    }
    add_action( \'admin_menu\', \'wpse124233_alter_builtin_post_menu_label\' );

    function wpse124233_alter_builtin_post_labels() {
        global $wp_post_types;
        $labels = &$wp_post_types[\'post\']->labels;
        $labels->name = __( \'YourName\' );
        $labels->singular_name = __( \'YourName\' );
        $labels->add_new = __( \'Add YourName\' );
        $labels->add_new_item = \'__( Add YourName\' );
        $labels->edit_item = __( \'Edit YourName\' );
        $labels->new_item = __( \'YourName\' );
        $labels->view_item = __( \'View YourName\' );
        $labels->search_items = __( \'Search YourName\' );
        $labels->not_found = __( \'No YourName found\' );
        $labels->not_found_in_trash = __( \'No YourName found in Trash\' );
    }
    add_action( \'init\', \'wpse124233_alter_builtin_post_labels\' );
此外,您还可以使用get_post_type_object() 更改内置立柱类型。查看以下问题的答案Modify built-in post type properties 了解如何做到这一点。But 乱搞内置的帖子类型不是最好的主意,除非你完全确定自己知道自己在做什么。就我个人而言,我避免这样做,而是使用自定义帖子类型来实现我想要实现的不同功能。

除此之外,当然有时候(r)对内置功能有更多的控制是很好的,但大多数东西都是可定制的,或者可以作为额外功能添加。原因可能只是拥有一套内置的功能,不仅是帖子和页面,还有其他所有功能,都经过优化,可以相互协作。这使得wordpress在安装并提供了默认设置之后就变得非常广泛和强大。

有一些可能性可以有一个更干净、更纯净、必不可少的开始:

  1. WP Strip Naked

    <保险商@kaiser
  2. Github

    将可湿性粉剂剥离成最基本的成分。如果您将WP用作CMS,则删除不需要的所有内容。不需要任何选项。插件是现成的–只需激活即可!

  3. Backpress

    • Homepage isn\'t wordpress关于:

      BackPress是web应用程序核心功能的PHP库。它源于广受欢迎的WordPress项目,也是bbPress和GlotPress姐妹项目的核心。

SO网友:any_h

所以,事实证明,删除内置的帖子类型实际上很容易*forehead slap*. 方法如下:

// Remove Posts
add_action( \'init\', \'remove_posts\');
function remove_posts() {
   global $wp_post_types;
   unset( $wp_post_types[\'post\'] );
}
// And it\'s menu item
function remove_menus(){
    remove_menu_page( \'edit.php\' );
}
add_action( \'admin_menu\', \'remove_menus\' );
进一步阅读:

结束

相关推荐

Rename "Portfolio" slug?

我有一个我正在处理的WordPress主题,叫做“Forte”。是的,这是一个高级主题。我已经联系过开发人员,但显然他并不想在这种情况下提供帮助。好吧,我需要把“投资组合”这个词换成其他的词。“公文包”对我正在开发的网站根本不起作用。过去我所做的就是找到‘rewrite’ => array(“slug” => “portfolio”), 在里面functions.php 我会把它改成‘rewrite’ => array(“slug” => “NEW-SLUG-NAME”),. 然而