将两个主题放在一起创建一个完整的网站

时间:2012-07-18 作者:marchon

作为一个中间用户,我对WP很熟悉。在不久的将来,我将不得不将完全不同主题的模板设计集成到我当前使用的主题中。这样做的目的是保持一个主题的首页外观不变,并使用另一个主题的常规博客帖子页面的设计,并将它们整合在一起。

我的问题如下:最好的行动方案是:

在先前存在的主题中定义一个新的模板页,并将代码从另一个主题的模板页复制到该模板页;

检查任何相关文件(例如header.php/footer.php,重命名它们以避免干扰主题的现有文件),复制它们,然后相应地更改模板页面中链接的名称;

显然,复制样式表、JS和所有相关图像。

还是有更好的方法?

非常感谢。

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

三思而后行,我必须首先说,这似乎是一个非常奇怪的想法。拥有一个与网站其他部分完全不同的首页将打破许多用户的期望,并导致混乱。这真的是两个完全不同的主题,还是你只是想在头版上定制一个布局?如果是后者,那么定制实现可能更简单。如果有用于维护首页的高级主题选项或元框,情况尤其如此。我将只关注前端问题,因为这是我唯一可以安全地做出假设的事情。但我们假设不是这样。

复制所有必要的模板,我将使用非主主题作为主主题,并将正面集成到主主题中。因此,从“首页主题”确定需要包含哪些文件。如果有front-page.php (假设您使用的是静态首页),您将复制它。(如果有新名称,请使用新名称保存旧的首页。)在新建中front-page.php 文件,查找包含的任何内容include(), require(), get_template_part(), get_sidebar(), get_footer() 从首页主题中,将所有这些文件复制到新主题中。对于所有这些文件,包括后缀(例如。sidebar-front.php, header-front.php). 最终在您的副本中front-page.php 更改函数以使用后缀版本(例如。get_sidebar( \'front\' ))

有条件加载脚本(&A);现在,在您的主主题中functions.php 文件中,您将需要的脚本和样式加载到正确的页面上。复制您知道在首页主题上使用的任何脚本和样式表。再次添加主题后缀,以确保没有重叠。

现在,添加条件wp_enqueue_scripts()wp_enqueue_styles() 调用以加载样式表。如果有的话header.php 正在链接样式表,请删除这些行。您的代码如下所示:

function wpse_58889() {
    if( is_front_page() ) {
        wp_enqueue_style( \'style_front\', get_template_directory_uri() . \'style-front.css\' );
    } else {
        wp_enqueue_style( \'style_front\', get_template_directory_uri() . \'style.css\' );
        wp_enqueue_script( ...... );
    }
}
add_action( \'wp_enqueue_scripts\', \'wpse_58889\' );
此步骤将涉及移动主主题中排队的任何现有样式和脚本functions.php 使它们与新头版上的其他样式不冲突。

正如我所说,我甚至不想猜测这需要什么。你需要做大量的翻找和复制register_sidebar() 与头版相关的电话,以及主题选项和metabox内容。在这个过程中,您可能会遇到许多文件依赖关系,最终可能会将一半旧主题集成到新主题中。在整个过程中,您必须继续注意文件、函数等中的命名冲突!

结论

在最简单的情况下,这个过程不会太难,但如果你对PHP和WordPress主题化不熟悉(imho,后者比前者多),这可能会很快变得很糟糕。尽管这些变化中有很多都是直接抽象的,但在很多地方,一个小小的疏忽可能会让事情在一段时间内变得混乱。

祝你好运

SO网友:Kavya Gokul

如果要完全复制设计,则可以创建自定义页眉和页脚文件,例如“页眉自定义”。php和页脚自定义。php。这些自定义页眉和页脚文件可以通过将自定义文件的段塞作为参数传递给wordpress中的函数来使用。e、 g。

get_header(\'custom\');
以及

get_footer(\'custom\');
请注意,您必须创建单独的页面模板,这些模板可用于具有不同样式的页面。看见http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates 有关创建自定义页面模板的帮助。

结束

相关推荐

WP_LINK_PAGES出现在帖子内容之后,而不是页面底部

这个代码工作得很好!但我的问题是,它会删除页面上的文本。我只需要页面编号立即出现在帖子之后,而不是页面底部。有什么建议吗?add_filter (\'the_content\', \'pagination_after_post\',1); function pagination_after_post($content) { if(is_single()) { $content.= \'<div class=\"pagination\">\' . wp_