• Resolved ashique12009

    (@ashique12009)


    Dear support,
    I am trying to put rank-math.php file into my child theme but it does not generate page-bn-sitemap.xml and page-en-sitemap.xml. it always show page-sitemap.xml. I have two languages in this website and powered by Polylang. One Language is Bangla and another one is English and Bangla is the default language.
    The code is here:


    <?php

    /**

    * Rank Math + Polylang Multilingual Sitemap Fix

    */

    defined( 'ABSPATH' ) || exit;

    /**

    * Force load early

    */

    add_action( 'init', 'rmppl_register_multilang_sitemaps', 5 );

    function rmppl_register_multilang_sitemaps() {

    if ( ! function_exists( 'pll_languages_list' ) ) {

    return;

    }

    $languages = pll_languages_list();

    if ( empty( $languages ) ) {

    return;

    }

    // Register per-language post/page sitemaps

    add_filter( 'rank_math/sitemap/post_types', function( $post_types ) use ( $languages ) {

    foreach ( $languages as $lang ) {

    $post_types["post-{$lang}"] = [

    'name' => "post-{$lang}",

    'object_type' => ['post'],

    'query_var' => [

    'post_type' => 'post',

    'lang' => $lang,

    ],

    ];

    $post_types["page-{$lang}"] = [

    'name' => "page-{$lang}",

    'object_type' => ['page'],

    'query_var' => [

    'post_type' => 'page',

    'lang' => $lang,

    ],

    ];

    }

    return $post_types;

    });

    }

    /**

    * Correct URLs inside RankMath sitemap entries

    */

    add_filter( 'rank_math/sitemap/entry', function( $url, $post ) {

    if ( function_exists( 'pll_get_post_language' ) ) {

    $lang = pll_get_post_language( $post->ID );

    if ( $lang ) {

    $lang_home = pll_home_url( $lang );

    $url = $lang_home . str_replace( home_url( '/' ), '', $url );

    }

    }

    return $url;

    }, 10, 2);

    How to fix it?
    Thanks
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)

You must be logged in to reply to this topic.