KOKINIO - MANAGER
Edit File: llmtxtfile.php
<?php /* * SITESEO * https://siteseo.io * (c) SiteSEO Team */ namespace SiteSEOPro; if(!defined('ABSPATH')){ die('Hacking Attempt !'); } class LLMTxtFile{ static function init(){ global $siteseo; add_filter('query_vars', function ($vars){ $vars[] = 'llm_txt'; return $vars; }); } static function add_rewrite_rules(){ add_rewrite_rule('^llms\.txt$', 'index.php?llm_txt=1', 'top'); flush_rewrite_rules(); } static function handle_llm_requests(){ if(get_query_var('llm_txt') == 1){ self::generate_llm_txt(); exit; } } static function generate_llm_txt(){ global $siteseo; header('Content-Type: text/plain; charset=utf-8'); //SiteSeo echo "<!-- Generated by SiteSeo -->\n\n"; // Site Title, echo "# [" . esc_html(get_bloginfo('name')) . "](" . esc_url(home_url()) . ")\n"; $site_desc = !empty($siteseo->pro['llm_txt_web_desc']) ? $siteseo->pro['llm_txt_web_desc'] : get_bloginfo('description'); echo "> " . esc_html($site_desc); $numberposts = !empty($siteseo->pro['llm_txt_limt']) ? (int) $siteseo->pro['llm_txt_limt'] : 10; $post_types = !empty($siteseo->pro['llm_txt_posts']) ? $siteseo->pro['llm_txt_posts'] : []; // Post Types foreach($post_types as $post_type){ $posts = get_posts([ 'post_type' => $post_type, 'post_status' => 'publish', 'number' => $numberposts, 'order' => 'DESC', 'orderby' => 'date', 'has_password' => false, 'no_found_rows' => true, 'meta_query' => [ [ 'key' => '_siteseo_robots_index', 'compare' => 'NOT EXISTS' ] ] ]); // Post Type Name echo "\n\n## " . esc_html(ucfirst($post_type)) . "s"; foreach($posts as $post){ setup_postdata($post); // Post Types (Built-in + Custom) echo "\n- [**" . esc_html(get_the_title($post)) . "**]("; echo esc_url(get_permalink($post)) . ") : "; echo esc_html(str_replace(" […]", "...", html_entity_decode(wp_strip_all_tags(get_the_excerpt($post))))); } wp_reset_postdata(); } if(!empty($siteseo->pro['llm_txt_taxonomies'])){ echo "\n"; foreach($siteseo->pro['llm_txt_taxonomies'] as $taxonomy){ $terms = get_terms([ 'taxonomy' => $taxonomy, 'hide_empty' => true, 'exclude' => [1], 'number' => $numberposts, 'meta_query' => [ [ 'key' => '_siteseo_robots_index', 'compare' => 'NOT EXISTS', ] ] ]); if(empty($terms) || is_wp_error($terms)){ continue; } if(!empty($terms)){ echo "\n## " . esc_html(ucwords(strtolower(str_replace(['-', '_'], ' ', $taxonomy)))) . "\n"; } foreach($terms as $term){ echo "- [" . esc_html($term->name) . "](" .esc_html(get_term_link($term)). ")".(!empty($term->description) ? " : " . esc_html($term->description) : "") . "\n"; } } } exit; } }