Wordpress的function.php文件中的PHP条件语句不起作用

时间:2010-12-19 09:20:46

标签: php wordpress conditional-statements

我想在function.php中执行以下PHP语句:如果有#header h1 a背景的上传图像,请缩进文本(删除)...如果不是(其他),请保留文字(不要缩进)。

我对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']显示:

string(63) "http://localhost/wordpress/wp-content/uploads/2010/12/logo3.png" 

(所以图像正常工作)

但是现在我只看到Wordpress网站标题

我是否必须“激活”或“启动”功能** logo_exists ? 或者还有其他问题吗?**

(如果我不使用PHP If语句并直接从header.php声明$ options [logo],一切正常

提前致谢!

1 个答案:

答案 0 :(得分:3)

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

global $options;

在函数声明之后,以便从include中获取$options变量。像这样:

function logo_exists() {
    global $options;

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