我在发布预定帖子时尝试将数据保存到文件中。我尝试使用钩子' future_to_publish',发布_future_post',' transition_post_status' - 他们都没有为我工作。我尝试改变钩子的优先级 - 也没有用。
这是我的代码:
<?php
function savePostData( $ID ) {
$wpRootPath = get_home_path();
$postsDataPath = $wpRootPath . 'test.txt';
$handle = fopen( $postsDataPath, "w" );
fwrite( $handle, $ID );
fclose( $handle );
}
add_action( 'future_to_publish', 'savePostData', 10, 1 );
?>
将相同的功能附加到以下挂钩时,一切正常:
add_action( 'publish_post', 'savePostData', 10, 1 );
add_action( 'pending_to_publish', 'savePostData', 10, 1 );
add_action( 'draft_to_publish', 'savePostData' );
我读到is_admin()函数干扰wordpress cron作业存在一些问题,但是,我仍然无法使其工作。
答案 0 :(得分:2)
事实证明,当使用cron发布帖子时,'publish_post'钩子也会被执行,我不需要将它与'future_to_publish'钩子一起使用。
然而,两个钩子的问题是由于某种原因get_home_path();与从管理面板立即发布帖子的方式不同,因此使用我的文件的确切路径解决了问题。