我正在使用一个特定于主题的自定义挂钩向页面的<body>
要素但是,我的站点上有一些使用模板的页面没有可用的挂钩,并且由于某些原因,我无法修改该模板或在我的子主题中创建自定义版本。我有一种不太优雅的添加属性/值的方法,显然我只想在绝对必要的时候使用。
有没有办法检查当前模板中是否有可用的挂钩?
Pseudo-code:
if(hook_is_available(\'custom_theme_hook\')) {
add_filter(\'custom_theme_hook\', \'best_way\');
} else {
add_action(\'wp_footer\', \'other_way\');
}
我尝试在回调中设置一个可以测试的全局变量,认为只有钩子可用时才会执行它,认为回调只有在有有效钩子的情况下才执行,但显然情况并非如此——不管怎样,变量在所有页面上都返回true。
有没有办法找出钩子是否已经跑了?是否有任何其他解决方案允许我在所有情况下添加属性/值?
最合适的回答,由SO网友:Tom J Nowell 整理而成
No, 为了让它可靠地工作,您需要注册挂钩,这是不可能做到的。知道模板是否触发挂钩的唯一方法是加载模板并找出答案。
您的问题有一个解决方案,但测试挂钩是否可用并不是解决方案