I have the following code in my functions.php that executes a script after posting:
function save_new_post($post_ID) { $site_root = '/home/forexmag/public_html/directory2'; $post = get_post($post_ID); $title = $post->post_title; $breaking_news = false; $categories = get_the_category($post_ID); if (is_array($categories) && !empty($categories)) { foreach ($categories as $cat_det) { //this is the id for the breaking (bad) news if (5668 == $cat_det->cat_ID) { $breaking_news = true; break; } } } $exec_code = "/usr/local/bin/php $site_root /crons/cron_notify.php '$title' $post_ID 2 " . intval($breaking_news); exec( $exec_code ); } add_action('draft_to_publish', 'save_new_post', 10, 1);
When I post a new message, I get the following error:
Catchable fatal error: Object of class WP_Post could not be converted to string in /home/forexmag/public_html/wp-content/themes/forex_magnates/functions.php on line 712
On this line, I set $exec_code var. However, as you can see, and as I confirmed with var_dump, the $title variable is a string. What am I missing?
EDIT: What's even weirder, when I var_dump $exec_code and kill the script, I get the perfect line:
string(121) "/usr/local/bin/php /home/forexmag/public_html/directory2/crons/cron_notify.php '2011 Free Forex Report' 9934 2 0"
source share