WPML

问题概述

如果您正在使用 WPGraphQL 扩展,您会注意到,对于已经翻译的作者元数据内容(例如名字),WPGraphQL 查询仍会以默认语言返回数据。

临时解决方法

此问题已在 WPML GraphQL 1.1.3 中修复。 更新即可在您的站点上解决此问题,因此只有在您还无法更新时,才需要此临时解决方法。

请确保在继续操作前对网站进行完整备份。

  • 打开 …/wp-content/plugins/wp-graphql/src/Model/User.php 文件。
  • 找到第 191 行。
  • 将:
    'firstName'                => function () {
    	return ! empty( $this->data->first_name ) ? $this->data->first_name : null;
    },
  • 替换为:
    'firstName'                => function () {
    
    	// WPML Workaround for compsupp-7323
    	if ( class_exists('SitePress') ) {
    		$post_language_details = apply_filters( 'wpml_post_language_details', NULL, $this->global_post->ID ) ;
    		$this->data->first_name = apply_filters('wpml_translate_single_string', $this->data->first_name , 'Authors', 'first_name_'.$this->data->ID);
    	}
    
    	return ! empty( $this->data->first_name ) ? $this->data->first_name : null;
    },
注意:此临时解决方法可能需要扩展到其他字符串,如 nicename、description 等。

所有已知问题

仍然遇到此问题?

如果更新无法解决问题,请提出支持问题,我们将与您一起排查。