我正在开发双语网站,对于其中一种受支持的语言,服务器会抛出 HTTP 500,并在 Nginx 日志中记录以下记录:
2024/05/03 11:55:49 [error] 3493#3493: *16346 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught TypeError: implode(): Argument #1 ($pieces) must be of type array, string given in /var/www/DOMAIN/wordpress/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php:153
Stack trace:
#0 /var/www/DOMAIN/wordpress/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php(153): implode()
#1 /var/www/DOMAIN/wordpress/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php(36): TRP_Ajax->output_translations()
#2 /var/www/DOMAIN/wordpress/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php(186): TRP_Ajax->__construct()
#3 {main}
thrown in /var/www/DOMAIN/wordpress/wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php on line 153" while reading response header from upstream, client: 141.136.91.90, server: DOMAIN, request: "POST /wp-content/plugins/translatepress-multilingual/includes/trp-ajax.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php8.1-fpm.sock:", host: "DOMAIN", referrer: "https://DOMAIN/ru/cart/"
我发现了https://wordpress.org/support/topic/trp-ajax-php-returns-500/中描述的类似问题,但那里的提示没有帮助。
有人可以帮忙吗?我怀疑缺少一些字符串翻译,但需要找出如何调试来证明它。
已解决,问题在于错误的翻译字符串 -
#%
而不是正确的#%s
,这导致了异常。