2013-02-21 58 views
6

है मेरे पास मेरी functions.php, जिस पर एक स्क्रिप्ट निष्पादित करता है में निम्न कोड प्रकाशित:हो रही है "वर्ग WP_Post की वस्तु स्ट्रिंग में परिवर्तित नहीं किया जा सकता है" - जब यह एक स्ट्रिंग

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); 

जब मैं प्रकाशित इस लाइन है, जहां मैं $exec_code वर सेट

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 

: एक नई पोस्ट मैं निम्नलिखित त्रुटि प्राप्त हो रही। हालांकि, जैसा कि आप देख सकते हैं, और जैसा कि मैंने var_dump के माध्यम से पुष्टि की है, $title चर एक स्ट्रिंग है। मैं क्या खो रहा हूँ?

संपादित करें:

string(121) "/usr/local/bin/php /home/forexmag/public_html/directory2/crons/cron_notify.php '2011 Free Forex Report' 9934 2 0" 
+1

क्या आप पुष्टि कर सकते हैं कि '$ post_ID' एक स्ट्रिंग है या नहीं? – Jrod

+0

यह एक पूर्णांक है। लेकिन इसे संयोजित करते समय इसे स्ट्रिंग में परिवर्तित नहीं किया जाना चाहिए? – Matanya

+0

@ जेरोद, आप सही थे। मैंने publ_page हुक के साथ परीक्षण किया, जो एक int देता है, जबकि draft_to_publish एक ऑब्जेक्ट का उपयोग करता है – Matanya

उत्तर

7

Wordpress जवाब पर सही जवाब मिल गया: क्या भी weirder है कि जब मैं $exec_code var_dump और स्क्रिप्ट को मारने, मैं एक आदर्श स्ट्रिंग मिलता है। सोचा था कि मुझे इसे साझा करना चाहिए:

$post_IDWP_Post ऑब्जेक्ट है। आपका कार्यकारी कोड को प्रभावी ढंग से $post_ID->ID.

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

रिटर्न

WP_Post Object ([ID] => ... 

vancoder

के सौजन्य का उपयोग कर किया जाना चाहिए नोटिस करते हैं कि इस हुक का प्रयोग कर रहे पर निर्भर करता है। उदाहरण के लिए यदि आप publish_page का उपयोग आप एक पूर्णांक प्राप्त

0

मैं एक ही त्रुटि हो रही थी, फिर भी अंत में मेरी समस्या का हल था

<?php wp_reset_query(); ?> 

इसका कारण यह है था (यह वास्तव में मेरे भ्रम का स्रोत था) WP_Query का उपयोग किया जा रहा था और पृष्ठ के नीचे शेष प्रश्नों को बाधित कर रहा था।

मुझे आशा है कि इस मदद करता है किसी को

-1

मुझे मिल गया है कि मेरी वेबसाइट एक दिन पर एक ही त्रुटि लेकिन कोड समस्या नहीं था। समस्या डेटाबेस में निहित है। मैंने जो किया वह मेरे डेटाबेस में गया और साइटूरल और घर को बदल दिया क्योंकि इसमें अंदर घबराहट थी। मुझे लगता है कि मेरी वेबसाइट समझौता किया गया था इसलिए मैं डेटाबेस पासवर्ड बदलता हूं। यह वेबसाइट आपको पकड़ने योग्य घातक त्रुटि https://www.msgdigital.com/catchable-fatal-error-object-of-class-wp_error-could-not-be-converted-to-string/ से छुटकारा पाने में मदद करेगी।

मैंने कोशिश की और मुझे विश्वास है कि यह काम करता है।