- 状态
- 已解决
- 报告针对
- WPML String Translation 3.3.1
- 解决于
- WPML String Translation 3.3.2
问题概述
您可能会遇到类似这样的错误:
PHP Fatal error: Uncaught TypeError: WPMLStringTranslationInfrastructureStringGettextRepositoryFrontendQueueJsonRepository::get(): Return value must be of type array, null returned in wp-contentpluginswpml-string-translationStringTranslationInfrastructureStringGettextRepositoryFrontendQueueJsonRepository.php:36
Stack trace:
#0 wp-contentpluginswpml-string-translationStringTranslationInfrastructureStringGettextRepositoryFrontendQueueRepository.php(75): WPMLStringTranslationInfrastructureStringGettextRepositoryFrontendQueueJsonRepository->get()
#1 wp-contentpluginswpml-string-translationStringTranslationInfrastructureStringHtmlCommandProcessFrontendGettextStringsQueue.php(34): WPMLStringTranslationInfrastructureStringGettextRepositoryFrontendQueueRepository->get()
.
.
.
#12 {main}
thrown in wp-contentpluginswpml-string-translationStringTranslationInfrastructureStringGettextRepositoryFrontendQueueJsonRepository.php on line 36
临时解决方法
使用您主机的文件管理器或 Filezilla 等 FTP 客户端,前往:
/wp-content/plugins/wpml-string-translation/StringTranslation/Infrastructure/StringGettext/Repository/FrontendQueueJsonRepository.php
找到以下代码(第 28 行左右):
public function get(): array {
$filepath = $this->getQueueFilepath();
$data = [];
if ( file_exists( $filepath ) && is_readable( $filepath ) ) {
$data = json_decode( file_get_contents( $filepath ), true );
}
return $data;
}
并将其替换为以下代码:
public function get(): array {
$filepath = $this->getQueueFilepath();
$data = [];
if ( file_exists( $filepath ) && is_readable( $filepath ) ) {
$data = json_decode( file_get_contents( $filepath ), true );
}
if( is_null($data)){
$data = [];
}
return $data;
}