0

I have this function where I call a custom function through the add_action hook:

add_action('publish_post', 'custom_function');

... now it works perfectly, but the I want the custom_function to be delayed so it runs AFTER the post has been published.

BUT, if I add sleep(20) inside the custom_function it delays the post itself. What I want is the post to be published, and THEN run this function after x seconds.

Thanks!

1

publish_post is called after post is published! So, you already got covered. but if you want to run an action after a certain time of the post is published, it's better to write a cron job.

For example, if you need to run the function after 5 minutes of the post is published, you need to register a single cron event that will be triggered after 5 minutes from now (post publish)

add_action('publish_post', 'register_single_cron');

function register_single_cron($id){
  wp_schedule_single_event(tim() + 300, 'custom_function');
}

function custom_function(){
  //your logic goes here
}

Please check the api details here.

But this system has one problem, it will not be triggered until site is loaded/visited on or after the scheduled time.

  • ah, visiting the site is a strange requirement. :( any other workarounds? – Nimbuz Jun 23 '12 at 7:34
  • i do not see any easy workaround! all the alternatives i've in my mind are more complicated :s – HungryCoder Jun 24 '12 at 4:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.