- 状态
- 未解决
- 主题标签
- Performance
问题概述
WPML 4.8 中引入的旨在减小 WPML 翻译数据库表大小的改进使用了数据压缩。这会稍微多消耗一些资源,但仅在有限的情况下使用,绝不会在前端使用,并且仅在后台的特定工作流程中使用。
但它在某些意外场景下的使用暴露出了一个性能问题,我们正在着手修复。
临时解决方法
在此期间,如果您受到影响,可以注释掉 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;
// } ) );