【问题标题】:Trying to get property 'ID' of non-object (and) Undefined index: listing_type试图获取非对象(和)未定义索引的属性“ID”:listing_type
【发布时间】:2022-06-14 17:41:13
【问题描述】:

试图获取非对象(和)未定义索引的属性“ID”:listing_type

if (!file_exists($upload['basedir'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css")) {
    $style_url = $upload['baseurl']."/ulisting/css/".$css_file_name.".css";
} else {
    $style_url = $upload['baseurl'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css";
}

【问题讨论】:

  • $args 可能未定义,并且由于您没有代码向我们展示您如何设置$args 值,我们不可能知道或正确地帮助您。请阅读SO | How to ask
  • $args 没有索引listing_type,这就是为什么你会得到$args['listing_type']->ID // Trying to get property of non-object
  • 我猜 $args 已定义但为空或不包含您要查找的内容,如果您使用 func_get_arg 请注意,关键是索引 0,1,2...而不是名称的arg

标签: php indexing undefined


【解决方案1】:

尝试验证 $args 中的实际内容。在你的代码行上方做一些简单的转储

    var_dump($args);die;
if (!file_exists($upload['basedir'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css")) {
    $style_url = $upload['baseurl']."/ulisting/css/".$css_file_name.".css";
} else {
    $style_url = $upload['baseurl'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css";
}

【讨论】:

  • 我尝试使用此代码,但如果我申请页面将变为空白。
  • 可能是布局问题并且转储结果被隐藏,您可以尝试按 ctr+u 查看实际代码或检查 (F12) 以查看 html,如果没有,您可以尝试此行而不是 return print_r($args, true); 应该有帮助如果该渲染实际上预计会在页面上显示任何内容
【解决方案2】:

没有解决完整的功能是

public static function render($sections, $css_file_name, $args) {
    $content = "";
    $upload = wp_get_upload_dir();

    if (!file_exists($upload['basedir'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css")) 
    {
        $style_url = $upload['baseurl']."/ulisting/css/".$css_file_name.".css";
    } else {
        $style_url = $upload['baseurl'].'/ulisting/css/'.$args['listing_type']->ID.'/'.$css_file_name.".css";
    }
    wp_enqueue_style('ulisting_builder_stytle_'.$css_file_name, $style_url);

    if(is_array($sections) AND !empty($sections)) {
        foreach ($sections as $section) {
            $content .= StmListingTemplate::load_template('builder/section',['section' => $section, 'args' => $args]);
        }
    }
    return $content;
}

【讨论】:

    【解决方案3】:

    更改为: if (!file_exists($upload['basedir'].'/ulisting/css/'.$args['listingType']->ID.'/'.$css_file_name.".css")) { $style_url = $upload['baseurl']."/ulisting/css/".$css_file_name.".css"; } 别的 { $style_url = $upload['baseurl'].'/ulisting/css/'.$args['listingType']->ID.'/'.$css_file_name.".css"; } wp_enqueue_style('ulisting_builder_stytle_'.$css_file_name, $style_url);

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 1970-01-01
      • 2021-05-26
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-07-24
      • 2020-06-26
      • 2018-07-03
      相关资源
      最近更新 更多