Se il nostro sito WordPress serve contenuti ad altri siti o piattaforme tramite feed RSS, potremmo avere bisogno di formati RSS alternativi per ciascun sito o piattaforma.
La soluzione consiste nel copiare il template originale del feed RSS di WordPress nel nostro tema, modificarlo e quindi aggiungere una variabile alla query string di WordPress in modo da poterlo servire:
// functions.php
function my_add_query_vars_filter( $vars ) {
$vars[] = 'my-alt-feed';
return $vars;
}
add_filter( 'query_vars', 'my_add_query_vars_filter' );
remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_feed_rss2', 10, 1 );
function my_feed_rss2( $for_comments ) {
// Copiamo il template da /wp-includes/feed-rss2.php e lo modifichiamo
$rss_template = get_template_directory() . '/inc/my-feed-rss2.php';
if( get_query_var( 'my-alt-feed' ) == '1' and file_exists( $rss_template ) ) {
load_template( $rss_template );
} else {
do_feed_rss2( $for_comments );
}
}
A questo punto l'URL tuosito.com/feed/?my-alt-feed=1 mostrerà il feed RSS alternativo.