在 WordPress 中的每个页面请求上执行代码

发布于 2024-11-02 11:38:57 字数 110 浏览 1 评论 0原文

我想在 Wordpress 中的每个页面请求上运行一些代码。我使用了 init 和 shutdown 操作,但在一页上它以某种方式调用该方法两次。 WordPress 中的 PHP 是否有替代或更好的方法?

I want to run some code on every page request in Wordpress. I used the init and shutdown actions, but on one page it is calling the method twice somehow. Is there an alternative or better approach in PHP in Wordpress.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我做我的改变 2024-11-09 11:38:57

迈克,假设页面请求是指它的前面部分(不包括管理员点击),那么 wp_footeradd_action() 的最佳位置。

调用该方法两次可能意味着一些事情(超出我的想象):

  • 您正在查看的页面会触发一个 AJAX 请求,该请求像任何其他请求一样通过 init 操作运行。
  • 您正在查看的页面正在被重定向,该页面也会经历 init 操作。
  • 页面上有一个元素导致它刷新或触发对该页面的调用,Flash 对象喜欢这样做,尤其是游戏,Disqus 评论插件也喜欢这样做。

要进行调试,您可以尝试输出或记录 $_REQUEST 数组的内容,以了解它被触发两次的原因。

干杯。

Mike, assuming that by page request you mean the front part of it (not including the admin hits) then wp_footer is the best place to add_action() to.

Calling the method twice could mean a few things (off the top of my head):

  • The page you're viewing fires an AJAX request which runs through the init action just like any other request.
  • The page you're viewing is being redirected, that goes through the init action as well
  • There's an element on the page causing it to refresh or firing a call to that page, Flash objects like to do that, especially games, Disqus commenting plugin likes to do that as well.

To debug that you could try and output or log the contents of the $_REQUEST array to see why it's being fired twice.

Cheers.

夏至、离别 2024-11-09 11:38:57

您只需在所选主题的 page.php 文件中执行此操作即可。执行该 php 代码以显示每个页面。如果您想为帖子执行一些代码,请使用 single.php

You can simply do that in the page.php file of your selected theme. That php code is executed for displaying each page. If you want to execute some code for posts then use single.php.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文