- Статус
- Открыто
- Теги темы
- Performance
Обзор проблемы
Улучшения для уменьшения размера таблиц базы данных переводов WPML, появившиеся в WPML 4.8, используют сжатие данных. Это требует немного больше ресурсов, но применяется в ограниченных случаях, никогда не задействуется на фронтенде и работает только во время определенных процессов в бэкенде.
Однако его использование в некоторых непредвиденных сценариях выявило проблему с производительностью, над устранением которой мы работаем.
Обходное решение
Тем временем, если Вы столкнулись с этой проблемой, Вы можете закомментировать определенный код в плагине WPML.
В частности, измените файл plugins/sitepress-multilingual-cms/classes/ATE/Review/ReviewTranslation.php и закомментируйте или удалите строки с 50 по 72, например:
// Hooks::onFilter( 'user_has_cap', 10, 3 )
// ->then( spreadArgs( function ( $userCaps, $requiredCaps, $args ) {
// /** @var array $userCaps */
// /** @var array $requiredCaps */
// /** @var array $args */
// if ( Relation::propEq( 0, 'edit_post', $args ) ) {
// $translator = Translators::getCurrent();
// if ( $translator->ID ) {
// $postId = $args[2];
// $job = Jobs::getPostJob( $postId, Post::getType( $postId ), WPMLPost::getLang( $postId ) );
// if ( ReviewStatus::doesJobNeedReview( $job ) && self::canEditLanguage( $translator, $job ) ) {
// return Lst::concat( $userCaps, Lst::zipObj( $requiredCaps, Lst::repeat( true, count( $requiredCaps ) ) ) );
// }
// }
// return $userCaps;
// }
// return $userCaps;
// } ) );