FastBots: Zbuduj niestandardową mapę witryny WordPress XML do szkolenia swojego bota AI
Martech Zone zawiera tysiące artykułów, wiele z nich jest nieaktualnych. Pracowałem na tej stronie przez kilka lat, aby usunąć lub zaktualizować setki artykułów, ale wciąż mam ich o wiele więcej. Jednocześnie chciałbym wytrenować bota języka naturalnego z moimi treściami, ale ostatnią rzeczą, którą chcę zrobić, to trenować go na nieaktualnych artykułach.
SzybkieBoty jest ChatGPT-silny kreator botów, którego możesz początkowo trenować za pomocą mapy witryny (lub innych opcji). Potrzebowałem filtrowanej mapy witryny zawierającej wszystkie artykuły zmodyfikowane od określonej daty. Dodatkowo chciałem uwzględnić moje strony i akronimy (niestandardowy typ postu). Nie chciałem dołączać stron archiwalnych dla kategorii i tagów ani mieć mojej strony głównej, ponieważ jest to również archiwum.
Używając kodu, który podaję na końcu tego artykułu; Zbudowałem niestandardową wtyczkę WordPress, która tworzy plik niestandardowy XML mapa witryny, która dynamicznie odświeża się za każdym razem, gdy publikuję post. FastBots nie posiada automatycznej metody przekwalifikowania, ponieważ publikuję każdy artykuł, ale jest to świetny punkt wyjścia do korzystania z platformy.
Mapa witryny importuje wszystkie linki do szkolenia AI Bot na:
Wszystkie strony zostały teraz zaimportowane i możesz przeszkolić swojego bota w zakresie odpowiednich danych. Masz również możliwość usunięcia określonych stron. Dzięki FastBots mogłem także dostosować branding mojego bota AI, a nawet dołączyć link do odpowiedniego artykułu w mojej odpowiedzi. Na platformie wbudowane jest również żądanie kontaktu.
Platforma działała bez zarzutu… jazdę próbną z moim botem możesz odbyć tutaj:
Premiera Martech ZoneBot, Marty Zbuduj swojego bota AI FastBots
Niestandardowa mapa witryny XML
Zamiast dodawać tę funkcjonalność do mojego motywu, zbudowałem niestandardową WordPress wtyczka do tworzenia mapy witryny. Po prostu dodaj katalog w folderze wtyczek, a następnie a PHP plik z następującym kodem:
<?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');