+ 收藏我们

网站模板

网站模板搜索
404模板 营销型模板 外贸网站模板 单页模板 双语模板 标签大全
电话:18630701785
首页 > wordpress > WordPress 实用小功能:列出所有挂载到钩子和过滤器上的函数 >

WordPress 实用小功能:列出所有挂载到钩子和过滤器上的函数

时间:2024-08-10 10:39:50
复制Hook 概要: mx_post_beforeArray
(
    [10] => Array
        (
            [show_breadcrumb] => Array
                (
                    [function] => show_breadcrumb //这里就是挂载到该hook上的功能。
                    [accepted_args] => 1
                )

        )

)

在查看有些主题的代码的时候,我们经常会看得一头雾水,命名代码里面是很干净的,没有特殊的功能函数,但是前台输出的代码就是多了一些我们不想要的东西,这很可能就是主题作者把相应的功能挂载到WordPress的hook上面了。但是到底是挂在到哪个hook上的,或者说一个hook上到底挂载了哪些功能,一点一点的都代码去查找是在是太慢了,今天给大家分享一个比较便捷的方法。

列出所有挂载到钩子和过滤器上的函数

复制/**
 * Print Filters For
 *
 * Discover what functions are attached to a given hook in WordPress.
 */
function print_filters_for( $hook = null ) {
 global $wp_filter;

 // Error handling
 if ( !$hook )
 return new WP_Error( 'no_hook_provided', __("You didn't provide a hook.") );
 if ( !isset( $wp_filter[$hook] ) )
 return new WP_Error( 'hook_doesnt_exist', __("$hook doesn't exist.") );

 // Display output
 echo '<details closed>';
 echo "<summary>Hook summary: <code>$hook</code></summary>";
 echo '<pre style="text-align:left; font-size:11px;">';
 print_r( $wp_filter[$hook] );
 echo '</pre>';
 echo '</details>';
}

使用方法

例如,我使用的主题有一个自定义hook。

复制/* 显示面包屑导航 */
function wizhi_show_breadcrumb() {
    if ( function_exists( 'yoast_breadcrumb' ) ) {
        yoast_breadcrumb( '<p class="breadcrumbs">当前位置:', '</p>' );
    }
}
add_action( 'mx_post_before', 'wizhi_show_breadcrumb' );

现在,我需要显示挂载到此hook上的功能,只需要在function里面加入以下代码就可以了。

复制print_filters_for('mx_post_before');

显示出来了结果如下:

复制Hook 概要: mx_post_beforeArray
(
    [10] => Array
        (
            [show_breadcrumb] => Array
                (
                    [function] => show_breadcrumb //这里就是挂载到该hook上的功能。
                    [accepted_args] => 1
                )

        )

)

有了这个方法,对于我们理解WordPress主题和插件的运行机制有很大的帮助,做WordPress开发的时候,会容易很多。如果你有更好的办法,欢迎在留言中分享。

有问题可以加入网站技术QQ群一起交流学习

本站会员学习、解决问题QQ群(691961965)

客服微信号:lpf010888

Title