Menu

BIEN DÉMARRER AVEC UN THEME ENFANT DE DIVI

octobre 12, 2017 - Autres
BIEN DÉMARRER AVEC UN THEME ENFANT DE DIVI

Divi est un constructeur de thème (theme builder en anglais) proposé par Elegant Themes. Il peut s’avérer utile puisqu’il propose des fonctionnalités de mise en page en drag’n drop qui facilite la mise en place d’un design tendance.

Si vous souhaitez en savoir plus, rendez-vous sur le site de Elegant Themes ou lisez l’article de Maxime sur wp-spread.com qui présente la dernière monture (version 2.5) du thème.

Pour ma part je n’ai pas l’habitude d’utiliser des thèmes préconçu, je travail systématiquement sur de la création de thème unique. Mais dans le cadre d’un projet, je dois me pencher dessus et vérifier notamment son utilisation dans un périmètre technique assez complet avec l’utilisation de Advanced Custom Fields Pro, des customs post type, Yoast, Polylang, Gravity Forms, …

Je commence à déblayer le terrain et vous trouverez ci-dessous des bouts de code utile à placer dans votre fichier functions.php de votre thème enfant pour bien commencer un projet avec Divi.

1. CHARGER LA CSS DE DIVI DANS NOTRE THÈME ENFANT


add_action( 'wp_enqueue_scripts', 'divichild_enqueue_assets' );
function divichild_enqueue_assets() {
		wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

2. SUPPRIMER LES CUSTOM POST TYPE DE DIVI


add_action('init','divichild_unregister_divi_post_type',11);
function divichild_unregister_divi_post_type(){
	$cpts = array('project');
	global $wp_post_types;
	foreach ($cpts as $cpt){
		if (isset($wp_post_types[$cpt])){
			unset($wp_post_types[$cpt]);
		}
	}
}

3. SUPPRIMER LES CUSTOM TAX DE DIVI


add_action('init', 'divichild_unregister_divi_taxonomy',11);
function divichild_unregister_divi_taxonomy(){
	$taxs = array('project_tag','project_category');
	global $wp_taxonomies;
	foreach ($taxs as $tax){
		if (taxonomy_exists($tax)){
			unset($wp_taxonomies[$tax]);
		}
	}		
}

4. AJOUTER LE DIVI BUILDER POUR NOS CUSTOM POST TYPE


add_filter('et_builder_post_types', 'divichild_add_post_types');
function divichild_add_post_types($post_types) {
	foreach(get_post_types() as $pt) {
		if (!in_array($pt, $post_types) and post_type_supports($pt, 'editor')) {
			$post_types[] = $pt;
		}
	} 
	return $post_types;
}

5. AJOUTER LES METABOX DIVI POUR NOS CUSTOM POST TYPE


add_action('add_meta_boxes', 'divichild_add_meta_boxes');
function divichild_add_meta_boxes() {
	foreach(get_post_types() as $pt) {
		if (post_type_supports($pt, 'editor')) {
			add_meta_box('et_settings_meta_box', __('Divi Custom Post Settings', 'Divi'), 'et_single_settings_meta_box', $pt, 'side', 'high');
		}
	} 
}

Note : certains liens ce cet article sont affilés.