web-dev-qa-db-fra.com

Utilisation d'une instruction if dans la page de personnalisation de thème

Je suis lentement mais sûrement en train de grignoter mon premier thème wordpress. J'ai essayé de faire en sorte que toutes les esthétiques aient différentes options, mais elles sont bien classées pour ne pas être écrasantes.

Ainsi, dans ma page de personnalisation de thème, j'ai différentes cases à cocher qui permettent de distinguer différentes options pour un certain style de composants. Par exemple, je pourrais avoir deux cases à cocher pour distinguer le type de bouton souhaité par l'utilisateur.

Donc ma question est:

Comment puis-je décocher automatiquement une case si la case de son groupe est cochée? Je suppose que cela m'empêchera d'avoir différentes options pour le même élément sur la page cochée et de gâcher quelque chose. Je pense que si les instructions sont probablement la seule solution, mais je ne sais pas comment les ajouter, car je n’ai pas créé la page, tout est fait à l’aide de l’API de personnalisation du thème.

Je commence à penser que je devrais plutôt utiliser une page d'options, même si elle est supposée appartenir au passé et ne fournit pas de prévisualisation en direct, mais il semble que cela apporterait davantage de souplesse.

1
user1632018

Votre description donne l’impression que vous avez besoin d’un bouton radio. Les boutons radio de par leur conception sont exclusifs - un seul bouton par jeu de boutons peut être coché à la fois.

L'API de paramètres prend en charge les boîtes radio, bien que la documentation pour les utiliser soit clairsemées. Je devais creuser un peu et expérimenter. La clé est le deuxième paramètre de add_control . Vous devez passer le tableau 'type' =>radio 'and provide achoices` pour les valeurs des boutons radio.

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