WPML
Статус
Решено
Заявлено для
WPML GraphQL 1.0.0
Решено в
WPML GraphQL 1.1.3
Связанный плагин/тема
WPGraphQL
Теги темы
Compatibility, Feature request

Обзор проблемы

Если Вы используете расширение WPGraphQL, Вы заметите, что для уже переведенных метаданных автора, таких как имена, запросы WPGraphQL продолжают возвращать данные на языке по умолчанию.

Обходное решение

Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/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 и т. д.

Все известные проблемы →