0

フロントエンドで if else ステートメントを使用して設定された、さまざまなスタイルシートの選択用のワードプレスのテーマ設定があります。

私のワードプレス設定は、次の値のプールから1つの値を持つ場合があります

red ,green, blue, yellow, white, pink, black, grey ,silver or purple

私のテンプレート:

<link href="<?php bloginfo("template_url"); ?>/style.css" rel="stylesheet" media="all" />

<?php if (get_option('my_style') == "red"  : ?>
<link href="<?php bloginfo("template_url"); ?>/css/red.css" rel="stylesheet" media="all" />
<?php endif; ?>

<?php if (get_option('my_style') == "green"  : ?>
<link href="<?php bloginfo("template_url"); ?>/css/green.css" rel="stylesheet" media="all" />
<?php endif; ?>

<?php if (get_option('my_style') == "blue"  : ?>
<link href="<?php bloginfo("template_url"); ?>/css/blue.css" rel="stylesheet" media="all" />
<?php endif; ?>

<?php if (get_option('my_style') == "yellow"  : ?>
<link href="<?php bloginfo("template_url"); ?>/css/yellow.css" rel="stylesheet" media="all" />
<?php endif; ?>
.
.
.
.
.
<?php if (get_option('my_style') == "purple"  : ?>
<link href="<?php bloginfo("template_url"); ?>/css/purple.css" rel="stylesheet" media="all" />
<?php endif; ?>

このようにして、必要に応じて特定のスタイルシートを取得できます。しかし、オプションプールにもっと値がある場合、この php コードは長くなります。では、配列を使用してこれを短縮する方法はありますか?

4

4 に答える 4

3

たぶんあなたはそれをに減らすことができます

<link href="<?php bloginfo("template_url"); ?>/css/<?php echo get_option('my_style'); ?>.css" rel="stylesheet" media="all" />

get_option関数がcssファイルの名前と同じ文字列を返す場合は配列は必要ないと思います。

于 2013-02-19T14:58:54.050 に答える
1

このオプション:

<?php
$arraystyle=array("red", "green", "blue", "yellow", "white", "pink", "black", "grey", "silver", "purple");

$val=get_option('my_style');
if(!in_array($val, $arraystyle)){
    echo "Style not found";
    return false;
}
?>

<link href="<?php bloginfo("template_url"); ?>/css/<?php echo $arraystyle[$val];?>.css" rel="stylesheet" media="all" />
于 2013-02-19T14:57:54.500 に答える
0
<?php
$my_styles = array(
    'red',
    'green',
    'blue',
    'yellow',
    'white',
    'pink',
    'black',
    'grey',
    'silver'
);
?>
<?php if(in_array($my_style = get_option('my_style'),$my_styles)) : ?>
    <link href="<?php echo bloginfo("template_url")."/css/{$my_style}.css"; ?>" rel="stylesheet" media="all" /> 
<?php endif; ?>

変数に$my_stylesを入力して、データベースなどの使用可能なすべてのスタイルを使用できます。

于 2013-02-19T15:11:31.840 に答える
0

ここで配列を使用する必要はありません。特定の値に従って、含める CSS ファイルを変更しています。

あなたが探しているのは switch case コマンドだと思います。これは、あなたがそれでできることの簡単な例です -

<?php

$my_style = get_option('my_style');
switch($my_style){
 case "red":
   echo '<link href="'. bloginfo("template_url"). '/css/red.css" rel="stylesheet" media="all" />';
 break;
 case "green":
   echo '<link href="'. bloginfo("template_url"). '/css/green.css" rel="stylesheet" media="all" />';
 break;
 default :
   echo '<link href="'. bloginfo("template_url"). '/css/default.css" rel="stylesheet" media="all" />';
 break;
}

?>

my_styleこの方法を使用すると、各オプションに複数の変更を含めることができます。予期しない値を処理するためにデフォルトのケースを使用していることに注意してください...

参照 -

于 2013-02-19T15:01:43.990 に答える