167 lines
5.2 KiB
PHP
167 lines
5.2 KiB
PHP
<?php
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Theme setup.
|
|
------------------------------------------------------------------*/
|
|
function carhop_setup()
|
|
{
|
|
|
|
// ##### Setup 🡒 Navigation
|
|
|
|
register_nav_menus(
|
|
array(
|
|
'primary' => __('Primary Menu', 'carhop'),
|
|
'secondary' => __('Secondary Menu', 'carhop'),
|
|
)
|
|
);
|
|
|
|
// ##### Setup 🡒 Ajout des themes supports
|
|
|
|
add_theme_support(
|
|
'html5',
|
|
array(
|
|
'search-form',
|
|
'comment-form',
|
|
'comment-list',
|
|
'gallery',
|
|
'caption',
|
|
)
|
|
);
|
|
add_theme_support('title-tag');
|
|
add_theme_support('custom-logo');
|
|
add_theme_support('post-thumbnails');
|
|
|
|
add_theme_support('align-wide');
|
|
add_theme_support('wp-block-styles');
|
|
|
|
add_theme_support('editor-styles');
|
|
add_editor_style('css/editor-style.css');
|
|
add_theme_support('widgets');
|
|
// add_post_type_support( 'page', 'excerpt' );
|
|
}
|
|
|
|
add_action('after_setup_theme', 'carhop_setup');
|
|
|
|
|
|
|
|
// ##### Menu Walker
|
|
// if (!function_exists('register_navwalker')) :
|
|
// function register_navwalker() {
|
|
// require('includes/navwalker.php');
|
|
// }
|
|
// endif;
|
|
// add_action('after_setup_theme', 'register_navwalker');
|
|
|
|
|
|
|
|
|
|
// ##### Walker to ReWrap li submenu parent with button instead of <a>
|
|
function wrap_parent_menu_item_buttons($output, $item, $depth, $args)
|
|
{
|
|
|
|
if ($args->theme_location === "primary" && in_array('menu-item-has-children', $item->classes, true)) {
|
|
$output = '<button type="button" class="menu-item-submenu-toggle" aria-expanded="false" aria-controls="sub-menu-' . $item->ID . '">' . $item->title . '</button>';
|
|
}
|
|
if ($args->theme_location === "footer" && in_array('menu-item-has-children', $item->classes, true)) {
|
|
$output = $item->title;
|
|
}
|
|
return $output;
|
|
}
|
|
add_filter('walker_nav_menu_start_el', 'wrap_parent_menu_item_buttons', 10, 4);
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Enqueue Theme assets 🡒 Front
|
|
------------------------------------------------------------------*/
|
|
|
|
|
|
function carhop_enqueue_scripts()
|
|
{
|
|
$theme = wp_get_theme();
|
|
|
|
wp_enqueue_style('app-css', get_template_directory_uri() . '/css/app.css', array(), $theme->get('Version'));
|
|
wp_enqueue_script_module('app-js', get_template_directory_uri() . '/js/app.js', array(), $theme->get('Version'));
|
|
|
|
// wp_enqueue_style('swiper-css', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css');
|
|
// wp_enqueue_script_module('swiper-js', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js', array(), null, true);
|
|
|
|
// Enqueue Swiper CSS and JS
|
|
wp_enqueue_style('swiper-css', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css');
|
|
wp_enqueue_script('swiper-js', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js', array(), null, true);
|
|
|
|
// Enqueue NOTYF CSS and JS
|
|
wp_enqueue_style('notyf-css', get_template_directory_uri() . '/resources/libs/notyf.min.css');
|
|
wp_enqueue_script('notyf-js', get_template_directory_uri() . '/resources/libs/notyf.min.js', array(), null, true);
|
|
|
|
wp_enqueue_script('gsap-js', 'https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js', array(), false, true);
|
|
wp_enqueue_script('gsap-st', 'https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js', array('gsap-js'), false, true);
|
|
}
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Enqueue Theme assets 🡒 Back
|
|
------------------------------------------------------------------*/
|
|
|
|
function enqueue_gutenberg_back_styles()
|
|
{
|
|
wp_enqueue_style('tailpress_back', tailpress_asset('css/app.css'), array());
|
|
}
|
|
add_action('enqueue_block_editor_assets', 'enqueue_gutenberg_back_styles');
|
|
|
|
|
|
add_action('wp_enqueue_scripts', 'carhop_enqueue_scripts');
|
|
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Get assets path
|
|
------------------------------------------------------------------*/
|
|
function tailpress_asset($path)
|
|
{
|
|
if (wp_get_environment_type() === 'production') {
|
|
return get_stylesheet_directory_uri() . '/' . $path;
|
|
}
|
|
|
|
return add_query_arg('time', time(), get_stylesheet_directory_uri() . '/' . $path);
|
|
}
|
|
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Adds option 'li_class' to 'wp_nav_menu
|
|
------------------------------------------------------------------*/
|
|
|
|
function tailpress_nav_menu_add_li_class($classes, $item, $args, $depth)
|
|
{
|
|
if (isset($args->li_class)) {
|
|
$classes[] = $args->li_class;
|
|
}
|
|
|
|
if (isset($args->{"li_class_$depth"})) {
|
|
$classes[] = $args->{"li_class_$depth"};
|
|
}
|
|
|
|
return $classes;
|
|
}
|
|
|
|
add_filter('nav_menu_css_class', 'tailpress_nav_menu_add_li_class', 10, 4);
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------
|
|
##### Adds option 'submenu_class' to 'wp_nav_menu'
|
|
------------------------------------------------------------------*/
|
|
|
|
function tailpress_nav_menu_add_submenu_class($classes, $args, $depth)
|
|
{
|
|
if (isset($args->submenu_class)) {
|
|
$classes[] = $args->submenu_class;
|
|
}
|
|
|
|
if (isset($args->{"submenu_class_$depth"})) {
|
|
$classes[] = $args->{"submenu_class_$depth"};
|
|
}
|
|
|
|
return $classes;
|
|
}
|
|
|
|
add_filter('nav_menu_submenu_css_class', 'tailpress_nav_menu_add_submenu_class', 10, 3);
|