0

function.phpID ではなくスラッグでページを除外する必要があるwordpress ファイルに s 関数があります。現在は正常に動作していますが、場合によっては次のようになります:/Users/kailoon/Sites/wordpress/wp-content/themes/ebookie-wp/functions.php行 128 で非オブジェクトのプロパティを取得しようとしています:

array_push($ids, $page->ID)

問題は、自分のローカルホストでこのエラーを再現できないことです。この関数の完全なコードは次のようになります。誰か助けてくれませんか?

function exclude_by_slug($slugs){
    $slugs = preg_split("/,s?/", $slugs);
    $ids = array();

    foreach($slugs as $page_slug){
        $page = get_page_by_path($page_slug);
        array_push($ids, $page->ID);
    }
    return implode(",", $ids);
}
4

1 に答える 1

0

このエラーは、時々get_page_by_pathがページを取得していないため、$pagenull であることを意味します。ID を取得してプッシュする前に、null でないことをテストして確認する必要があります。

あなたの分割正規表現は疑わしいです: コンマとそれに続くオプションの小文字 's' で分割しています。'\s' を意味していませんか? それが実際にコード内にある場合、それで始まるスラッグから「s」が取り除かれ、get_page_by_path失敗する原因になります。

于 2013-04-23T13:45:37.190 に答える