WordPress在body标签后直接挂钩

Bro*_*ke. 26 php wordpress

我在找到用于我的插件的正确钩子时遇到了问题.我想要做的是通过让我的插件添加一个功能,在每个页面的顶部添加一条消息.什么是最好的钩子使用?我想在<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_headwp_footer钩子一样使用它来打印<body>.