У меня есть веб-сайт WordPress, на котором контент генерируется динамически, когда пользователь прокручивает новые данные, поступающие из базы данных, с приращением переменной страницы, например, такой как
http://testsite.com/?page=2
Теперья хочу создать карту сайта, чтобы я мог проиндексировать все свои динамически сгенерированные страницы
Я пытался это сделать, но проблема в том, что при каждом просмотре прокрутки вниз я создавал карту сайта, есть какой-нибудь элегантный способ сделать это.Я поместил код карты сайта за событием jQuery при прокрутке
Проблема в том, что этот код создает карту сайта при каждой прокрутке с дублирующимися ссылками
$sitemap .= '<?xml version="1.0" encoding="UTF-8"?>' . '<?xml-stylesheet type="text/xsl" href="' .
esc_url( home_url( '/' ) ) . 'sitemap.xsl"?>';
$sitemap .= "\n" . '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
$sitemap .= "\t" . '<url>' . "\n" .
"\t\t" . '<loc>' . esc_url( home_url( '/' ) ) . '</loc>' .
"\n\t\t" . '<lastmod>' . date( "Y-m-d\TH:i:s", current_time( 'timestamp', 0 ) ) . '</lastmod>' .
"\n\t\t" . '<changefreq>daily</changefreq>' .
"\n\t\t" . '<priority>1.0</priority>' .
"\n\t" . '</url>' . "\n";
foreach( $result as $row ) {
$sitemap .= "\t" . '<url>' . "\n" .
"\t\t" . '<loc>' . $row->ID . '</loc>' .
"\n\t\t" . '<lastmod>' . the_time( 'l, F jS, Y' ). '</lastmod>' .
"\n\t\t" . '<changefreq>Daily</changefreq>' .
"\n\t\t" . '<priority>0.9</priority>' .
"\n\t" . '</url>' . "\n";
}
$sitemap .= '</urlset>';
$fp = fopen( ABSPATH . "sitemap.xml", 'w' );
fwrite( $fp, $sitemap );
fclose( $fp );