web-dev-qa-db-fra.com

Valeur du champ Customizer dans la variable functions.php

Est-il possible de passer la valeur d'un champ de personnalisation dans une variable functions.php?

Je souhaite fournir une option de langue pour les onglets WooCommerce personnalisés. Actuellement, les en-têtes des onglets sont codés en dur dans le fichier functions.php. Après avoir supprimé les onglets par défaut, j'ajoute ce qui suit:

add_filter( 'woocommerce_product_tabs', 'downloads_tab' );
if ( ! function_exists ( 'downloads_tab' ) ) {
function downloads_tab( $tabs ) {
  // ensure ACF is available
  if ( !function_exists( 'have_rows' ) )
    return;

  if ( get_field('downloads') ) {
    $tabs['downloads_tab'] = array(
      'title'   => __( 'Downloads', 'woocommerce' ),
      'priority' => 60,
      'callback' => 'woo_downloads_tab_content'
    );
  }
  return $tabs;
}
}

Dans customizer.php (le thème est basé sur UnderStrap), j'ai:

// Product Downloads Tab Setting
$wp_customize->add_setting( 'product-downloads-tab', array( 'default' => '' ) );
$wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'product-downloads-tab', array( 'label' => __( 'Product "Downloads" tab text', 'theme-name' ), 'section' => 'language-options', 'settings' => 'product-downloads-tab', ) ) );

Puis-je utiliser la valeur de tout ce qui est entré ici au lieu de coder en dur le titre de l'onglet dans functions.php?

Ma solution consiste à remplacer la fonction dans le fichier functions.php du thème de l'enfant, mais je préfère donner au client la possibilité de définir le titre de l'onglet.

1
user2265915

Bien sûr, chaque paramètre du personnaliseur est enregistré en tant que mod de thème (par défaut) ou en tant qu’option (si vous définissez le "type" sur "option" dans $wp_customize->add_setting()).

Vous pouvez accéder à la valeur définie par l'utilisateur à l'aide de get_theme_mod() (ou get_option() ) .

Dans votre exemple, la valeur que vous recherchez peut être récupérée avec:

$downloads_tab_text = get_theme_mod( 'product-downloads-tab' );
3
Iceable