2013-04-23 102 views
0

我在我的wordpress function.php文件中有函數,該文件應該通過slug而不是ID來排除頁面。現在,它工作正常,但在某些情況下,它會導致:試圖讓非對象的財產/Users/kailoon/Sites/wordpress/wp-content/themes/ebookie-wp/functions.php線128這行:試圖在wordpress中獲取非對象的屬性

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); 
} 
+0

在循環中每次調試var $ page_slug的值以查看值是多少。 – 2013-04-23 11:51:06

回答

0

該錯誤意味着此時,get_page_by_path沒有得到一個網頁,因此$page爲空。您需要進行測試以確保它在嘗試獲取其ID並推送它之前不是空的。

你的分割正則表達式是可疑的:你在分割逗號後跟一個可選的小寫's'。你確定你不是指'\ s'嗎?如果這實際上是在你的代碼中,那麼將會從其開始的任何段落中刪除's',這將導致get_page_by_path失敗。

相關問題