0

だから私はこのプロジェクトにWordPressを使用していますが、このすっきりとしたクリーンな方法についてはよくわかりません。

全部で8つのオプションがあります。それらのいずれかが設定されている場合、私は何かが起こる必要があります。また、1セットごとに実行する必要があります。

今のところ、2つ使用しましょう

if( (genesis_get_option('setting_one', 'settings') || genesis_get_option('setting_two', 'settings')) !== '')
    { // print() each one that is set }

8つのオプションに対してそのように行うと、非常にすぐに醜くなることがわかります。私の設定はすべて同じプレフィックスを持っています:(setting_a、、、、)setting_bsetting_onesetting_two

私は次のようなことを考えていました

$settings = array_fill(1, 8, 'setting_');
$labels = array(1 => 'a', 'b', 'c', 'd', 'one', 'two', 'three', 'four');

....しかし、私はそこからどこに行くべきかわかりません。

これを行うためのある種のクリーンな方法があるGOTはありますか?

4

2 に答える 2

2

ややすっきりした方法は次のようになります。

$settings = array("setting_one","setting_two","setting_a");
$has_setting = false;
foreach($settings as $setting){
    if(genesis_get_option($setting, 'settings') !== ''){
        $has_setting = true;
        break;
    }
}
if($has_setting){
    //Do stuff
}

さらに良いのは、コードを整理するためのメソッドにチェックを入れることです。

編集:設定ごとにアクションが必要であることに気づきました。その場合、ループ内でそれを行うことができます。

于 2013-01-22T01:25:14.840 に答える
0
if(false !== array_search(true,
  array_map(
    'genesis_get_option',
    array('setting_one', 'setting_to' /* ... */ ),
    array('value_one', 'value_two' /* ... */)
  )
)) { /* ... */ }
于 2013-01-22T01:28:42.157 に答える