在语言切换时更改主题页面

时间:2017-01-14 作者:Alex C

我偶然发现了一个问题,我不知道如何继续下去。我的主题在激活时创建两个页面。有两个并不重要,可能是10页,但只是背景:

可以选择一个页面作为FrontPage

update_post_meta( $page_id, \'_wp_page_template\', \'page-all-categories.php\' );
特定样式和脚本,并在我的函数中排队。php文件如下:

if ( is_page( esc_html__( \'All Categories\', \'myslug\' ) ) ) {
    // enqueue all categ page styles & scripts
} 
主题审阅者要求我翻译所有静态字符串,包括这些字符串,这很有意义。

但是,如果使用我当前的方法切换语言,这些页面将不再被检测到is_page(esc_html__(\'MyTheme Front Page\', \'myslug\') 因为标题现在是另一种语言。

我假设在语言切换时自动重新创建这些页面可以解决这个问题,但我不确定应该使用什么挂钩,或者是否应该朝这个方向发展。

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

页面/帖子标题是检测特定内容最不可靠的方法,因为标题很容易编辑,但仅仅因为它被编辑了,并不意味着功能应该改变。鼻涕虫也是如此。

在您的特定情况下,模板检测听起来是最好的方法。如果页面之间的样式或布局有所不同,请为每个页面提供不同的模板。

相关推荐

Pages>max_num_ages不会抛出404

我在WP管理中创建了一个名为Blog的新页面,并为其创建了自定义页面模板。在模板中,我有一个简单的分页自定义查询。$query = new WP_Query(array( \'post_type\' => \'post\', \'posts_per_page\' => 1, \'paged\' => $paged )); 看起来一切正常,除了我手动键入比url的“/页/”部分后可用的页码更大的页码。页面不会抛出404错误,但会在没有自定义循环的情况下将页面呈现为正常。