Wordpress - 将%lang%添加到每个url / permalink的开头

时间:2016-03-31 17:22:07

标签: php wordpress .htaccess rewrite permalinks

我需要一些关于如何完成这个任务的指导,我在过去一周一直在研究。我有一种感觉,这已经在某个地方得到了解决,但在整个星期搜索后我都找不到它。

我正在构建一个使用自定义帖子类型的网站以及包含帖子的常规类别的网站。我已将谷歌翻译集成到网站中,这可以使用我的自定义标记在点击事件上使用jQuery并在您访问网站时加载所选语言。

但是我需要将2个字符的lang代码添加到我的网址的开头,例如: -

domain.com/fr/page,
domain.com/fr/category,
domain.com/fr/category/postname,
domain.com/fr/custom_post_type

这是我的永久链接结构 - /%lang%/%category%/%postname%/

我在我的函数文件中有这个,因此我的永久链接结构中的%lang%。

function add_lang_tag() {
    add_rewrite_tag('%lang%', '([a-z]{2})');
}
add_action('init', 'add_lang_tag', 10, 0);

适用于常规类别和帖子,但不适用于网页,搜索或自定义帖子类型。

作为参考,这个问题非常接近于解决我的问题 - Wordpress add_rewrite_tag(), add_rewrite_rule(), and post_link() - 此解决方案的主要问题是它不适用于常规页面。

我也尝试了几乎所有可用于wordpress的多语言插件,但是如果我能通过add_rewrite_tag实现这一点,并且考虑到peralinks,我认为可能会有一些其他人可以受益从它。

感谢阅读。

1 个答案:

答案 0 :(得分:0)

可能为时已晚,但我仍在为仍在寻找此解决方案的用户提供此功能---

add_action( 'init', 'custom_page_rules' );

function custom_page_rules() {
    global $wp_rewrite;
    $wp_rewrite->page_structure = $wp_rewrite->root . '/%lang%/%pagename%'; 
}