haiku-atelier-2024/web/app/themes/haiku-atelier-2024/functions.php
2024-08-09 18:47:38 +02:00

130 lines
4.1 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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");