WordPress开发笔记

WordPress删除区块样板分类的实现方法和具体代码(含系统默认分类)

你想学习如何删除WordPress中不同类型的区块样板模式分类,下面我为你整理了一份操作教程。我会从删除系统默认的、后台编辑添加的,以及通过代码添加的模式分类三个方面来说明,并在最后解释它们的区别。

一. 删除系统默认的区块样板的分类

系统默认的区块样板的分类(如”服务项目”、”关于我们”、”横幅”、“客户评价”、“联系方式”等),可以通过 unregister_block_pattern_category() 函数实现。

方法一:单一删除的方法

在您当前主题的functions.php文件中添加以下代码:

function zzw_remove_default_pattern_categories() {
    // 移除默认模式分类
    unregister_block_pattern_category('featured');
    unregister_block_pattern_category('about');
...
// 可以添加其他需要移除的默认分类标识
}
add_action('init', 'zzw_remove_default_pattern_categories', 100);
//将移除操作挂接到 'init' 钩子上,并设置较高的优先级以确保在默认注册之后执行

说明

  • 你需要知道要移除的默认模式分类的标识(slug)。
  • 此代码会在初始化时移除指定的默认模式分类,使它们不再在区块编辑器的模式库中显示。

方法二:批量删除的方法

这里已经是配置好的,已经将全部默认分类全部写入,可以直接复制使用:

// 移除默认的区块样板的分类类别----------------------------------------------------------
function zzw_remove_default_block_pattern_categories() {
    $categories_to_remove = array(
        'featured',
        'about',
        'audio',    // WordPress 6.4 中添加
        'banner',
        'buttons',
        'call-to-action',
        'columns',
        'contact',
        'footer',
        'gallery',
        'header',
        'media',
        'portfolio',
        'posts',    // 文档建议使用 'query' 替代 'posts'
        'query',
        'services',
        'team',
        'testimonials',
        'text',
        'video',
        'videos'
    );

    foreach ( $categories_to_remove as $category_slug ) {
        // 使用 unregister_block_pattern_category 函数注销每个类别
        unregister_block_pattern_category( $category_slug );
    }
}
// 将移除操作挂接到 'init' 钩子上,并设置较高的优先级以确保在默认注册之后执行
add_action( 'init', 'zzw_remove_default_block_pattern_categories', 20 );

二. 删除编辑中自定义添加的区块样板分类

通过WordPress后台站点编辑器等方式可以自定义添加的模式分类,这属于用户创建内容,可以直接在WordPress后台直接实现删除。

操作方法

  1. 进入WordPress后台。
  2. 导航到 “外观” → “编辑器”“区块样板”
  3. 在左侧边栏中,找到 你添加的分类,并点击分类。
  4. 此时,在右边的主体部分中,将鼠标悬停在你要删除的模式分类上,点击 “操作”(省略号)按钮
  5. 在弹出的菜单中选择 “删除” 选项。
  6. 确认删除操作。

说明

  • 此方法直接删除通过后台界面创建的模式分类。
  • 删除后,该模式分类将从你的网站中移除,对应的所有模式也将不再可用。

三. 删除通过插件或主题function.php添加的区块样板的模式分类

通过插件或主题的functions.php文件代码注册的模式分类,需要通过修改或删除相应的代码来移除。

操作方法

1、定位代码源

如果是主题添加的,打开你当前主题的functions.php文件。

如果是插件添加的,找到对应插件的PHP文件。

2、查找注册代码

在文件中寻找使用 register_block_pattern_category 函数的代码片段。例如:

register_block_pattern_category( 'my-custom-category', array( 'label' => __( 'My Custom Category', 'text-domain' ) ) );

3、删除或注释代码

删除找到的注册代码行,或者在其前面添加///* */将其注释掉。

4、保存文件

保存修改后的文件。

5、清除缓存(如果需要):

如果你使用了任何缓存插件,请清除缓存以确保更改生效。

说明

  • 直接修改主题文件前,务必先备份(建议使用子主题进行修改),以免误操作导致网站问题。
  • 删除代码后,之前通过该代码注册的模式分类将不再显示。
  • 如果此操作后 ,分类依然存咋,可使用上述其他方式再次删除。

四、后台编辑与代码函数实现自定义添加区块样板分类的区别

理解通过WordPress后台编辑添加的区块样板分类与在主题function.php中使用代码函数添加的区块样板分类之间的区别,对于高效管理WordPress站点非常重要。下表概括了它们的主要差异:

特性方面后台编辑添加的模式分类代码函数添加的模式分类
创建与管理方式WordPress后台可视化界面操作需编辑代码文件(如functions.php
技术门槛较低,用户友好,无需编程知识较高,需要基本的PHP和WordPress开发知识
可移植性较弱,通常绑定于当前站点的数据库较强,代码易于迁移到不同站点或主题中
灵活性相对固定,受后台功能限制非常灵活,可通过代码实现复杂逻辑和条件注册
持久性删除主题或插件时,可能丢失(除非明确处理)与主题或插件共存亡,卸载后失效
性能影响通常无直接影响,但大量模式可能增加数据库查询少量代码通常影响微乎其微,高效代码是关键
适用场景偶尔创建少量自定义模式分类的普通用户站长主题/插件开发者、需要批量条件性注册模式分类的高级用户

本文关于删除WordPress中的区块样板分类的问题,我们主要提供了系统默认、后台添加以及代码添加三种情况的删除方法。但是具体情况需选择合适的方法。希望这份教程对你有帮助。

请注意,在进行任何代码修改或后台操作之前,务必备份你的网站数据和文件,以防止意外发生。如果你对某些操作不确定,建议先在测试环境中尝试。