解决 WordPress 部分主题或者插件在 PHP 7.x 下报 Fatal error: [] operator not supported for strings 错的问题

我的广州建站团队手头有一个叫 Doctype 的精品 WordPress 模板,版本不算新,在目前的一台装了 PHP 7.2 的服务器下,报了好几个错,主要表现于这个主题依赖的一个叫 StagTools 的插件,只要激活,一连串错。页面 portfolio 列表无法显示。

首当其冲的错就是: Fatal error: [] operator not supported for strings [duplicate]

研究了一下,其实解决方法很简单:


function doctype_portfolio_mixitup_class( $classes ) {
	$skills = get_the_terms( get_the_ID(), 'skill' );

	$skill = '';
	if ( $skills ) {
		if ( is_array( $skills ) ) {
			foreach( $skills as $ski ) {
				$skill = array();
$skill[] .= $ski->slug;
			}
			$classes[] = implode( $skill, ' ' );
		}
	}
	$classes[] = 'mix';

	return $classes;
}
add_filter( 'post_class', 'doctype_portfolio_mixitup_class' );

其中红字部分是出错的地方,旧版本的 php 环境下没有这个错。在其上一行加上绿色字的那句(原代码没有这句),即可。

FavoriteLoadingAdd to favorites
欢迎给我打赏: