如何在页面选项卡中添加属于特定主题的新页面?

时间:2015-05-06 作者:sergio

嗨,我想在我的活动主题中添加新页面,但我不想在我移动或激活其他主题时显示这些页面。

我知道这些页面保存在数据库中,但如何将它们链接到特定主题?

提前感谢您的帮助。。。

2 个回复
最合适的回答,由SO网友:Eric Willis 整理而成

页面是一个独立的实体,与当时活动的主题无关。

这是大多数CMS系统的设计范例,它将站点内容的关注点与视图或渲染层分离开来,使站点所有者有机会改变其站点的外观,而不必担心内容。

然而,从理论上讲,可以在wordpress中构建一个插件或简单地挂接到模板激活系统中,动态激活或取消激活某些页面。。。或者插件可以根据活动的主题slug有条件地呈现菜单。

SO网友:cybmeta

您可以使用以下一些方法(可能更多)自定义同一主题中特定页面的外观:

为特定页面使用专用模板。例如,如果页面的ID为45 可以使用文件名创建模板page-45.php. 看见template hierarchy.page templates 在法典中template_include 筛选以从任何位置为页面使用所需的任何模板文件。看见template_include documentation.如果您需要这些选项中的任何一个的帮助,您可以在本网站上搜索这些选项,如果找不到答案,可以发布新问题。

还有一些方法可以更改活动主题,我还没有完全测试过,但这段代码应该可以工作(在插件文件中):

add_filter( \'template\', \'cyb_page_theme\' );
add_filter( \'stylesheet\', \'cyb_page_theme\' );
add_filter( \'option_template\', \'cyb_page_theme\' );
add_filter( \'option_stylesheet\', \'cyb_page_theme\' );

function cyb_page_theme( $template = \'\' ) {

    // Change the number with the ID/slug of the specific page
    if( is_page( 20394 ) ) {

        // change with the template name of the theme you want to use
        $template = \'twentyfifteen\';

    }

    return $template;
}
如果需要友好地为页面分配主题,可以use a meta box and a custom meta field 存储关联。

结束

相关推荐

Pages_Links()更改链接的顺序

使用时paginate_links() WordPress的功能,我需要改变它的输出顺序。例如,默认情况下,它将以以下格式输出分页链接:Default Output:<<PREV 1 2 3 NEXT>> 但我需要以下格式的输出:Required Output:1 2 3 <<PREV NEXT>> 现在的问题是,如何根据我的要求更改这些分页链接的顺序?