>我正在研究一个Wordpress主题,并希望提供在盒装布局和全宽布局之间进行选择的选项。
为此,我在标头中创建了一个变量.php:
<head>
<?php
$isBoxedLayout = true;
?>
...
</head>
在正文中,我问是否设置了变量:
<?php if($isBoxedLayout) { echo '<div id="boxed">'; } ?>
...
<?php if($isBoxedLayout) { echo '</div>'; } ?>
到目前为止,这工作正常。但是现在如果设置了这个变量,我还想更改一些 css 样式。我的问题是我在PHP方面还不是很好,所以我的解决方案是这样的:
<head>
<?php
$isBoxedLayout = true;
?>
...
if ($isBoxedLayout) {
echo '<style type="text/css">';
echo '#container {width:999px;}';
echo '</style>';
}
</head>
但我认为这不是好的编程,因为我的头文件很快就会充满代码.php如果我添加一些其他选项,我会感到困惑。所以从逻辑上讲,我应该在函数.php文件中创建一个变量或数组,并像这样外包我的代码:
$isBoxedLayout = true;
if ($isBoxedLayout) {
function boxed_css_styles() {
echo '<style type="text/css">';
echo '#container {width:999px;}';
echo '</style>';
}
}
我的想法对吗?如果是这样,我将如何访问我在索引.php或标头中创建的函数.php或者其他什么。还是打印函数中的样式.php?
此致敬意
不要通过尝试通过 PHP 添加样式来使这过于复杂。通过 PHP 添加 ID...但不是样式本身。
由于仅在盒装布局生效时应用 boxed
ID,因此只需定义一些#boxed
CSS 样式即可。仅当标记中存在 ID 时,才会应用这些样式...这意味着当您的 PHP 未应用 ID 时,它们不会生效。
换句话说,把它放在你的CSS样式表中,然后忘记它:
#boxed {
width: 999px;
}
一个灵活的选择是使用 body_class()
函数为您的身体标签添加一个额外的类。这将允许您相应地确定样式范围:
.框框部分 { /* 样式在这里 / } .全角部分 { /样式在这里 */ }
通过在正文中添加类,您可以有效地针对所有内容。这样,您就可以将样式与标记分开。
另一种选择是将通用样式保留在一个样式表中,然后为全角/盒装特定样式加载其他样式表。这对于组织目的来说很方便,通过添加额外的 http 请求,因此您需要考虑记住这一点。