Mam następujący kod w moim functions.php, który wykonuje skrypt momencie rozpatrzenie:Pierwsze „Obiekt klasy WP_Post nie może być przekształcony w ciąg” - gdy jest to ciąg
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);
Kiedy publikować nowy post wciąż otrzymuję następujący błąd:
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
linia ta jest gdzie ustawić $exec_code
var. Jednak, jak widać, i jak potwierdziłem przez var_dump, zmienna $title
jest ciągiem. czego mi brakuje?
EDIT: Co jeszcze dziwniejsze jest to, że kiedy var_dump $exec_code
i zabić skrypt, mam doskonały ciąg:
string(121) "/usr/local/bin/php /home/forexmag/public_html/directory2/crons/cron_notify.php '2011 Free Forex Report' 9934 2 0"
Czy możesz potwierdzić, że '$ post_ID' jest ciągiem? – Jrod
Jest to liczba całkowita. Ale czy nie powinien być konwertowany na ciąg po konkatenacji? – Matanya
@Jrod, miałeś rację. Przetestowałem z hakiem publish_page, który daje int, podczas gdy draft_to_publish używa obiektu – Matanya