WPML

问题概述

将Virtue 主题与 WPML 配合使用时,即使在字符串翻译中翻译了别名,翻译后的单个作品集也会显示 404 页面,而不是预期的内容。

临时解决方法

在继续操作之前,请务必对您的站点进行完整备份。

  1. 打开您主题的functions.php文件
  2. 添加以下代码片段:
    add_filter( 'register_post_type_args', 'virtue_portfolio_args', 10, 2 );
    
    function virtue_portfolio_args( $args, $post_type ){
    
        if ( $post_type !== 'portfolio' ) {
            return $args;
        }
    
        $virtue_premium = virtue_premium_get_options();
        if ( ! empty( $virtue_premium['portfolio_permalink'] ) ) {
            $port_rewrite = $virtue_premium['portfolio_permalink'];
        } else {
            $port_rewrite = 'portfolio';
        }
    
        $args['has_archive'] = true;
        $args['rewrite'] = array('slug' => $port_rewrite);
    
        return $args;
    }
  3. 前往Theme OptionsPortfolio OptionsPortfolio Permalink Base 并设置自定义文章类型别名。
  4. 前往WPML字符串翻译,搜索该别名并进行翻译。它应该位于[virtue_premium]portfolio_permalink字符串名称下。
  5. 前往WPML设置文章类型翻译,并使用您为[virtue_premium]portfolio_permalink字符串添加的完全相同的翻译来翻译 portfolio 文章类型别名。
  6. 前往设置固定链接并保存。

所有已知问题