将来要发布为后期版本

时间:2017-10-01 作者:LPH

基于一个示例found on this page, 我试图在我的插件中使用这个。没有开火。一张便条on this page 声明的publish\\u future\\u post已弃用,并替换为future\\u to\\u publish。这也失败了。

因此,我试图制作一个简单的插件,只在插件中添加这个add\\u操作。再一次,Posteta没有更新。

下面是“future post”插件中的代码。

function future_publish ( $post_id ) {
    update_post_meta( $post_id, \'hook_fired\', \'true\' );
}

add_action( \'future_to_publish\', \'future_publish\' );
我一直在绕来绕去。一些人发布的过渡状态工作正常,其他人说它不能包装在is\\U admin中,而且,我仍然无法获得一个预定的帖子来实际触发任何东西,除了发送到WP的帖子。我不能插手这件事。

是否有人真的试图在预定的帖子发布后插手,并发生了什么事情?

更新:请原谅我打字。我的意思是发表并最初打印的帖子。这是因为我对这个话题感到沮丧。

更新编号2:我从一个特定于$old==“future”的答案中复制了代码,这可以更新meta。太棒了但是meta后面的代码(此处未显示)不会运行。至少现在我知道,当$old==“future”时,操作是有效的。我不知道为什么后面的代码不起作用,但那是另一个问题。

现在,我只能假设代码$old!=\'“发布”不会触发计划的帖子,必须指定“未来”。我会记下答案的。

2 个回复
最合适的回答,由SO网友:Frank P. Walentynowicz 整理而成

使用publish_future_post 行动挂钩。与Codex所说的相反,它并没有被弃用,它可以与WordPress 4.8.2一起使用。您的代码应为:

function my_test_future_post( $post_id ) {
    update_post_meta( $post_id, \'hook_fired\', \'true\' );
}
add_action( \'publish_future_post\', \'my_test_future_post\' );
已测试!

如果您担心publish_future_post 不推荐使用挂钩,请使用transition_post_status 挂钩:

function my_test_future_post( $new, $old, $post ) {
    if ( $post->post_type == \'post\' && $new == \'publish\' && $old == \'future\' )
        update_post_meta( $post->ID, \'hook_fired\', \'You bet!\' );
}
add_action( \'transition_post_status\', \'my_test_future_post\', 10, 3 );
测试functions.php 和插件。

SO网友:FluffyKitten

Update:

现在您已经更改了问题(并使我原来的答案看起来完全错误!):

我没有使用挂钩future\\u to\\u publish,但我成功地使用了transition_post_status 操作(也在Codex page) 检测状态更改。

类似的事情以前也曾对我起过作用:

add_action( \'transition_post_status\', \'my_status_change\', 10, 3 );

function my_status_change( $new_status, $old_status, $post ) {
    if ($old_status=="future" && $new_status=="publish"){
        // do stuff....
    }
}
我想你可能弄错了两个钩子?这个Codex 指以下挂钩:

  1. {old_status}_to _{new_status} Hook{new\\u status}的{old\\u status}操作。

    在您的情况下:future\\u to发布(future\\u to post不会起作用,因为post不是状态

    1. {status}_{post_type} Hook

      在您的情况下:这将是publish\\u post(我想这可能是您将它们混淆的地方?)

      我假设您只希望future发布转换,请尝试:

      add_action( \'future_to_publish\', \'future_publish\' );
      

结束

相关推荐

自定义搜索表单,POSTS_PER_PAGE值被忽略

我正在尝试构建自定义搜索表单,我希望覆盖网站的默认每页帖子数限制,但我使用的隐藏字段似乎根本不起作用:我有:<input type=\"hidden\" value=\"-1\" name=\"posts_per_page\" /> 。。但当我在搜索结果页面上检查$wp\\u查询时,这似乎被忽略了(我正在进行的搜索匹配29篇帖子,但$wp\\u查询->帖子的计数为10。我使用不同的值进行了多次测试,但都没有用。完整自定义搜索表单如下所示:<form role=\"sear