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 и т. д.

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

Всё ещё сталкиваетесь с этой проблемой?

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