0

我的 wordpressfunction.php文件中有 s 函数,它应该通过 slug 而不是 ID 排除页面。/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没有获取页面,因此$page为空。在尝试获取其 ID 并推送它之前,您需要进行测试以确保它不为空。

您的拆分正则表达式是可疑的:您正在拆分逗号,后跟可选的小写“s”。你确定你不是指“\s”吗?如果这实际上在您的代码中,那会从任何以它开头的 slug 中去掉“s”,这会导致get_page_by_path它失败。

于 2013-04-23T13:45:37.190 回答