自定义帖子类型:如何摆脱编辑器(-元框)


9

我在问我如何摆脱后期编辑(Visual + HTML)。我尝试不注册帖子类型支持,但它仍然出现(取消注册可以与帖子编辑屏幕上的所有其他默认元框一起使用)。我还尝试使用remove_meta_box注销它,该方法也不起作用(除了title meta box以外,其他所有功能都可以使用)。也许我想念一些东西。已在网上搜索,找不到任何内容。我希望有人能告诉我。谢谢!

附言 对于禁用标题字段的解决方案,我也很满意,但这是第二个(不将其注册为post type作品)。

(Wordpress版本为3.0.4。)

Answers:


17

在帖子类型的声明中为“支持”提供一个空白数组应摆脱编辑器和标题,以及编辑帖子页面中的所有其他默认框。

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

结果: 替代文字 使用您要显示的任何元素(例如引用,评论等)填充“支持”。或者将其保留为空白以使页面空白,但可以保存帖子的框除外。如果您还想摆脱层次分类法元框,请确保访问此处


到目前为止谢谢。我的问题是我无法将所有内容都设置为空。我编写了三个类来加快自定义帖子类型,自定义分类法和标签的生成。他们有默认值。对于自定义帖子类型,这就是所有内容。但是我需要注销一些用于特定帖子类型的邮箱。我还需要注销编辑器框。
kaiser

我对将所有内容设置为空表示什么意思感兴趣?如果您想摆脱编辑器,在类中创建帖子类型时,不要将“ editor”放入“ supports”数组中。
Manny Fleurmond

2
@kaiser如果是您自己的课,那是什么问题?让他们处理吗?..
罗斯特(Rarst)2011年

@Rarst:这只是做以下事情的基础:从数组中注册帖子类型和分类法,并为$ labels和$ args(默认值和特定值)提供过滤器。术语类仅生成不可删除的术语,这些术语会更新并从数组分配。没有课程,元框可能很容易,并且对我来说整合起来没有意义。那里的课程只是为了节省我的时间,并阻止客户端删除系统所需的术语。但是感谢您的关注。非常感谢您的帮助:)
kaiser

2
@kaiser那么supports通过过滤器设置为空数组有什么问题?
2011年

15

如果不为supports参数传递任何内容'title', 'editor'则使用的默认设置(其中“ nothing”是empty())。

但是,就像您可以在注册帖子类型后添加对某事的支持一样add_post_type_support( $post_type, $feature ),您也可以通过调用来删除对某事的支持remove_post_type_support( $post_type, $feature )。因此,在注册您的帖子类型后调用此选项应删除编辑器:

remove_post_type_support( 'my_post_type', 'editor' );

这些函数只是操作全局$_wp_post_type_features变量,但是与API函数相比总比自己动手做更好。


污染!我一直以为这只是为了删除前任。缩略图或nav_menu(通过子主题)。非常感谢!
kaiser

1
哎呀,我很想念。好的一点,传递空数组将计算为空...传递空值始终是一团糟,这是违反直觉的,因此将其视为default而不是none。:(
罗斯特2011年

1
@Rarst:我认为,如果您传递了虚拟功能名称,它也将起作用。它只是一个数组键,因此,是否插入了虚拟数据都没有关系。我曾经用0.1代替0参数来通过empty()检查。
Jan Fabry

1
@Jan Fabry是的,这不是我第一次踩到empty()我的。如上所述-非常违反直觉。
罗斯特2011年

嗯 它不能使用键,因此我认为“虚拟值”在以后升级时可能会变成另一个“地雷”(尝试查找错误的值)。无论如何:非常感谢你们俩!:)编辑:如果值不只是存在,而是键/值对,将很方便。例如 'support' => array('thumbnail' => true, 'editor' => false);
kaiser

2

我使用“自定义帖子类型” UI插件来创建自定义帖子类型。使用此插件,您可以在高级选项下禁用后编辑器。

管理帖子类型->查看高级选项

这是插件的链接:http : //wordpress.org/extend/plugins/custom-post-type-ui/

PS-它也允许您禁用标题字段:)


如上所述,我编写了三个类,因此无法切换到插件。我的意思是我什至不考虑使用插件。插件(imo)用于开发或易于互换的东西(如注释表单),而不是核心内容(如帖子类型或分类法)。不管怎么说,还是要谢谢你!
kaiser

1
实际上,插件能够自定义有关Wordpress的几乎所有内容,包括自定义帖子类型。我现在正在创建一个插件,该插件可以创建大量帖子类型,其元框和各个自定义字段。
Manny Fleurmond 2011年

@Manny Fleurmond:如果您要分享,请给我一个链接。我仍在考虑也许在类中为高级元框编写例程。
kaiser

0

查看register_post_type(); 在法典中。在“ 参数”部分下,向下滚动,直到看到“ 支持”

从3.5开始,false可以将布尔值作为值而不是数组传递,以防止发生默认(标题和编辑器)行为。

或通过添加所需的值来定制所需的自定义帖子类型,例如:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

我数组中的这些受支持的选项将出现在我的wordpress后端中。


-2

您也可以为管理员编辑页面设置样式以隐藏某些元素,例如编辑器等。

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');

感谢您的回答,但这将(a)使它不可移动,因为它没有在Dependencies API中注册,并且(b)使知道如何使用浏览器开发人员工具的人员可以访问它。
kaiser 2014年
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.