我想在function.php
范围内执行以下PHP语句:如果上传的图像为#header h1 a
的背景,请缩进文本(删除)...如果不是(else) ,保留文字(不要缩进)。在Wordpress的function.php文件中PHP条件语句不起作用
我不是很熟悉PHP但是这是我做过什么:
<?php
// Include functions of Theme Options
require_once(TEMPLATEPATH . '/functions/admin-menu.php');
// If there's an image for the site title, remove it's text
function logo_exists() {
?><style type="text/css">
#header h1 a {
<?php
if ($options['logo'] == NULL) { ?>
float: left;
text-indent: 0;
<?php } else { ?>
background: url(<?php echo $options['logo']; ?>) no-repeat scroll 0 0;
float: left;
text-indent: -9999px;
width: 160px;
height: 80px;
}
<?php } ?>
</style><?php
}
的header.php:
// Initiate Theme Options
$options = get_option('plugin_options');
var_dump($options['logo'])
?>
<style>
body {
background-color: <?php echo $options['color_scheme']; ?>
}
</style>
</head>
<body <?php body_class(); ?>>
<div id="wrapper">
<div id="header">
<h1>
<a href="<?php echo home_url('/'); ?>" title="<?php echo esc_attr(get_bloginfo('name', 'display')); ?>" rel="home"><?php bloginfo('name'); ?></a>
</h1>
(我不知道这是否是有用的信息但是plugin_options在<style>
标签之前被初始化。)
我做了var_dump
和#options['logo']
dis饰演:
string(63) "http://localhost/wordpress/wp-content/uploads/2010/12/logo3.png"
(所以图像工作)
但是现在我只看到WordPress网站标题
我必须“激活”或“开始”功能** logo_exists? 或者是有其他问题?**
(一切工作正常,如果我不使用PHP如果声明,并宣布$选择[徽标]直接从header.php文件)提前
谢谢!
我建议重新格式化你的代码[if..endif(http://php.net/manual/en/control-structures.alternative-syntax.php)语法变得更加可读(以混合的PHP/HTML代码)。 – 2010-12-19 09:30:47
尽管BlotClock还有一点,但$ options变量在函数内部没有作用域,如果你想引用那个函数内部的变量,你需要在函数内全局化它。我认为,问题在于你的函数需要挂钩到合适的动作上,例如'add_action('wp_print_styles','logo_exists')'将内容输出到头部的适当位置以进行造型。 – t31os 2010-12-19 11:18:14