问题描述
我从 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.5
? 自 5.5
起,Wordpress 已经提供了默认的自动 XML 站点地图。无需任何操作。
在 WordPress 5.5
中,引入了一项新功能,可将基本的、可扩展的 XML 站点地图功能添加到 WordPress 核心中。