我创建了一个自定义的帖子类型,我们称之为“产品”。该网站也是双语的,没有任何插件,我将本地化页面放在父语言页面下,例如:
英语第1页第2页第3页法语第1页第2页第3页,依此类推。这意味着我的URL如下/%language%/%pagename%, eg公司/en/page_1.
我的自定义帖子有双语字段,可以进行简单的本地化,但问题是如何将正确的语言传递到他们的公共页面。例如,我列出自定义帖子的页面以所有语言存在,并创建一个URL,如/%language%/parent_page/%custom_post_name%, eg公司/en/parent_page/a_custom_product.
奇怪的是,链接工作得很好,但WordPress并没有重写URL,使其成为/%post_type%/%custom_post_name%/ eg公司/product/a_custom_product 由于我们现在失去了语言部分,我无法将其本地化。
我已经为过滤器创建了一个函数generate_rewrite_rules:
global $wp_rewrite;
$wp_rewrite->add_rewrite_tag( \'%lang%\', \'(.+?)\', \'lang=\' );
$n  = array(
    \'([\\w]{2})/products/([^/])/?\'   => \'index.php?pagename=$2&lang=$1\'
);
return $n + $r->rules;
 我还刷新了permalinks,还有别的什么,我只是想知道为什么WordPress会重写URL,以及如何阻止它变成前者。