注意:正在尝试获取options.php中非对象的属性

时间:2013-02-27 作者:Dean McCann

我正在我的选项中生成以下通知。php在wp\\U调试模式下测试我的主题时。

我可以看到问题所在,但不知道如何解决此问题?

似乎正在从options中的taxonomy数组调用非对象。php作为数组找不到term\\u id,因为尚未在自定义帖子类型中创建帖子和/或类别。当我创建帖子并为其指定类别时,通知将消失。

// Pull all the custom taxonomies into an array
$options_password_taxonomies = array();
$taxonomies_password_terms_obj = get_terms(\'password_gallery_category\');
foreach ( $taxonomies_password_terms_obj as $taxonomy) {
    $options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
}

// Select a Category for your Client Area
$options[] = array(
    \'name\' => __(\'Password Protected Galleries\', \'shutter\'),
    \'desc\' => __(\'Choose a category for password protected client galleries.\',     \'shutter\'),
    \'id\' => \'client_area\',
    \'type\' => \'select\',
    \'options\' => $options_password_taxonomies);

2 个回复
最合适的回答,由SO网友:RRikesh 整理而成

您可以使用isset()property_exists() 检查属性是否存在。

foreach ( $taxonomies_password_terms_obj as $taxonomy) {
    if( isset( $taxonomy->term_id ) ){
        $options_password_taxonomies[$taxonomy->term_id] = $taxonomy->name;
    }
}

SO网友:sameraze agvvl

使用isset($variable_to_check) 或使用is_array($variable_to_check) 在继续foreach之前,因为foreach只处理数据数组,即变量需要成员

结束

相关推荐

重定向期间忽略自定义ADMIN_NOTICES消息

我在中设置了错误处理机制one of my plugins 向管理区域添加通知和错误,就像核心一样。它在大多数情况下都能正常工作,但在某些情况下(如保存自定义帖子类型)却不能正常工作。我猜重定向是在幕后发生的,消息是在重定向发生之前打印的,因此它们似乎永远不会出现。所以,我猜这就是发生的事情用户编辑自定义帖子类型并点击Publish(发布)调用My post\\u updated(我的帖子更新)回调,该回调验证并保存自定义字段。回调添加错误消息。Wordpress重定向到某个页面以进行某些处理。调用My