2010-12-19 72 views
0

我想在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文件)提前

谢谢!

+0

我建议重新格式化你的代码[if..endif(http://php.net/manual/en/control-structures.alternative-syntax.php)语法变得更加可读(以混合的PHP/HTML代码)。 – 2010-12-19 09:30:47

+0

尽管BlotClock还有一点,但$ options变量在函数内部没有作用域,如果你想引用那个函数内部的变量,你需要在函数内全局化它。我认为,问题在于你的函数需要挂钩到合适的动作上,例如'add_action('wp_print_styles','logo_exists')'将内容输出到头部的适当位置以进行造型。 – t31os 2010-12-19 11:18:14

回答

3

$options在该函数的范围内不存在。您需要添加

global $options; 

只是在函数声明之后,这样它拿起$options变量从包括。就像这样:

function logo_exists() { 
    global $options; 

    ?><style type="text/css"> 
    ... 
+0

对不起,我试过,但仍然没有工作(仍然看到#header h1的文本a。我不确定它是否是有用的信息,但plugin_options是在