我知道有一些WordPress的钩子列表 - > http://adambrown.info/p/wp_hooks/hook
但是,如果我想找到像WC供应商这样的插件的钩子,那么他们的网站上有一个更短的钩子列表。
'do_action'和'apply filter'功能是我们唯一可以修改的吗? 如果给出类似 - >的类https://github.com/wcvendors/wcvendors/blob/master/classes/admin/class-product-meta.php#L10,有什么方法可以修改它吗?
我们是否仅限于do_action挂钩,还是有办法修改其他区域?我们也可以使用WordPress钩子挂钩到WC Vendors插件吗?
答案 0 :(得分:0)
大多数情况下,您应该尝试使用钩子完成任何任务,但是如果不实际修改实际代码,某些任务是不可能的。但我们都知道修改核心代码并不好,因为更新后所有更改都会消失。因此,您可以扩展它,而不是修改类。您可以覆盖当前功能并添加新功能。扩展类就像在functions.php中使用relavant钩子一样简单,然后在同一个文件中扩展它或从另一个文件中需要它。以下是关于如何向woocommerce航运类添加新送货方式的官方tutorial。
有时你甚至不需要所有的钩子,你只需要找到在特定页面上运行的钩子。为此,您可以使用下面的代码列出所有当前的挂钩。
$debug_tags = array();
add_action( 'all', function ( $tag ) {
global $debug_tags;
if ( in_array( $tag, $debug_tags ) ) {
return;
}
echo "<pre>" . $tag . "</pre>";
$debug_tags[] = $tag;
} );
或者您可以使用此插件&#34; simply show hooks&#34;这在开发时非常有用,因为它可以让您了解每个钩子在页面上的触发位置。