我们能改变钩子的发射顺序吗?

时间:2022-01-03 作者:ratib90486

在admin中,我需要启动save_post 启动前的操作transition_post_status 钩但根据this, 这个transition_post_status 保存帖子之前先激发。

我怎样才能反转它?我尝试更改下面的优先级顺序,但我认为它不起作用,因为它适用于为同一操作触发不同的函数。

$this->loader->add_action( \'save_post\', $plugin_admin_listings, \'save_meta_data\', 9, 2 );
$this->loader->add_action( \'transition_post_status\', $plugin_admin_listings, \'transition_post_status\', 10, 3 );

2 个回复
SO网友:Rup

这有点像黑客,但你可以

在$plugin\\u admin\\u listings类中创建一个新成员,该成员是在此页面周期中发布的帖子ID数组,在您的transition\\u post\\u状态下,在save\\u meta\\u中添加ID到该数组,当您保存每篇帖子时检查其ID是否在发布的帖子数组中,然后发送电子邮件,如果可以从一个管理批量操作(我想是吧?)。然而,如果这两个钩子在单独的页面加载中运行(我想他们不会这样做),那么这会导致崩溃。如果是这种情况,您可以添加两个post\\u元时间戳

上次发布的时间戳(设置为转换后状态)

  • 上次发布的电子邮件发送时间戳(在您发送电子邮件时设置)
    • 在save\\u post挂钩中,您可以检查第一封邮件是否在第二封邮件之后,然后发送新邮件。(WP\\u Post对象上的一个现有日期也可能有效,但我忘记了它们的确切设置时间。)

    SO网友:ratib90486

    好的,我;“已解决”;通过放置我想要的代码(update_post_meta) 连接的函数内部transition_post_status.

    相关推荐

    如何从wp-admin的编辑评论页面中删除一些作者字段?

    对于自定义角色,我必须删除/隐藏WP admin中编辑注释区域内“作者”框中的电子邮件和URL字段。只有名称字段应该在那里可见。我必须在讨论设置中为评论启用URL和电子邮件字段,并且不能使用CSS仅在前端隐藏字段。它们应该完全从页面的源代码中删除,因此最有可能的方法是删除字段的后端代码。WP admin中编辑评论页面的URL示例:wp-admin/comment.php?action=editcomment&c=544499.表单来自wp-admin/edit-form-comment.php,