【问题标题】:Trying to get property of non-object in wordpress试图在wordpress中获取非对象的属性
【发布时间】:2013-04-16 05:31:52
【问题描述】:

我的 wordpress function.php 文件中有 s 函数,它应该通过 slug 而不是 ID 排除页面。现在它工作正常,但在某些情况下它会导致: Trying to get property of non-object in /Users/kailoon/Sites/wordpress/wp-content/themes/ebookie-wp/functions.php on line 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);
}

【问题讨论】:

  • 在循环中每次调试var $page_slug的值是多少,看看值是多少。

标签: php wordpress properties


【解决方案1】:

该错误意味着有时get_page_by_path 没有获得页面,因此$page 为空。在尝试获取其 ID 并将其推送之前,您需要进行测试以确保它不为空。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    相关资源
    最近更新 更多