没有插件的站点地图

问题描述

我从 https://wordpress.stackexchange.com/a/324487

找到了这个代码
add_action( 'publish_post','ow_create_sitemap' );
add_action( 'publish_page','ow_create_sitemap' );
add_action( 'save_post','ow_create_sitemap' );

function ow_create_sitemap() {
    $postsForSitemap = get_posts(array(
        'numberposts' => -1,'orderby'     => 'modified',// 'custom_post' should be replaced with your own Custom Post Type (one or many)
        'post_type'   => array( 'post','page','custom_post' ),'order'       => 'DESC'
    ));

    $sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
    $sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" 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">';

    foreach( $postsForSitemap as $post ) {
        setup_postdata( $post );

        $postdate = explode( " ",$post->post_modified );

        $sitemap .= '<url>'.
                    '<loc>' . get_permalink( $post->ID ) . '</loc>' .
                    '<lastmod>' . $postdate[0] . '</lastmod>' .
                    '<changefreq>monthly</changefreq>' .
                    '</url>';
      }

    $sitemap .= '</urlset>';

    $fp = fopen( ABSPATH . 'sitemap.xml','w' );

    fwrite( $fp,$sitemap );
    fclose( $fp );
}

我需要帮助将每个站点地图拆分为 1000 个帖子,而我的站点有 4 万多个帖子,因此站点地图将创建站点地图 1、站点地图 2、站点地图 3。

有人可以帮我吗?

我需要它来制作视频站点地图,因为我知道的大多数视频站点地图插件支持 youtube 和 vimeo。

解决方法

您是否在运行 Wordpress 5.55.5 起,Wordpress 已经提供了默认的自动 XML 站点地图。无需任何操作。

在 WordPress 5.5 中,引入了一项新功能,可将基本的、可扩展的 XML 站点地图功能添加到 WordPress 核心中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...