FastBots: bouw een aangepaste WordPress XML-sitemap voor het trainen van uw AI-bot

Martech Zone heeft duizenden artikelen, waarvan er vele verouderd zijn. Ik heb een aantal jaren aan de site gewerkt om honderden artikelen te verwijderen of bij te werken, maar ik heb er nog veel meer. Tegelijkertijd wil ik graag een natuurlijke-taalbot trainen met mijn inhoud, maar het laatste wat ik wil is hem trainen op verouderde artikelen.

SnelleBots is een ChatGPT-aangedreven botbouwer die u in eerste instantie kunt trainen met behulp van uw sitemap (of andere opties). Ik had een gefilterde sitemap nodig die alle artikelen bevatte die sinds een specifieke datum waren gewijzigd. Bovendien wilde ik mijn pagina's en acroniemen (een aangepast berichttype). Ik wilde geen archiefpagina's voor categorieën en tags toevoegen en ook geen startpagina hebben, aangezien deze ook een archief is.

Met behulp van de code die ik aan het einde van dit artikel geef; Ik heb een aangepaste WordPress-plug-in gebouwd die een aangepast bestand maakt XML sitemap die dynamisch wordt vernieuwd telkens wanneer ik een bericht publiceer. FastBots heeft geen geautomatiseerde hertrainingsmethode omdat ik elk artikel publiceer, maar dit is een goed startpunt voor het gebruik van het platform.

De sitemap importeert alle links om de sitemap te trainen AI Bot op:

Alle pagina's zijn nu geïmporteerd en u kunt uw bot trainen op de toepasselijke gegevens. Ook heeft u de mogelijkheid om specifieke pagina’s te verwijderen. Met FastBots kon ik ook de branding van mijn AI-bot aanpassen en zelfs een link naar een relevant artikel in mijn reactie opnemen. Er is ook een leadverzoek ingebouwd in het platform.

Het platform werkte feilloos… je kunt mijn bot hier een proefrit geven:

Lancering Martech Zone's Bot, Marty Bouw uw FastBots AI-bot

Aangepaste XML-sitemap

In plaats van deze functionaliteit aan mijn thema toe te voegen, heb ik een aangepast thema gebouwd WordPress plug-in om een ​​sitemap op te bouwen. Voeg gewoon een map toe aan uw map met plug-ins en vervolgens een PHP bestand met de volgende code:

<?php
/*
Plugin Name: Bot Sitemap
Description: Dynamically generates an XML sitemap including posts modified since a specific date and updates it when a new article is added.
Version: 1.0
Author: Your Name
*/

// Define the date since when to include modified posts (format: Y-m-d)
$mtz_modified_since_date = '2020-01-01';

// Register the function to update the sitemap when a post is published
add_action('publish_post', 'mtz_update_sitemap_on_publish');

// Function to update the sitemap
function mtz_update_sitemap_on_publish($post_id) {
    // Check if the post is not an auto-draft
    if (get_post_status($post_id) != 'auto-draft') {
        mtz_build_dynamic_sitemap();
    }
}

// Main function to build the sitemap
function build_bot_sitemap() {
    global $mtz_modified_since_date;

    $args = array(
        'post_type' => 'post',
        'date_query' => array(
            'column' => 'post_modified',
            'after'  => $mtz_modified_since_date
        ),
        'posts_per_page' => -1 // Retrieve all matching posts
    );

    $postsForSitemap = get_posts($args);

    // Fetch all 'acronym' custom post type posts
    $acronymPosts = get_posts(array(
        'post_type' => 'acronym',
        'posts_per_page' => -1,
    ));

    // Fetch all pages except the home page
    $pagesForSitemap = get_pages();
    $home_page_id = get_option('page_on_front');

    $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);
        if ($post->ID != $home_page_id) {
            $sitemap .= '<url>'.
                          '<loc>'. get_permalink($post) .'</loc>'.
                          '<lastmod>'. get_the_modified_date('c', $post) .'</lastmod>'.
                          '<changefreq>weekly</changefreq>'.
                        '</url>';
        }
    }

    foreach($acronymPosts as $post) {
        setup_postdata($post);
        if ($post->ID != $home_page_id) {
            $sitemap .= '<url>'.
                          '<loc>'. get_permalink($post) .'</loc>'.
                          '<lastmod>'. get_the_modified_date('c', $post) .'</lastmod>'.
                          '<changefreq>weekly</changefreq>'.
                        '</url>';
        }
    }

    foreach($pagesForSitemap as $page) {
        setup_postdata($page);
        if ($page->ID != $home_page_id) {
            $sitemap .= '<url>'.
                          '<loc>'. get_permalink($page) .'</loc>'.
                          '<lastmod>'. get_the_modified_date('c', $page) .'</lastmod>'.
                          '<changefreq>monthly</changefreq>'.
                        '</url>';
        }
    }

    wp_reset_postdata();

    $sitemap .= '</urlset>';

    file_put_contents(get_home_path().'bot-sitemap.xml', $sitemap);
}

// Activate the initial sitemap build on plugin activation
register_activation_hook(__FILE__, 'build_bot_sitemap');
Verlaat de mobiele versie