我需要帮助如何翻译自定义帖子类型和分类时使用多站点和多语言。我正在使用子目录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
我怎样才能得到这个结果?我找了又找,找不到正确的答案。
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\' );