2010-12-19 6 views
0

の中に次のPHP文を入れたい:#header h1 aの背景をアップロードした画像がある場合は、 、テキストを保持する(インデントしないでください)。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のから宣言$オプション[ロゴ]を使用していない場合はすべてがOK作品)!

+0

私はあなたのコードを再フォーマットすることをお勧めします(混合PHP/HTMLコード)。 –

+0

BlotClockにはまだポイントがありますが、関数内でその変数を参照したい場合は、$ options変数には関数内にスコープがありません。問題は、あなたの関数が適切なアクション、例えば 'add_action( 'wp_print_styles'、 'logo_exists')'のように、スタイリングのためにヘッダーの適切な位置にコンテンツを出力する必要があるということです。 – t31os

答えて

3

$optionsは、その機能の範囲には存在しません。あなたはそれが含まから$options変数を拾うように、単に関数宣言の後に

global $options; 

を追加する必要があります。このように:[if..endif](http://php.net/manual/en/control-structures.alternative-syntax.php)構文がより読みになることを

function logo_exists() { 
    global $options; 

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

申し訳ありませんが、やってみましたがまだ動作していません(まだ#header h1のテキストが表示されています。)有用な情報であるかどうかわかりませんが、プラグインのオプションは