2016-05-30 4 views
2

Я пытаюсь сохранить данные в файл при публикации запланированного сообщения. Я попытался сделать это, используя hooks 'future_to_publish', 'publish_future_post', 'transition_post_status' - ни один из них не работал для меня. Я экспериментировал с изменением приоритета крючков - тоже не работал.«future_to_publish» hook не работает в wordpress

Это мой код:

<?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 job, но, тем не менее, я не могу заставить это работать.

+0

Вызывается функция? – brianlmerritt

+0

нет, я так не думаю, функция вообще не выполняется – Dimentica

+2

Вы можете вставить код отладки, например '$ logdata =" \ n ". date ("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(); не работает так же, как когда публикация публикуется немедленно с панели администратора, поэтому использование точного пути к моему файлу решило проблему.

Смежные вопросы