web-dev-qa-db-ja.com

テーマオプションからの出力でif / else

別の質問 では、CSSを変更するためのテーマオプションの使用について話していました。これは別ですが関連した質問です。

ユーザーが私のテーマにリンクの色を設定するとき、私は彼らの選択を含める方法は次のとおりです。

<?php $options = get_option('mytheme_theme_options'); _e( 'a, a:link {color: #' ); echo $options['linkcolour']; _e( ';}' ); ?>

そのため、ユーザーがテーマオプションページで#333333のリンク色を指定した場合、上記の私のコードはNice clean bit of CSSを出力します。

a, a:link {color: #333333;}

すばらしいです。

しかし、don'tにリンクカラー値を指定した場合、次のようになります。

a, a:link {color: #;}

...これは醜く冗長です - 何もしません。

私はPHP人ではないので、これを修正する最善の方法は実際にはわかりませんが、if-elseステートメントで修正できると想像します。ユーザーが値を設定したときに出力を取得します。その通りですか?もしそうなら、私はどんなコードを使うべきですか?

ありがとう。

1
snthr

翻訳対象のテキストに_e()を使用する必要はありません。CSSを翻訳するのではなく、1つの言語だけで提供されます。

あなたの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

それが役立つことを願っています。

1
t31os