在WordPress中为动态生成的内容创建站点地图的优雅方法

时间:2019-06-17 07:00:02

标签: php wordpress sitemap

我有一个WordPress网站,当用户向下滚动来自数据库的新数据时,其中的内容是动态生成的,例如页面的page变量增加

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 );

0 个答案:

没有答案