Php 试图在wordpress中获取非对象的属性

Php 试图在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

我的wordpress
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的值,看看值是多少。