/* =========================================================
* SEO HOMEPAGE — Meta, Schema.org, Preload
* ========================================================= */
add_action('wp_head', function (): void {
if (!is_front_page()) return;
$title = 'Investir à Marrakech | Prix m², Estimation & Outils Immobiliers | Marrakech Immobilier';
$description = 'Plateforme d\'analyse immobilière à Marrakech. Comparez les prix au m² par quartier, estimez votre bien, calculez votre rendement locatif. 7 outils gratuits pour acheter ou investir en toute connaissance.';
$canonical = home_url('/');
$og_image = home_url('/wp-content/uploads/2026/04/marrakech-hero.jpg');
echo '' . "\n";
echo "\n\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
echo '' . "\n";
$schema = [
'@context' => 'https://schema.org',
'@graph' => [
[
'@type' => 'WebSite',
'@id' => home_url('/#website'),
'url' => home_url('/'),
'name' => 'Marrakech Immobilier',
'description' => 'Plateforme d\'analyse et d\'outils immobiliers à Marrakech',
'inLanguage' => 'fr-MA',
'potentialAction' => [
'@type' => 'SearchAction',
'target' => ['@type' => 'EntryPoint', 'urlTemplate' => home_url('/?s={search_term_string}')],
'query-input' => 'required name=search_term_string',
],
],
[
'@type' => 'RealEstateAgent',
'@id' => home_url('/#business'),
'name' => 'Marrakech Immobilier',
'url' => home_url('/'),
'image' => $og_image,
'description' => 'Analyse du marché immobilier à Marrakech : prix au m², estimation, rentabilité locative, fiscalité et frais d\'acquisition.',
'address' => ['@type' => 'PostalAddress', 'addressLocality' => 'Marrakech', 'addressCountry' => 'MA'],
'areaServed' => ['@type' => 'City', 'name' => 'Marrakech'],
],
[
'@type' => 'WebPage',
'@id' => home_url('/#webpage'),
'url' => home_url('/'),
'name' => $title,
'description' => $description,
'isPartOf' => ['@id' => home_url('/#website')],
'inLanguage' => 'fr-MA',
'breadcrumb' => [
'@type' => 'BreadcrumbList',
'itemListElement' => [['@type' => 'ListItem', 'position' => 1, 'name' => 'Accueil', 'item' => home_url('/')]],
],
],
[
'@type' => 'ItemList',
'name' => 'Outils immobiliers Marrakech',
'numberOfItems' => 7,
'itemListElement' => [
['@type' => 'ListItem', 'position' => 1, 'name' => 'Estimation immobilière Marrakech', 'url' => home_url('/estimation-immobiliere-marrakech/')],
['@type' => 'ListItem', 'position' => 2, 'name' => 'Prix au m² par quartier', 'url' => home_url('/prix-immobilier-a-marrakech-au-m2-par-quartier-et-par-type-de-bien/')],
['@type' => 'ListItem', 'position' => 3, 'name' => 'Simulateur de rentabilité locative', 'url' => home_url('/simulateur-de-rentabilite-immobiliere-a-marrakech/')],
['@type' => 'ListItem', 'position' => 4, 'name' => 'Calculateur budget d\'achat', 'url' => home_url('/budget-immobilier-marrakech/')],
['@type' => 'ListItem', 'position' => 5, 'name' => 'Calculateur frais d\'acquisition', 'url' => home_url('/calculateur-frais-dacquisition-maroc/')],
['@type' => 'ListItem', 'position' => 6, 'name' => 'Calculateur revenus locatifs', 'url' => home_url('/calculateur-revenus-locatifs-marrakech/')],
['@type' => 'ListItem', 'position' => 7, 'name' => 'Calculateur TPI plus-value', 'url' => home_url('/calculateur-tpi-plus-value-immobiliere/')],
],
],
[
'@type' => 'FAQPage',
'@id' => home_url('/#faq'),
'mainEntity' => [
['@type' => 'Question', 'name' => 'Quel est le prix au m² à Marrakech ?',
'acceptedAnswer' => ['@type' => 'Answer', 'text' => 'Les prix au m² à Marrakech varient selon les quartiers : de 8 000 DH/m² en Médina à plus de 20 000 DH/m² en Palmeraie ou Hivernage. À Guéliz, le prix moyen tourne autour de 15 500 DH/m² en 2025-2026.']],
['@type' => 'Question', 'name' => 'Un étranger peut-il acheter un bien immobilier à Marrakech ?',
'acceptedAnswer' => ['@type' => 'Answer', 'text' => 'Oui, les étrangers peuvent acheter librement un bien immobilier au Maroc. L\'achat doit être financé par un virement en devises et l\'acte authentifié par un notaire.']],
['@type' => 'Question', 'name' => 'Quel rendement locatif espérer à Marrakech ?',
'acceptedAnswer' => ['@type' => 'Answer', 'text' => 'Le rendement locatif brut à Marrakech se situe généralement entre 6% et 14% selon le quartier et le type de bien.']],
['@type' => 'Question', 'name' => 'Quels sont les frais d\'acquisition immobilière au Maroc ?',
'acceptedAnswer' => ['@type' => 'Answer', 'text' => 'Les frais d\'acquisition immobilière au Maroc représentent environ 6 à 7% du prix de vente : droits d\'enregistrement (4%), conservation foncière (1,5%), honoraires notaire (1%) et frais divers.']],
],
],
],
];
echo '\n";
echo "\n";
}, 1);
add_filter('document_title_parts', function (array $title): array {
if (is_front_page()) {
$title['title'] = 'Investir à Marrakech | Prix m², Estimation & Outils Immobiliers';
$title['tagline'] = '';
$title['site'] = 'Marrakech Immobilier';
}
return $title;
});
/* =========================================================
* AJAX — Cards aléatoires quartiers & guides (bypass LiteSpeed)
* ========================================================= */
add_action('wp_ajax_mi_random_cards', 'mi_ajax_random_cards');
add_action('wp_ajax_nopriv_mi_random_cards', 'mi_ajax_random_cards');
function mi_ajax_random_cards(): void {
$type = isset($_GET['type']) ? sanitize_key($_GET['type']) : '';
$nonce = isset($_GET['nonce']) ? sanitize_text_field(wp_unslash($_GET['nonce'])) : '';
if (!wp_verify_nonce($nonce, 'mi_random_cards')) {
wp_send_json_error('invalid_nonce', 403);
}
if (!in_array($type, ['quartier', 'guide'], true)) {
wp_send_json_error('invalid_type', 400);
}
$query = new WP_Query([
'post_type' => $type,
'posts_per_page' => 3,
'post_status' => 'publish',
'orderby' => 'rand',
'no_found_rows' => true,
]);
$cards = [];
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$id = get_the_ID();
$title_val = get_the_title();
$permalink = get_permalink();
$excerpt = wp_trim_words(wp_strip_all_tags(get_the_content()), $type === 'quartier' ? 18 : 22);
if ($type === 'quartier') {
$thumb_id = get_post_thumbnail_id($id);
$image = $thumb_id ? wp_get_attachment_image_url($thumb_id, 'full') : '';
$image_alt = $thumb_id ? (string) get_post_meta($thumb_id, '_wp_attachment_image_alt', true) : '';
$image_alt = $image_alt ?: sprintf('Photo du quartier %s à Marrakech', $title_val);
$cards[] = ['title' => $title_val, 'permalink' => $permalink, 'excerpt' => $excerpt, 'image' => $image, 'image_alt' => $image_alt];
} else {
$cards[] = ['title' => $title_val, 'permalink' => $permalink, 'excerpt' => $excerpt];
}
}
wp_reset_postdata();
}
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: no-cache');
header('X-LiteSpeed-Cache-Control: no-cache');
wp_send_json_success($cards);
}
/* Injecter le nonce + URL AJAX dans le footer de la homepage uniquement */
add_action('wp_footer', function (): void {
if (!is_front_page()) return;
echo '' . "\n";
}, 1);