三思而后行,我必须首先说,这似乎是一个非常奇怪的想法。拥有一个与网站其他部分完全不同的首页将打破许多用户的期望,并导致混乱。这真的是两个完全不同的主题,还是你只是想在头版上定制一个布局?如果是后者,那么定制实现可能更简单。如果有用于维护首页的高级主题选项或元框,情况尤其如此。我将只关注前端问题,因为这是我唯一可以安全地做出假设的事情。但我们假设不是这样。
复制所有必要的模板,我将使用非主主题作为主主题,并将正面集成到主主题中。因此,从“首页主题”确定需要包含哪些文件。如果有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,后者比前者多),这可能会很快变得很糟糕。尽管这些变化中有很多都是直接抽象的,但在很多地方,一个小小的疏忽可能会让事情在一段时间内变得混乱。
祝你好运