翻译URL中的自定义帖子类型和分类插件?

时间:2020-07-16 作者:Andreeez

我需要帮助如何翻译自定义帖子类型和分类时使用多站点和多语言。我正在使用子目录a/en/sv等。

正在使用插件(多站点语言切换器),但无法更改那里的重写设置。所以我想我必须修改一下?或者我应该用翻译文件翻译帖子类型。mo。采购订单?

这就是在函数中设置职位类型的方式。php。我应该对重写做些什么吗?

function create_posttype_product() {
    register_post_type( \'product\',
        array(
            \'labels\' => array(
                \'name\' => __(\'Products\'),
                \'singular_name\' => __(\'product\'),
                \'add_new\' => __(\'Add new product\'),
                \'add_new_item\' => __(\'New product\'),
                \'edit_item\' => __(\'Edit product\')
            ),
            \'public\' => true,
            \'rewrite\' => array( \'slug\' => \'product\', \'with_front\' => false ),

            \'has_archive\' => \'product\',
            \'menu_icon\'   => \'dashicons-editor-help\',
            \'supports\' => array(\'title\', \'editor\', \'thumbnail\')
        )
    );
}
add_action( \'init\', \'create_posttype_product\' );
例如,在英文网页上的url应该是:
www.mypage.com/en/products

但对于瑞典人,我想要www.mypage.com/sv/produkter

和其他语言:
www.mypage.com/xx/product-name-in-this-language

我怎样才能得到这个结果?我找了又找,找不到正确的答案。

2 个回复
SO网友:mozboz

因此,首先,虽然这是可能的,但我认为这可能不是最佳实践。这是因为在语义上,对于SEO来说,URL越少越好。

可以理解,如果您的页面/en/foo 我想换成法语,我可以去/fr/foo. 人们可能会手动执行此操作,一些自动化工具可能会理解站点的工作方式。如果一个人或一个工具还必须将“foo”翻译成法语才能找到正确的页面,这就更复杂了,这意味着每个人都必须在翻译和语言代码上达成一致,翻译可能并不总是百分之百相同的。

我认为这就是为什么在搜索中很难找到解决方案的原因——通常情况下,这样做不是为了让URL尽可能保持相似,只是语言部分有所改变。

如果您确实想这样做,但您没有多种语言,一种方法是找到手动翻译并添加。htaccess rules,在根目录中使用规则不可见地重写URL。htaccess类似于:

RewriteRule ^/sv/produkter(/.*) /en/product$1 [L]
只要你没有太多的slug或语言可以使用,这将很容易做到。

PolyLang插件也有可能做到这一点,但您需要进一步研究。参见此处第3点:https://polylang.pro/doc/url-modifications/

SO网友:Thomas FromWood

要使用“重写”选项,您必须将;“产品”;在变量中。警告:您必须让相同的值;“产品”;“对于”;register\\u post\\u type“注册”;。

function create_posttype_product() {

 if  ($language == \'sv\') {
      $productSlug = \'produkter\';   
 } else {
      $productSlug = \'product\';   
 }

register_post_type( \'product\',
    array(
        \'labels\' => array(
            \'name\' => __(\'Products\'),
            \'singular_name\' => __(\'product\'),
            \'add_new\' => __(\'Add new product\'),
            \'add_new_item\' => __(\'New product\'),
            \'edit_item\' => __(\'Edit product\')
        ),
        \'public\' => true,
        \'rewrite\' => array( \'slug\' => $productSlug, \'with_front\' => false ),

        \'has_archive\' => \'product\',
        \'menu_icon\'   => \'dashicons-editor-help\',
        \'supports\' => array(\'title\', \'editor\', \'thumbnail\')
    )
)}; 
add_action( \'init\', \'create_posttype_product\' );

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http