Action on post publish

时间:2017-04-18 作者:TheBalco

我想在发布帖子时做点什么(无论是更新[草稿->发布]还是刚刚创建)

在我的插件中,我尝试了不同的操作来尝试这个。我尝试了以下代码来检测何时触发了哪个事件:

function new_post() { file_put_contents(\'debug.log\', \'new_post\', FILE_APPEND); }
function publish_post() { file_put_contents(\'debug.log\', \'publish_post\', FILE_APPEND); }
function pending_post() { file_put_contents(\'debug.log\', \'pending_post\', FILE_APPEND); }
function draft_post() { file_put_contents(\'debug.log\', \'draft_post\', FILE_APPEND); }
function auto_draft_post() { file_put_contents(\'debug.log\', \'auto_draft_post\', FILE_APPEND); }
function future_post() { file_put_contents(\'debug.log\', \'future_post\', FILE_APPEND); }
function private_post() { file_put_contents(\'debug.log\', \'private_post\', FILE_APPEND); }
function inherit_post() { file_put_contents(\'debug.log\', \'inherit_post\', FILE_APPEND); }
function trash_post() { file_put_contents(\'debug.log\', \'trash_post\', FILE_APPEND); }
function save_post() { file_put_contents(\'debug.log\', \'save_post\', FILE_APPEND); }

add_action(\'new_post\', \'new_post\', 10, 2);
add_action(\'publish_post\', \'publish_post\', 10, 2);
add_action(\'pending_post\', \'pending_post\', 10, 2);
add_action(\'draft_post\', \'draft_post\', 10, 2);
add_action(\'auto-draft_post\', \'auto_draft_post\', 10, 2);
add_action(\'future_post\', \'future_post\', 10, 2);
add_action(\'private_post\', \'private_post\', 10, 2);
add_action(\'inherit_post\', \'inherit_post\', 10, 2);
add_action(\'trash_post\', \'trash_post\', 10, 2);
add_action(\'save_post\', \'save_post\', 10, 2);
但这似乎只有在我计划将来发表一篇文章时才起作用。在这种情况下,只会触发“publish\\u post”和“save\\u post”。

我是否需要配置某些内容,或者为什么其他内容不起作用?

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

如果您的目标是在发布帖子时触发代码,如中所示post_status 设置为publish, 然后你就可以save_post 像这样:

function cc_publish_wpse_263985( $postid ) {

    // check if post status is \'publish\'
    if ( get_post_status( $postid ) == \'publish\')  ) {

        // do something here

    }

}
add_action( \'save_post\', \'cc_publish_wpse_263985\' );

相关推荐

Even/Odd every two posts

我需要每两篇文章显示一个不同的布局,是否可以使用偶数/奇数来实现这一点?<?php while (have_posts()): the_post() ?> <?php if ($wp_query->current_post % 2 == 0): ?> even <?php else: ?> odd <?php endif ?> <?php endwhile