要修改wp-sitemap.xml文件并更命为:sitemap.xml,通常需要编写一个脚本来生成或者更新这个sitemap。WordPress提供了内置的Sitemap插件,但如果你需要自定义sitemap的生成方式,可以按照以下步骤操作:
1、找到生成sitemap的函数或脚本。
2、修改函数或脚本以满足你的需求。
3、确保修改后的代码在WordPress的生命周期中被正确调用。
以下是一个简单的示例,展示如何使用WordPress的内置函数来生成一个基本的sitemap。你可以将这段代码放入你的主题的functions.php文件中,或者创建一个单独的插件来管理sitemap的生成。
// 添加sitemap到你的主题函数
add_action( ‘template_redirect’, ‘my_sitemap_generator’ );function my_sitemap_generator() {
// 检查是否是访问sitemap.xml的请求
if ( $_SERVER[‘REQUEST_URI’] == ‘/sitemap.xml’ ) {
header( ‘Content-type: text/xml’ );
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″>’;// 获取所有发布的文章
$posts = get_posts( array(
‘numberposts’ => -1,
‘post_type’ => ‘post’,
‘post_status’ => ‘publish’
) );foreach( $posts as $post ) {
echo ‘<url>’;
echo ‘<loc>’ . get_permalink( $post->ID ) . ‘</loc>’;
echo ‘<lastmod>’ . get_the_modified_date( ‘Y-m-d’, $post->ID ) . ‘</lastmod>’;
echo ‘<changefreq>daily</changefreq>’;
echo ‘<priority>0.8</priority>’; // 假设文章优先级为0.8
echo ‘</url>’;
}// 获取所有页面
$pages = get_pages( array(
‘sort_column’ => ‘post_date’,
‘sort_order’ => ‘asc’,
‘post_type’ => ‘page’,
‘post_status’ => ‘publish’
) );foreach( $pages as $page ) {
echo ‘<url>’;
echo ‘<loc>’ . get_page_link( $page->ID ) . ‘</loc>’;
echo ‘<lastmod>’ . get_the_modified_date( ‘Y-m-d’, $page->ID ) . ‘</lastmod>’;
echo ‘<changefreq>monthly</changefreq>’; // 假设页面更新频率较低,为每月
echo ‘<priority>0.9</priority>’; // 假设页面优先级稍高于文章
echo ‘</url>’;
}// 获取所有分类目录
$categories = get_categories( array(
‘hide_empty’ => 0,
‘orderby’ => ‘name’,
‘order’ => ‘ASC’
) );foreach ( $categories as $category ) {
echo ‘<url>’;
echo ‘<loc>’ . get_category_link( $category->term_id ) . ‘</loc>’;
echo ‘<lastmod>’ . $category->last_update . ‘</lastmod>’; // 分类目录的更新日期可能不是直接的字段,这里假设有一个字段
echo ‘<changefreq>weekly</changefreq>’; // 假设分类目录的更新频率是每周
echo ‘<priority>0.7</priority>’; // 假设分类目录的优先级稍低于页面
echo ‘</url>’;
}echo ‘</urlset>’;
exit;
}
}
这段代码会在WordPress初始化时注册一个回调函数,当检测到是生成sitemap的请求时,会输出一个简单的sitemap.xml文件,包括了所有发布的文章。 请注意,这只是一个基本示例,你可能需要根据自己网站的具体情况来扩展sitemap的生成,比如添加对页面、分类目录、标签等的支持,以及处理自定义结构和权限等问题。