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




