【问题标题】:Wordpress - add %lang% to the beginning of every url/permalinkWordpress - 在每个 url/永久链接的开头添加 %lang%
【发布时间】:2016-07-20 06:49:53
【问题描述】:

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

我正在构建一个使用自定义帖子类型以及带有帖子的页面和常规类别的网站。我已将谷歌翻译集成到该网站中,这与我的自定义标志一起使用 jQuery on click 事件并在您访问该网站时加载所选语言。

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

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 和 cvhanging 链接实现这一点,我认为可能还有其他一些人可以受益来自它。

感谢阅读。

【问题讨论】:

    标签: php wordpress .htaccess rewrite permalinks


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多