有一次,我遇到了一个类似的问题,我使用一个自定义字段和一点文件和文件夹组织来解决它。
首先,我在一个子文件夹中为我的页面创建了所有css样式/css
在我的主题中。然后,我创建了另一个子文件夹,/pages
在那里,我为我的页面放置了所有html结构。
拥有,例如。
My_Theme/css/style1.css
, My_Theme/css/style2.css
, My_Theme/css/style3.css
以及相关
My_Theme/pages/style1.php
, My_Theme/pages/style2.php
, My_Theme/pages/style3.php
在我的header.php 我把
if ( is_page() ) {
global $post;
$page_style = get_post_meta($post->ID, \'page_style\', true);
if ( $page_style ) {
// if a page style is defined, following code will include the file
// in {TEMPLATEPATH}/css/{$page_style}.css
// also define a constant to use later
$src = get_template_directori_uri() . \'css/\' . $page_style . \'.css\';
wp_enqueque_style(\'page_style\', $src, false, false, \'all\');
define(\'MYPAGESTYLE\', $page_style);
}
}
最后,在我的
page.php 文件,我把
get_header();
// if a page style is defined, following two lines will include the file in
// {TEMPLATEPATH}/pages/{$page_style}.php
// in not, will include the file {TEMPLATEPATH}/page_content.php
$part = defined(\'MYPAGESTYLE\') ? \'pages/\' . MYPAGESTYLE : \'page_content\';
get_template_part($part);
get_footer();
这样做可以处理100种或更多的自定义页面样式,这很容易:只需创建页面并设置正确的“page\\u style”自定义字段。(当然,必须先创建css和html…)
是否未定义自定义页面样式?没问题,将使用默认值。
如果不同样式之间有共享的零件,请提取这些零件并将其保存为单独的文件,然后使用@import
在styleXX中。css和get_template_part()
样式XX。php