130 lines
4.1 KiB
PHP
130 lines
4.1 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
use Carbon_Fields\Carbon_Fields;
|
||
use Carbon_Fields\Container\Container;
|
||
use Carbon_Fields\Field\Field;
|
||
use HaikuAtelier\StarterSite;
|
||
use Timber\Timber;
|
||
|
||
// Récupère les dépendances Composer
|
||
require_once __DIR__ . "../../../../../vendor/autoload.php";
|
||
// Récupère la classe initialisant les fonctionnalités du thème
|
||
require_once __DIR__ . "/src/StarterSite.php";
|
||
|
||
// Initialise Timber
|
||
Timber::init();
|
||
|
||
// Sélectionne le répertoire contenant les modèles Twig
|
||
Timber::$dirname = ["views"];
|
||
|
||
// Charge les styles du thème
|
||
function charge_styles_haiku_atelier_2024() {
|
||
wp_enqueue_style(
|
||
$handle = "haiku-atelier-2024-styles",
|
||
$src = get_template_directory_uri() . "/assets/css/main.css",
|
||
$deps = [],
|
||
$ver = filemtime(get_template_directory() . "/assets/css/main.min.css"),
|
||
$media = false,
|
||
);
|
||
}
|
||
add_action("wp_enqueue_scripts", "charge_styles_haiku_atelier_2024");
|
||
|
||
// Initialise les fonctionnalités du thème
|
||
new StarterSite();
|
||
|
||
/**
|
||
* Personnalisation du thème
|
||
*/
|
||
|
||
// Personnalisation du thème
|
||
function enregistre_personnalisation_theme($wp_customize) {
|
||
// Section « Réseaux sociaux »
|
||
$wp_customize->add_section("liens_reseaux_sociaux", [
|
||
"title" => __("Liens des réseaux sociaux"),
|
||
"description" => __("Liens des réseaux sociaux s'affichant dans le pied de page."),
|
||
]);
|
||
|
||
// Instagram
|
||
$wp_customize->add_setting("lien_instagram", [
|
||
"type" => "theme_mod",
|
||
"capability" => "edit_theme_options",
|
||
]);
|
||
$wp_customize->add_control("lien_instagram", [
|
||
"type" => "url",
|
||
"section" => "liens_reseaux_sociaux",
|
||
"label" => __("Profil Instagram"),
|
||
]);
|
||
|
||
// Facebook
|
||
$wp_customize->add_setting("lien_facebook", [
|
||
"type" => "theme_mod",
|
||
"capability" => "edit_theme_options",
|
||
]);
|
||
$wp_customize->add_control("lien_facebook", [
|
||
"type" => "url",
|
||
"section" => "liens_reseaux_sociaux",
|
||
"label" => __("Profil Facebook"),
|
||
]);
|
||
|
||
// Pinterest
|
||
$wp_customize->add_setting("lien_pinterest", [
|
||
"type" => "theme_mod",
|
||
"capability" => "edit_theme_options",
|
||
]);
|
||
$wp_customize->add_control("lien_pinterest", [
|
||
"type" => "url",
|
||
"section" => "liens_reseaux_sociaux",
|
||
"label" => __("Profil Pinterest"),
|
||
]);
|
||
}
|
||
add_action("customize_register", "enregistre_personnalisation_theme");
|
||
|
||
/**
|
||
* WooCommerce
|
||
*/
|
||
|
||
function retire_images_produit_woocommerce(): void {
|
||
remove_action("woocommerce_before_shop_loop_item_title", "woocommerce_template_loop_product_thumbnail", 10);
|
||
remove_action("woocommerce_before_single_product_summary", "woocommerce_show_product_images", 20);
|
||
remove_action("woocommerce_product_thumbnails", "woocommerce_show_product_thumbnails", 20);
|
||
}
|
||
add_action("after_setup_theme", "retire_images_produit_woocommerce");
|
||
|
||
function retire_champs_admin_images_produit_woocommerce(): void {
|
||
// Désactive le champ « Image Produit »
|
||
remove_meta_box("postimagediv", "product", "side");
|
||
// Désactive le champ « Galerie d'images du Produit »
|
||
remove_meta_box("woocommerce-product-images", "product", "side");
|
||
}
|
||
add_action("add_meta_boxes", "retire_champs_admin_images_produit_woocommerce", 40);
|
||
|
||
// Désactive les styles WooCommerce
|
||
add_filter("woocommerce_enqueue_styles", "__return_empty_array");
|
||
|
||
/**
|
||
* Carbon Fields
|
||
*/
|
||
|
||
function cree_galeries_photos_produit_woocommerce(): void {
|
||
Container::make("post_meta", "Photos Galleries")
|
||
->where("post_type", "=", "product")
|
||
->add_fields([
|
||
Field::make("media_gallery", "photos_colonne_gauche", __("Left Column Photos"))
|
||
->set_type(["image"])
|
||
->set_duplicates_allowed(false),
|
||
Field::make("media_gallery", "photos_colonne_droite", __("Right Column Photos"))
|
||
->set_type(["image"])
|
||
->set_duplicates_allowed(false),
|
||
]);
|
||
}
|
||
add_action("carbon_fields_register_fields", "cree_galeries_photos_produit_woocommerce");
|
||
|
||
// Charge Carbon Fields
|
||
function charge_carbon_fields(): void {
|
||
// Nécessaire pour que Carbon Fields trouve ses ressources
|
||
define("Carbon_Fields\URL", home_url("/vendor/htmlburger/carbon-fields"));
|
||
Carbon_Fields::boot();
|
||
}
|
||
add_action("after_setup_theme", "charge_carbon_fields");
|