如何通过使用样式表切换的“模板”选择器将多个皮肤应用到一个站点?

时间:2010-09-10 作者:Scott B

我只是被模板弄湿了脚,有几个问题。

首先,理想情况下,我的模板使用与主主题相同的结构,然而,它们只是使用不同的样式表和图像。

目前,我允许更改网站外观的方式是切换样式表。

我只是在我的主主题下有一个名为“styles”的文件夹,然后在这个文件夹下,我的每个“skins”都有一个单独的文件夹。每个皮肤文件夹中都有一个样式。css以及一些图像。

它的工作方式是,我在主主题的标题中放置了一些代码。php文件,以便它从选项数据库中读取当前活动外观的值,然后加载该外观的样式表,如下所示。。。

在上面的例子中,活动皮肤是“skin1”,所以我总是加载。。。

“…mytheme/styles/”。get\\u选项(“active\\u skin”)。“样式.css”

这非常有效,允许我在函数中放置一个简单的皮肤切换器小部件(带有缩略图显示的下拉菜单)。php文件,允许管理员用户在完全改变网站外观的多个外观之间轻松切换。

这种方法的优点在于所选主题和底层标记保持不变,因此我可以使用可预测的标记创建各种样式。有点像CSS禅园。相同的标记,数千个设计。所有更改都是样式表和图像。

然而,这种方法(至少使用WordPress)的一个缺点是,选定的皮肤应用于整个站点。我无法将一种皮肤应用于主页,将一种皮肤应用于可能需要完全不同外观和感觉的特殊页面。

如果有一种方法可以将一些代码添加到每个皮肤文件夹中,使其显示在页面编辑器的“模板”下拉菜单中,那么我就可以完全按照自己的意愿进行操作。

这可能吗?

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

当然有可能。快速的方法是在Posteta中添加一个自定义字段(在编辑帖子/编辑页面的“自定义字段”区域),并在主题中使用get_post_meta().

稍微不太快的方法是通过将主题选择器放在post meta box.

SO网友:Annika Backstrom

我刚才在看页面模板自动发现,想问另一个问题,结果是WordPressexplicitly disallows template files in subdirectories. 您必须以另一种方式进行操作,例如按照gabrielk的建议使用自定义字段,或者使用custom admin meta boxes.

结束

相关推荐