Php 试图在wordpress中获取非对象的属性
我的wordpressPhp 试图在wordpress中获取非对象的属性,php,wordpress,properties,Php,Wordpress,Properties,我的wordpressfunction.php文件中有一个s函数,它应该通过slug而不是ID来排除页面。现在它可以正常工作,但在某些情况下,它会导致:试图在第128行的/Users/kailon/Sites/wordpress/wp content/themes/ebookie wp/functions.php中获取非对象的属性,该行显示: array_push($ids, $page->ID) 问题是我无法在自己的本地主机上重现此错误。此函数的完整代码如下所示。有人能帮忙吗 func
function.php
文件中有一个s函数,它应该通过slug而不是ID来排除页面。现在它可以正常工作,但在某些情况下,它会导致:试图在第128行的/Users/kailon/Sites/wordpress/wp content/themes/ebookie wp/functions.php中获取非对象的属性,该行显示:
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);
}
该错误意味着,get\u page\u by\u path
有时无法获取页面,因此,$page
为空。在尝试获取它的ID并推送它之前,需要进行测试以确保它不为null
您的split regexp是可疑的:您正在使用逗号和可选的小写字母“s”进行拆分。你确定你不是指'\s'吗?如果你的代码中真的有这样的代码,那么会去掉以它开头的任何slug中的“s”,这会导致get\u page\u by\u path
失败。每次在循环中调试var$page\u slug的值,看看值是多少。