将IF/ELSE语句与主题选项的输出一起使用

时间:2011-03-08 作者:snthr

在里面another question 我说的是使用主题选项来修改CSS。这是一个独立但相关的问题。

当用户在我的主题中设置链接颜色时,我是如何包括他们的选择的:

<?php $options = get_option(\'mytheme_theme_options\'); _e( \'a, a:link {color: #\' ); echo $options[\'linkcolour\']; _e( \';}\' ); ?>
因此,如果用户在主题选项页面中指定链接颜色为#333333,那么我上面的代码会输出一个非常干净的CSS:

a, a:link {color: #333333;}
太好了。

但是,如果他们don\'t 指定任何链接颜色值,然后我得到:

a, a:link {color: #;}
。。。这既丑陋又多余——它什么都做不了。

我不是一个PHP爱好者,所以我真的不知道解决这个问题的最佳方法,但我想可以用某种if-else语句来解决这个问题,其中代码只有在用户设置值时才会得到输出。是这样吗?如果是,我应该使用什么代码?

谢谢

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

没有必要使用_e() 这是为了要翻译的文本,你不翻译CSS,它只有一种语言。。。

关于你的if/else\'ing,试试这个。。

<?php 
$options = get_option(\'mytheme_theme_options\');
if( isset( $options[\'linkcolour\'] ) && ( !empty( $options[\'linkcolour\'] ) ) )   
    printf( "a, a:link {color: #%s;}", $options[\'linkcolour\'] );
?>
以下是一些PHP参考资料,有助于理解上面使用的PHP。

http://www.php.net/manual/en/control-structures.if.php
http://php.net/manual/en/function.isset.php
http://www.php.net/manual/en/function.empty.php
http://php.net/manual/en/function.printf.php

希望这有帮助。

结束

相关推荐

如何在孩子主题之前加载Parent_Theme函数.php?

我的问题是我必须加载我的父主题functions.php 我的子主题之前的文件functions.php 文件加载。设置和;初始化过程。我查看了/wp\\u core\\u root/wp设置中的挂钩。php(名称:do_action(\'setup_theme\');). 问题是我不知道如何连接到那里,因为我得到的第一个文件是子主题的functions.php, 所以没有add_action( \'setup_theme\', \'my_init_function\' ); 将起作用。编辑:a)我知道插