IT

"클래스 WP_Post 개체를 문자열로 변환할 수 없습니다" 가져오기 - 문자열인 경우

itgroup 2023. 3. 14. 21:34
반응형

"클래스 WP_Post 개체를 문자열로 변환할 수 없습니다" 가져오기 - 문자열인 경우

functions.php에는 다음 코드가 있습니다.이 코드는 퍼블리시 시 스크립트를 실행합니다.

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

새로운 투고를 게시할 때 다음 오류가 계속 표시됩니다.

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

이 행은, 이 행에서,$exec_codevar. 하지만 보시다시피 var_dump를 통해 확인했듯이$titlevariable은 문자열입니다.제가 무엇을 빠뜨리고 있나요?

편집: 더 이상한 것은 var_dump가$exec_code대본을 죽이면 완벽한 문자열을 얻을 수 있습니다.

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

Wordpress Answers에서 정답을 맞혔습니다.공유해야 할 것 같아서:

$post_ID는 입니다.WP_Post물건.exec 코드가 효과적으로 사용되어야 합니다.$post_ID->ID.

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

돌아온다

WP_Post Object ( [ID] => ...

Vancoder 제공

이는 사용 중인 후크에 따라 달라집니다.예:publish_page정수를 얻습니다(실제로 이것이 저의 혼란의 원인이었습니다).

같은 에러가 발생하고 있었습니다만, 최종적인 문제 해결 방법은,

<?php wp_reset_query(); ?>

이는 WP_Query가 사용되고 있으며 페이지 하단의 나머지 쿼리를 중단하고 있었기 때문입니다.

이게 누군가에게 도움이 됐으면 좋겠다

어느 날 제 웹사이트에서 같은 오류가 발생했지만, 그 코드가 문제가 아니었습니다.문제는 데이터베이스에 있다.내가 한 일은 내 데이터베이스에 들어가서 siteurl과 home을 변경하는 것이었다. 왜냐하면 그 안에 횡설수설했기 때문이다.제 웹사이트가 손상된 것 같아서 데이터베이스 비밀번호를 변경합니다.이 웹사이트는 치명적인 오류(https://www.msgdigital.com/catchable-fatal-error-object-of-class-wp_error-could-not-be-converted-to-string/)를 제거하는 데 도움이 됩니다.

시도해 봤는데 잘 된 것 같아요.

언급URL : https://stackoverflow.com/questions/15009005/getting-object-of-class-wp-post-could-not-be-converted-to-string-when-it-is

반응형