2016-05-30 32 views
2

スケジュールされた投稿が公開されたときにデータをファイルに保存しようとしています。私はフック 'future_to_publish'、 'publish_future_post'、 'transition_post_status'を使ってこれをしようとしました - それらのどれも私のために働いていませんでした。私はフックの優先順位を変えて実験しました。どちらもうまくいかなかったのです。'future_to_publish'フックがワードプレスで動作しない

これは私のコードです:以下に同じ機能を付加

<?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

関数が呼び出されていますか? – brianlmerritt

+0

いいえ、私はそうは思わない、関数はまったく実行されない – Dimentica

+2

'$ logdata =" \ n "のようなデバッグコードを挿入する可能性があります。日付(「D M d、Y G:i」)。 " - savePostDataは\ n"; $ logdata。= "\ nID:" print_r($ ID、true); file_put_contents( '/path/to/somewhere/with/write/file/permissions/savePostData.log'、$ logdata、FILE_APPEND); ' – brianlmerritt

答えて

2

投稿がcronで公開されたときに、 'publish_post'フックも実行され、 'future_to_publish'フックと一緒に使用する必要はありませんでした。

しかし、両方のフックの問題は、何らかの理由でget_home_path()でした。管理パネルから投稿がすぐに公開されたときと同じように機能しないため、ファイルへの正確なパスを使用することで問題は解決しました。

関連する問題