考虑一个带有一个选项的以下函数:
function dynamic_options() {
$getheadercolor = get_header_textcolor();
$options_social = get_option('sandbox_theme_social_options');
$wrapper_background_color = get_option('wrapper_background_color');
if($getheadercolor !='blank'){
echo '<style type="text/css">';
}
if($getheadercolor !='blank') {
echo "\n"."#header a{
color:#$getheadercolor;
}";
}//End If $getheadercolor
if($getheadercolor !='blank'){
echo "\n".'</style>';
}
}// End Dynamic options
它将这样的内容输出到我的标题中(它完美地工作并且完全按照我的意愿执行)
<style type="text/css">
#header a{
color:#30409b;
}
</style>
现在问题来了:这个函数不会只有一个选项,而是一堆选项(20-30 个选项)。因此,为了说明我的观点,假设现在我的函数将有五个选项。所以它看起来像这样:
function dynamic_options() {
$getheadercolor = get_header_textcolor();
$options_social = get_option('sandbox_theme_social_options');
$wrapper_background_color = get_option('wrapper_background_color');
//My main "problem" is an IF Statement below because it will look like a mess
//With 20 options or more and with all those OR inside it...
if($getheadercolor !='blank' || $sitecolor !='' || $textcolor !=''
|| $backgroundcolor !='' || $menucolor !=''){
echo '<style type="text/css">';
}
if($getheadercolor !='blank') {
echo "\n"."#header a{
color:#$getheadercolor;
}";
}//End If $getheadercolor
if($sitecolor !='blank') {
echo "\n"."#wrapper{
background-color:#$sitecolor;
}";
}//End If $sitecolor
if($textcolor !='blank') {
echo "\n".".entry p{
color:#$textcolor;
}";
}//End If $textcolor
if($backgroundcolor !='blank') {
echo "\n"."body{
background-color:#$backgroundcolor;
}";
}//End If $backgroundcolor
if($menucolor !='blank') {
echo "\n".".nav{
background-color:#$menucolor;
}";
}//End If $menucolor
//So to even close my style tag i need a bunch of those statments
if($getheadercolor !='blank' || $sitecolor !='' || $textcolor !=''
|| $backgroundcolor !='' || $menucolor !=''){
echo "\n".'</style>';
}
所以我上面的功能会起作用,但这部分if($getheadercolor !='blank' || $sitecolor !='' || $textcolor !=''
|| $backgroundcolor !='' || $menucolor !='')
对我来说似乎是错误的。
因为这个 IF 语句会有20多个选项,我担心我的代码会很慢而且效率很低。
我的 PHP Force 不强......所以我唯一(不理想)的解决方案是简单地省略这两个 IF 语句,如下所示:
function dynamic_options() {
$getheadercolor = get_header_textcolor();
$options_social = get_option('sandbox_theme_social_options');
$wrapper_background_color = get_option('wrapper_background_color');
echo '<style type="text/css">';
if($getheadercolor !='blank') {
echo "\n"."#header a{
color:#$getheadercolor;
}";
}//End If $getheadercolor
if($sitecolor !='blank') {
echo "\n"."#wrapper{
background-color:#$sitecolor;
}";
}//End If $sitecolor
if($textcolor !='blank') {
echo "\n".".entry p{
color:#$textcolor;
}";
}//End If $textcolor
if($backgroundcolor !='blank') {
echo "\n"."body{
background-color:#$backgroundcolor;
}";
}//End If $backgroundcolor
if($menucolor !='blank') {
echo "\n".".nav{
background-color:#$menucolor;
}";
}//End If $menucolor
echo "\n".'</style>';
}// End Dynamic options
现在我的没有这些 IF 语句的代码也可以工作,但现在的问题是,如果没有选项,我的函数仍然会在我的标题中回显一个空<style type="text/css"></style>
的 CSS 样式标签:这是我不想要的。
有人可以给我一个让这个功能更好地工作的例子或建议吗?
PS我认为自己是PHP菜鸟,所以如果有人能给我一个很好的明确的建议或例子,我将不胜感激!谢谢你!!!