我在找到用于我的插件的正确钩子时遇到了问题.我想要做的是通过让我的插件添加一个功能,在每个页面的顶部添加一条消息.什么是最好的钩子使用?我想在<body>标签后面插入内容.
编辑:我知道它已经过了3年,但这里有一张感兴趣的人的电子票:http://core.trac.wordpress.org/ticket/12563
Jor*_*eña 37
或者,如果您自己创建主题和/或可以修改它,您可以使用WordPress的do_action功能自己创建一个动作.这也是他们创建其他钩子的方式.因此,基本上在您的主题中,您可以在<body>标签后面找到您想要的位置,并执行以下操作:
do_action('after_body');
Run Code Online (Sandbox Code Playgroud)
您还可以将参数传递给操作回调,请参阅链接的文档以获取信息.
然后,您只需使用该add_action函数挂钩即可.
add_action('after_body', 'my_callback');
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.对不起,如果我误解了.
小智 14
在Wordpress中创建自定义钩子非常简单.在header.php(或你可能需要一个钩子的任何地方)找到:
<body <?php body_class(); ?>>
<div id="body-container">
Run Code Online (Sandbox Code Playgroud)
并使它:
<body <?php body_class(); ?>>
<?php body_begin(); ?>
<div id="body-container">
Run Code Online (Sandbox Code Playgroud)
这是我们的钩子,现在让它让它发挥作用.另外functions.php:
function body_begin() {
do_action('body_begin');
}
Run Code Online (Sandbox Code Playgroud)
现在可以使用hook,只需添加您需要的任何操作functions.php:
function my_function() {
/* php code goes here */
}
add_action('body_begin', 'my_function');
Run Code Online (Sandbox Code Playgroud)
或javascript(跟踪代码等 - 虽然这不是完美的方式,但是从.js文件加载javascript是一种更好的做法,但它肯定比直接向模板文件添加javascript更好):
function my_function() { ?>
<script>
<!-- JavaScript goes here --!>
</script>
<?php
}
add_action('body_begin', 'my_function');
Run Code Online (Sandbox Code Playgroud)
jdp*_*jdp 12
这有点困难...大多数主题在该领域没有任何钩子.您可以将javascript/html解决方案挂钩wp_footer并显示在页面顶部...有点Stack Overflow如何做到这一点,或者Twitter如何进行通知.
这是WordPress中包含的所有钩子的最佳参考:http: //adambrown.info/p/wp_hooks/
小智 5
变化,变化,变化。因此,自 2019 年 3 月(来自 WP 5.2)以来,我们似乎有了更好的方法来做到这一点。
有一个新功能wp_body_open()。为了支持它,您的主题必须在<body>打开标签后立即调用此函数:
<html>
<head>
..
..
<?php wp_head(); ?>
</head>
<body>
<?php wp_body_open(); ?>
..
..
<?php wp_footer(); ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后你可以像使用wp_head或wp_footer钩子一样使用它来打印<body>.