TransWikia.com

Как в ссылки карты sitemap, построенную с помощью Yoast SEO вписать priority и frequency?

Stack Overflow на русском Asked on November 15, 2021

Есть сайт на WordPress с установленным SEO плагином Yoast SEO.
Меня интересует карта sitemap. На текущий момент структура карты при стандартных настройках такая:

<td><a href="http://example.test/post-sitemap.xml">http://example.test/post-sitemap.xml</a></td>

В версии плагина 3.5 они пишут, что убрали priority и frequency, но мне их нужно вернуть для своей карты и сделать в таком виде:

<td><url>
<loc>http://example.test/post-sitemap.xml</loc>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url></td>

Для этого пробую через фильтр wpseo_xml_sitemap_post_url в functions.php сделать обращение к ссылке и вернуть измененную версию

function filter_wpseo_xml_sitemap_post_url( $get_permalink, $post ) { 
    if($post->post_type == 'page'){
        return $get_permalink . '<changefreq>weekly</changefreq>';
    }
    return $get_permalink; 
}; 
add_filter( 'wpseo_xml_sitemap_post_url', 'filter_wpseo_xml_sitemap_post_url', 10, 2 );

но, по итогу дотягиваюсь только до самой ссылке и на выходе у меня получается

<a href="http://example.test/<changefreq>weekly</changefreq>">http://wp-credit7-ua.test/<changefreq>weekly</changefreq></a>

Как можно решить данный вопрос?

One Answer

Для изменения записи в сайтмап есть фильтр wpseo_sitemap_entry. Пример кода:

add_filter( 'wpseo_sitemap_entry', 'change_sitemap_entry', 10, 3 );
function change_sitemap_entry( $url, $type, $object ) {
    if ( 'post' === $type && 'my_custom_post_type' === $object->post_type ) {
        $url['chf'] = 'daily';
        $url['pri'] = 0.8;
    }

    return $url;
}

Answered by WP Punk on November 15, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP