我正在使用ACF制作一个多语言网站。我的自定义帖子URL必须同时使用和不使用/en/
作为前缀。例如。mysite.com/posttype/any-slug/
和mysite.com/en/posttype/any-slug/
必须显示相同的帖子。
我尝试在函数中使用此重写规则。php(以及它的一些变体),但很难让它工作:
add_action(\'init\', \'add_my_rule\');
function add_my_rule() {
add_rewrite_rule(\'^en\\/posttype\\/[.+]$\',\'index.php?pagename=$matches[1]\',\'top\');
}
我注意到还有其他标题类似的问题,但案例似乎与此不同。
最合适的回答,由SO网友:Milo 整理而成
pagename
假设page
岗位类型。您需要在规则中使用自定义post类型查询变量。您可能还想检测到这是一个en
, 您可以添加自己的重写标记来存储该标记,然后将其添加到规则中:
add_action(\'init\', \'add_my_rule\');
function add_my_rule() {
add_rewrite_tag(\'%my_language%\', \'([^&]+)\');
add_rewrite_rule(
\'^en/posttype/([^/]*)?/?$\',
\'index.php?posttype=$matches[1]&my_language=en\',
\'top\'
);
}