导语:叶子使用了一个叫做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空数组。
结束
你学会了吗