首页 问答 正文

如何为wordpress主题添加XML地图生成功能?

注册会员 / 悠然自学 / 2023-07-11/ 浏览 144 次

为WordPress主题添加XML地图生成功能可以通过以下步骤进行操作:

  1. 首先,在主题文件夹中找到functions.php文件,打开并在文件的末尾添加以下代码:
// 添加XML地图支持
function add_sitemap_to_robots($output) {
    if (strpos($output, 'sitemap.xml') === false) {
        $output .= 'Sitemap: ' . esc_url(home_url('/sitemap.xml')) . "n";
    }
    return $output;
}
add_filter('robots_txt', 'add_sitemap_to_robots');

// 创建XML地图
function generate_sitemap() {
    $postsForSitemap = get_posts(array(
        'numberposts' => -1,
        'orderby' => 'modified',
        'post_type' => array('post', 'page'),
        'order' => 'DESC'
    ));

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

    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>weekly</changefreq>'.
            '</url>';
    }

    $sitemap .= '</urlset>';

    $fp = fopen(ABSPATH . "sitemap.xml", 'w');
    fwrite($fp, $sitemap);
    fclose($fp);
}
add_action("publish_post", "generate_sitemap"); 
  1. 以上代码中的第一个函数add_sitemap_to_robots是为了在robots.txt文件中自动添加Sitemap的链接。在输出的robots.txt文件中追加Sitemap链接。注意:如果主题文件夹中没有robots.txt文件,则需要手动创建这个文件。

  2. 第二个函数generate_sitemap是用于创建XML地图的。它获取所有文章和页面的链接,并以XML格式生成sitemap.xml文件。该函数在每次发布新的文章时都会触发调用。

  3. 以上示例代码可以在functions.php文件中直接使用。保存并上传到服务器。

  4. 当你发布新的文章或页面时,XML地图将会自动生成保存在主题文件夹中的sitemap.xml文件中。

请注意:这只是一个简单的示例代码,你可以根据自己的需求和网站结构进行相应的修改。

大家谈论
    我的见解