Getting "A WP_Post class object cannot be converted to a string" - when it is a string

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" 
+6
source share
3 answers

Got the correct answer on Wordpress Answers. I think I should share it:

$post_ID is a WP_Post object. Your exec code should use $post_ID->ID. effectively $post_ID->ID.

 function save_new_post($post_ID) { print_r($post_ID); die(); 

Returns

 WP_Post Object ( [ID] => ... 

Courtesy of vancoder

Note that this depends on the hook you use. For example, if you use publish_page , you get an integer (this is actually the source of my confusion)

+7
source

I was getting the same error, however the solution to my problem in the end was

 <?php wp_reset_query(); ?> 

This was due to the fact that WP_Query was used and interrupted other queries beyond the page.

I hope this helps someone

0
source

I had the same error on my site one day, but the code was not a problem. The problem is the database. What I did was enter my database and change the site and the house, because there was gibberish inside it. I think my site was a compromise, so I am changing the database password. This website will help you get rid of the fascinating fatal error https://www.msgdigital.com/catchable-fatal-error-object-of-class-wp_error-could-not-be-converted-to-string/ .

I tried and hope it worked.

-1
source

All Articles