编辑帖子时应该触发‘wp’钩子吗?

时间:2013-09-18 作者:David Stinemetze

我正在试图弄清楚这是出于设计,是一个bug还是一个我应该尝试请求的特性。我创建了一个插件并添加了以下代码:

function test_wp() {
    echo \'<div style="position: absolute; border: 3px solid #dcdcdc; background: #ffffff; padding: 20px; left: 200px; top: 100px; font-size: 30px; z-index: 9999;">It worked</div>\';
}
add_action(\'wp\', \'test_wp\');
我基本上是在寻找\'wp\' hook 是否触发。它没有加载到管理仪表板上,这很明显,因为它没有加载任何单个WP对象。每当我点击“所有帖子”时,它确实会被触发。这就是我所期望的。

现在,当在任何现有帖子上单击编辑时,帖子编辑器页面上似乎没有触发“wp”挂钩。在我看来,应该在这里调用“wp”挂钩,因为它正在加载一篇文章,并将其各自的数据直接加载到此页面上。然而,触发器似乎没有加载。

我是不是错过了一些不在这里加载的逻辑?

我可以触发\'posts_selection\' hook, 根据Action Reference list 发生在“wp”挂钩运行之前。也就是说,我不知道“posts\\u selection”实际上在做什么,因为它的文档是空的。

我目前正在运行WordPress 3.6.1,在3.6.0中也有同样的问题。我没有尝试过3.6之前的任何版本。

1 个回复
最合适的回答,由SO网友:gmazzap 整理而成

\'wp\' 行动挂钩is not 在后期编辑页面上触发。

这个钩子是一个与查询相关的钩子,它意味着每次从url触发posts查询时,它都会运行。

因此frontend 钩子(它在每个前端请求上运行),即使在某些编辑页面中触发,更具体地说,在执行post查询的管理页面中:edit.php (so post、page和每个cpt列表)和upload.php (显示媒体列表,即附件帖子类型)。

当您进行单帖子编辑时,不会触发帖子查询,因为当前帖子是由WP使用get_post().

\'posts_selection\' 是另一个与查询相关的挂钩,因此它在每个前端请求和运行post查询的管理页面上运行(就像\'wp\' 挂钩)。

如果您需要在后期编辑页面上运行的早期操作挂钩,最好查看\'load-post.php\' 挂钩(其中一个\'load-{$page}\' hooks),即已启动only 在后期编辑页面上。

在该挂钩上运行的函数中,可以使用访问正在编辑的帖子id$_GET[\'post\'] 变量

结束

相关推荐

我的网站的wp-admin在将站点URL指向一个子目录后重定向到另一个网站的wp-admin

* DETAILS THAT LEAD UP TO MY PROBLEM *我很熟悉WP给WordPress提供自己的codex目录。我正在我的个人网站上进行试验,erons-expressions.com 重定向到不同的子目录。最初,我将WordPress文件加载到它自己的/WordPress子目录中,并成功地将我的站点重定向到它。我正在为一家非营利组织重新设计(wecareabilene.org) 并将使用WP。他们是一个单独的托管帐户,有自己的wp管理员,我需要使用这种方法将他们的站点重定向到全年