WordPress在第5版中添加了 Gutenberg编辑器,并且默认情况下启用了Post和Page帖子类型。
默认情况下可能会在不久的将来为所有自定义帖子类型启用此功能,因此作为WordPress开发人员,我想知道如何针对我自己的自定义帖子类型禁用此编辑器?我想保留经典编辑器,以查看我通过插件或主题注册的帖子类型。
答案 0 :(得分:3)
使用WordPress过滤器可以简单地禁用编辑器。
如果只想对自己的帖子类型禁用块编辑器,则可以将以下代码添加到主题的插件或functions.php
文件中。
add_filter('use_block_editor_for_post_type', 'prefix_disable_gutenberg');
function prefix_disable_gutenberg($current_status, $post_type)
{
// Use your post type key instead of 'product'
if ($post_type === 'product') return false;
return $current_status;
}
如果要完全禁用块编辑器(不建议使用),则可以使用以下代码。
add_filter('use_block_editor_for_post_type', '__return_false');
如果只想对自己的帖子类型禁用古腾堡编辑器,则可以将以下代码添加到主题的插件或functions.php
文件中。
add_filter('gutenberg_can_edit_post_type', 'prefix_disable_gutenberg');
function prefix_disable_gutenberg($current_status, $post_type)
{
// Use your post type key instead of 'product'
if ($post_type === 'product') return false;
return $current_status;
}
如果要完全禁用Gutenberg编辑器(不推荐),则可以使用以下代码。
add_filter('gutenberg_can_edit_post_type', '__return_false');
答案 1 :(得分:0)
使用自定义帖子类型的另一种方式。
注册cpt时,请添加add_post_type_support( 'news', 'excerpt' );
完整示例:
function create_news() {
$args = [
'labels' => [
'name' => __( 'News', 'lang' ),
'singular_name' => __( 'News', 'lang' ),
'add_new_item' => __( 'Add a news', 'lang' ),
],
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-admin-post',
'show_in_rest' => false,
'rewrite' => ['slug' => 'news'],
'show_in_nav_menus' => true,
];
register_post_type( 'news',
$args
);
}
add_action( 'init', 'create_news' );
add_post_type_support( 'news', 'excerpt' );
答案 2 :(得分:0)
与上面显示的其他用户一样,可以。另外,我想告知以下内容。
在最新的Wordpress或Wordpress 5+中-(使用Gutenberg)这两种方法与删除Gutenberg的效果相同,但这样做的方式也有所不同:
(同时插入functions.php或自定义插件函数)
要从您的帖子类型中删除古腾堡:
add_filter('use_block_editor_for_post_type', 'prefix_disable_gutenberg', 10, 2);
function prefix_disable_gutenberg($gutenberg_filter, $post_type)
{
if ($post_type === 'your_post_type') return false;
return $gutenberg_filter;
}
以上内容将把Gutenberg编辑器从您的自定义帖子类型中完全删除,但是其他meta框/等仍然可用且保持不变。
但是,如果您希望删除文本编辑器/文本区域本身-或其他默认选项,WordPress也将其视为Gutenberg,因此您可以专门删除它,并通过添加以下内容来同时删除Gutenberg:
add_action('init', 'init_remove_editor',100);
function init_remove_editor(){
$post_type = 'your_post_type';
remove_post_type_support( $post_type, 'editor');
}
以上内容将禁用Gutenberg和wordpress的“编辑器”。可以用其他metabox / data选项代替。 (作者/缩略图/修订等)
答案 3 :(得分:0)
如果您想从自定义帖子类型中删除编辑器或任何其他字段,请在functions.php 文件中尝试此代码
boss = 20
player = 20
def boss_battle():
global boss
global player
boss_fight = input("Will you attack from the left, middle, or right? ").lower()
if boss_fight == "left":
boss = boss - 3
player = player - 3
print("Boss has taken 3 damamge, you have also taken 3 damage")
boss_battle()
elif boss_fight == "right":
random_hit = (random.randint(1,6))
if random_hit > 3:
boss = boss - 7
print("The enemy has taken 7 damage!! ")
boss_battle()
elif random_hit < 3:
player = player - 7
print("YOU MISSED! You have taken 7 damage! ")
boss_battle()
elif boss_fight == "middle":
print("You missed! You take 2 damage. ")
player = player - 2
boss_battle()
else:
print("Please select a valid option")
boss_battle()
if boss == 0:
print("You killed the enemy, you take the gold and lavish in the riches!")
elif player == 0:
print("You died!")
cave_game()