Thème enfant (fils) : le fichier functions.php

Dans un thème fils, le fichier functions.php est très important. Contrairement aux autres fichiers du thème, celui-ci n’annule pas les fonctions présentes dans le thème parent qui seront toujours actives. Pensez-y !
Dans l’extrait présenté çi-dessous(actif dans dev.xiligroup.com), quelques éléments importants sont présentés :

<?php
/* functions for child of twentyten */
function twentyxilidev_setup () {
	register_nav_menus( array(
		'top-primary' => __( 'Top-Primary Navigation', 'twentyten' )
	) );
	load_theme_textdomain( 'twentyten', STYLESHEETPATH . '/langs' );
 
	$xili_functionsfolder = get_stylesheet_directory() . '/functions-xili' ; 
	if (file_exists($xili_functionsfolder . '/multilingual-functions.php') && class_exists('xili_language')) {
		require_once ($xili_functionsfolder . '/multilingual-functions.php');
 
	}
 
}
 
/* actions */
add_action( 'after_setup_theme', 'twentyxilidev_setup', 11 ); // after the parent
add_action('wp_head', 'special_head');
 
if(!is_admin()) {
	add_action('wp_print_scripts', 'xilifloom_theme_header');
	add_action( 'wp_print_scripts','scripts_add',20 );
}
 
define('XILI_CATS_ALL','0');
 
function special_head() {
	global $post; // for sliding
	// to change search form of widget
	if ( is_front_page() || is_category() || is_search() )
	 	add_filter('get_search_form', my_langs_in_search_form,10,1); // in multilingual-functions.php
}
 
// ....

La première fonction ‘twentyxilidev_setup’ activé par l’action after_setup_theme est important. Elle ajoute un nouvel espace menu. En relançant un loading text domain, seuls les fichiers .mo du sous-dossier du thème fils sont utilisés (et donc pas de modification de ceux du thème parent que l’on a initialement recopiés dans le fils).
L’appel add_action doit être fait après les autres d’où le numéro d”ordre >=11
Dans un extrait de la fonction ‘special_head’, un filtre ajoute les radio-boutons de langue sous le champ de saisie de recherche selon le contexte.

C’est dans ce fichier que l’on va pouvoir annuler des widgets ou des menus du thème parent et non utilisés dans le thème fils.

Ci-après le functions.php du thème twentyten-xili mis à disposition dès le prochain article :

<?php
 
/**
 *
 *
 */
function twentyten_xilidev_setup () {
	load_theme_textdomain( 'twentyten', STYLESHEETPATH . '/langs' ); // now use .mo of child
 
	$xili_functionsfolder = get_stylesheet_directory() . '/functions-xili' ; 
	if (file_exists($xili_functionsfolder . '/multilingual-functions.php') && class_exists('xili_language')) {
		require_once ($xili_functionsfolder . '/multilingual-functions.php');
	}
}
 
/* actions */
add_action( 'after_setup_theme', 'twentyten_xilidev_setup', 11 );
add_action( 'wp_head', 'special_head' );
 
define('XILI_CATS_ALL','0');
 
/**
 *
 *
 */
function special_head() {
	// to change search form of widget
	if ( is_front_page() || is_category() || is_search() )
	 	add_filter('get_search_form', my_langs_in_search_form,10,1); // in multilingual-functions.php
}
 
/**
 *
 *
 */
function single_lang_dir($post_id) {
	$langdir = ((function_exists('get_cur_post_lang_dir')) ? get_cur_post_lang_dir($post_id) : array());
	if ( isset($langdir['direction']) ) return $langdir['direction'];
} 
 
 
?>

La suite bientôt…

Cette entrée a été publiée dans Mode d'emploi, avec comme mot(s)-clef(s) , , , . Vous pouvez la mettre en favoris avec ce permalien.

Une réponse à Thème enfant (fils) : le fichier functions.php

  1. Ping : Theme enfant (fils) : le fichier style.css | Extensions xili pour site polyglotte

Les commentaires sont fermés.