首页 视频课程 主题开发课程第16章、内核钩子 WordPress内核常用钩子介绍

WordPress内核常用钩子介绍

2023-06-11 / 344阅

WordPress内核常用钩子介绍

WordPress内核提供了许多钩子(Hooks),可以让开发者在不修改WordPress核心文件的情况下,插入自己的代码,实现自己的功能。钩子分为两种:动作钩子(Action Hooks)和过滤器钩子(Filter Hooks)。

动作钩子(Action Hooks)

动作钩子表示在某个特定事件发生时,执行一段代码,例如当WordPress加载完毕时,当用户登录时。常用的动作钩子有:

wp_enqueue_scripts

wp_enqueue_scripts是在加载前端脚本和样式表时执行的动作钩子。可以用来添加自己的前端脚本和样式表,例如:

function my_scripts() {
    wp_enqueue_script( 'my-script', get_template_directory_uri() . '/js/my-script.js', array(), '1.0', true );
    wp_enqueue_style( 'my-style', get_template_directory_uri() . '/css/my-style.css', array(), '1.0' );
}
add_action( 'wp_enqueue_scripts', 'my_scripts' ); 

init

init是在WordPress初始化时执行的动作钩子。可以在这里注册自定义文章类型、分类法等等。例如:

function create_post_type() {
    register_post_type( 'book', array(
        'labels' => array(
            'name' => 'Books',
            'singular_name' => 'Book'
        ),
        'public' => true,
        'has_archive' => true,
    ) );
}
add_action( 'init', 'create_post_type' ); 

过滤器钩子(Filter Hooks)

过滤器钩子表示在某个特定时刻,过滤某些数据并返回被过滤后的数据。常用的过滤器钩子有:

the_content

the_content是在文章正文($post->post_content)输出时执行的过滤器钩子。可以在这里对文章正文进行过滤,例如增加面包屑导航:

function add_breadcrumb_to_content( $content ) {
    if ( is_single() ) {
        $breadcrumb = '<div class="breadcrumb">' . get_breadcrumb() . '</div>';
        $content = $breadcrumb . $content;
    }
    return $content;
}
add_filter( 'the_content', 'add_breadcrumb_to_content' ); 

the_title

the_title是在文章标题($post->post_title)输出时执行的过滤器钩子。可以在这里对文章标题进行过滤。例如增加前缀:

function add_prefix_to_title( $title ) {
    $prefix = 'Prefix: ';
    return $prefix . $title;
}
add_filter( 'the_title', 'add_prefix_to_title' ); 

总结

以上是我常用的WordPress内核钩子的介绍和示例代码。使用钩子可以让我们在不改变核心代码的情况下,扩展WordPress的功能,提高代码的可维护性。学习过程中可以多查看官方文档,积累经验,并不断提高自己的开发水平。

阅读文章或者观看视频过程中有任何问题,请下方留言或者联系我Q248758228

大家谈论
    我的见解
    目录