我的wordpress function.php
文件中有一个函数,它应该用slug而不是ID来排除页面。现在它工作正常,但在某些情况下会导致:尝试在第128行的/Users/kailoon/Sites/wordpress/wp-content/themes/ebookie-wp/functions.php
中获取非对象的属性:
array_push($ids, $page->ID)
问题是我无法在我自己的localhost上重现此错误。这个函数的完整代码是这样的。有人可以帮忙吗?
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 :(得分:0)
该错误意味着有时get_page_by_path
没有获取页面,因此$page
为空。在尝试获取ID并推送它之前,您需要进行测试以确保它不为null。
你的分裂正则表达式是可疑的:你正在分裂一个逗号后面跟一个可选的小写字母''。你确定你的意思不是'\ s'吗?如果那实际上是在你的代码中,那么就会删掉任何以它开头的slu',这会导致get_page_by_path
失败。