web-dev-qa-db-ja.com

テーマカスタマイザページでif文を使用する

私はゆっくりと、しかし確実に私の最初のワードプレスのテーマを切り刻んでいます。私はすべての美学に異なる選択肢を持たせようとしましたが、うまく分類されているので、それは圧倒的なものではありません。

そのため、私のテーマカスタマイザページには、特定のコンポーネントスタイルのさまざまなオプションを区別できるさまざまなチェックボックスがあります。たとえば、ユーザーが希望するボタンの種類を区別するために2つのチェックボックスを持つことができます。

だから私の質問は:

そのグループ内の別のチェックボックスがチェックされている場合、どうすれば自動的に1つのチェックボックスをオフにできますか?私はこれが私がチェックしたページ上の同じ要素に対して異なるオプションを持つことを妨げ、そして何かをめちゃくちゃにすることを妨げるだろうと考えます。ステートメントがおそらく唯一の方法であるかどうかを考えますが、ページを作成しなかったのでそれらを追加する方法がわからない、それはすべてテーマカスタマイザAPIを使用して行われます。

私は代わりにオプションページを使うべきだと考え始めています、それは過去のものであり、ライブプレビューを提供していないけれども、それはそれがより多くの柔軟性を加えるように思えます。

1
user1632018

あなたの説明はあなたがラジオボタンを必要とするように聞こえます。設計上のラジオボタンは排他的です - 一度に一つのボタンセットにつき一つのボタンしかチェックできません。

設定API はラジオボックスをサポートしていますが、それらを使用するためのドキュメントはまばらです。私は少し掘り下げて実験しなければなりませんでした。キーは add_control の2番目のパラメータです。ラジオボタンの値には'type' =>radio 'and provide achoices`配列を渡す必要があります。

function radio_controls_wpse_117203($wpc) {

  $wpc->add_setting(
    'radio_control_wpse_117203',
    array(
      'default' => 'hi',
    )
  );

  $wpc->add_section(
    'radio_section_wpse_117203',
    array(
      'title' => 'Radio WPSE 117203',
      'description' => 'A holder for our radio buttons.',
    )
  );

  $wpc->add_control(
    'radio_control_wpse_117203',
    array(
      'type' => 'radio',
      'label' => 'Salutation',
      'section' => 'radio_section_wpse_117203',
      'choices' => array(
        'hi' => 'Hi',
        'howdy' => 'Howdy',
      ),
    )
  );

}
add_action('customize_register','radio_controls_wpse_117203');
1
s_ha_dum