serii81
@serii81
Я люблю phр...

Как октлючить wp-sitemap.xml в wordpress?

Добрый день.
Я на сайте получаю посты с другого сайта и нужно добавить их в sitemap.

Чтобы отображать эти посты, я создал страницу ads, и в качестве get параметра получаю id поста и уже вывожу на страницу.

https://immobiliareclass.com/ads/?id=546815

Для создания sitemap я нашел такой скрипт.

add_action("save_post", "eg_create_sitemap");
function eg_create_sitemap()
{
    $postsForSitemap = get_posts(array(
        'numberposts' => -1,
        'orderby'     => 'modified',
        'post_type'   => array('post', 'page'),
        'order'       => 'DESC'
    ));

    $adsForSitemap = getPropertiesId();

    $sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
    $sitemap .= "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
    foreach ($postsForSitemap as $post) {
        setup_postdata($post);
        $postdate = explode(" ", $post->post_modified);
        $sitemap .= "\t" . '<url>' . "\n" .
            "\t\t" . '<loc>' . get_permalink($post->ID) . '</loc>' .
            "\n\t\t" . '<lastmod>' . $postdate[0] . '</lastmod>' .
            "\n\t\t" . '<changefreq>monthly</changefreq>' .
            "\n\t" . '</url>' . "\n";
    }
    foreach ($adsForSitemap as $item) {
        setup_postdata($post);
        $sitemap .= "\t" . '<url>' . "\n" .
            "\t\t" . '<loc>https://immobiliareclass.com/ads?id=' . $item->id . '</loc>' .
            "\n\t\t" . '<lastmod>' . $item->updated_at . '</lastmod>' .
            "\n\t\t" . '<changefreq>monthly</changefreq>' .
            "\n\t" . '</url>' . "\n";
    }
    $sitemap .= '</urlset>';
    $fp = fopen(ABSPATH . "sitemap.xml", 'w');
    fwrite($fp, $sitemap);
    fclose($fp);
}


Я пробовал этот скрипт на другом сайте и там он работает. А на этом есть проблема с wp-sitemap.xml.
Если я браузере пишу url/sitemap.xml то идет переадресация на url/wp-sitemap.xml

https://immobiliareclass.com/robots.txt

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Sitemap: https://immobiliareclass.com/sitemap.xml


Я нашел скрипт, который отключает wp-sitemap

add_filter('wp_sitemaps_enabled', '__return_false');


Только этот фильтр отключает не только wp-sitemap но и sitemap.xml

Заранее благодарен за ответ.
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
serii81
@serii81 Автор вопроса
Я люблю phр...
Вопрос решен.
Банально, забыл подключить файлик sitemap.php в functions.php.

Просто пришлось сделать карту для нескольких сайтов, и у некоторых работало.
Еще, я использую для seo rankmath, и у плагина отключил sitemap.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы