是否添加重写规则以调用Front-page.php?

时间:2018-08-15 作者:Run

我正在尝试创建一个多语言网站。我已经将我的主页设置为static page 在我的WP管理区域。

home page ID is 2 它会呼叫front-page.php 例如,当我在该地址的主页上时,http://examplesite.com/

所以对于法语版本,我添加了一个新的重写规则,所以我有这个url,http://examplesite.com/fr/, 它调用同一个ID为2的主页。

add_rewrite_rule(
    \'^fr/?$\',
    \'index.php?&p=2&lang=fr\',
    \'top\'
)
但它为什么打电话index.php 改为模板,但not front-page.php?

我怎样才能http://examplesite.com/fr/ 调用front-page.php?

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

正如我在评论中指出的,在重写规则中?&p=2?page_id=2. 因为p 用于查询帖子(即post 类型)。因此,对于页面(即page 类型),使用page_id.

防止http://examplesite.com/fr/ 从被重定向到http://examplesite.com/, 您可以取消规范重定向,如下所示:

add_action( \'template_redirect\', function(){
    if ( is_front_page() ) {
        remove_action( \'template_redirect\', \'redirect_canonical\' );
    }
}, 0 );

结束

相关推荐

FrontPage管理栏消失

我在一个多站点网络上。最近,我的frontpage管理栏消失了,但仍在后端显示。我禁用了所有插件,将主题也更改为210和212,但没有成功。但当我将插件文件夹的名称更改为其他名称时,它开始显示,但当我在不更改插件文件夹名称的情况下停用所有插件时,它不会显示。我认为网络禁用所有插件和/或更改插件文件夹名称是同一回事,所以它应该通过两种方式工作。但管理栏只显示当我将插件文件夹名称更改为其他名称时,而不是通过禁用网络范围内的所有插件。请尽快帮助。