插件报错 Illegal string offset 'excluded_taxonomies' in 问题的解决方法

导语:叶子使用了一个叫做WP Multiple Taxonomy Images的插件,这个插件可以在分类和标签中设置多张图片,但由于插件的作者长期没有更新了,所以版本一直保存在Version 0.3,当叶子把php升级到7.3.3的时候,插件报了这个错误:Illegal string offset ‘excluded_taxonomies’ in。

问题的原因

问题发生的原因是因为这个插件读取了一个叫做cvti_options选项字段,如果没有设置插件的排除分类法选项,这个字段为空,当它在代码中使用的时候,就会报这个错误。
解决这个问题的方法就是,判断出多种为空的条件,然后一一赋值一个空数组。

解决方法

将wp-multiple-taxonomy-images.php中的下面这段代码替换就可以了。

原始代码

    public function get_excluded_taxonomies(){
        $cvti_options = get_option('cvti_options');
        if (empty($cvti_options['excluded_taxonomies'])){
			    

           $cvti_options['excluded_taxonomies'] = array();
	
        }
        return $cvti_options['excluded_taxonomies'];
    }

替换代码

    public function get_excluded_taxonomies(){
        $cvti_options = get_option('cvti_options');
        if (empty($cvti_options['excluded_taxonomies'])){
			    
	    if (isset($cvti_options['excluded_taxonomies'])){
                 $cvti_options['excluded_taxonomies'] = array();
	    }else{
		 if (empty($cvti_options)){
			$cvti_options = array("excluded_taxonomies" => array());
		 }else{
			$excluded_taxonomies = array("excluded_taxonomies" => array());
			$cvti_options = array_merge_recursive($cvti_options, $excluded_taxonomies);
		 }

	    }
        }
        return $cvti_options['excluded_taxonomies'];
    }

判断$cvti_options[‘excluded_taxonomies’]是否为空,如果为空,则判断$cvti_options[‘excluded_taxonomies’]是否存在,如果存在直接赋值空数组,如果不存在,那么再判断$cvti_options是否为空,如果为空,则将$cvti_options赋值excluded_taxonomies空数组,如果不为空,则将$cvti_options追加excluded_taxonomies空数组。

结束

你学会了吗

发表评论

电子邮件地址不会被公开。 必填项已用*标注