Skip to content

Instantly share code, notes, and snippets.

@troutcolor
Created August 6, 2018 09:19
Show Gist options
  • Save troutcolor/d5e89e052e3658a74f59d3e82fc2ac09 to your computer and use it in GitHub Desktop.
Save troutcolor/d5e89e052e3658a74f59d3e82fc2ac09 to your computer and use it in GitHub Desktop.
WordPress RSS feed template for my microcast
<?php
/**
* RSS2 Feed Template for displaying RSS2 Posts feed.
* Modified for microcast
* Based on template found https://css-tricks.com/roll-simple-wordpress-podcast-plugin
*
*/
$numposts = 50; // number of posts in feed
$posts = query_posts('showposts='.$numposts.'&cat=652');
header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
$more = 1;
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
/**
* Fires between the xml and rss tags in a feed.
*
* @since 4.0.0
*
* @param string $context Type of feed. Possible values include 'rss2', 'rss2-comments',
* 'rdf', 'atom', and 'atom-comments'.
*/
do_action( 'rss_tag_pre', 'rss2' );
?>
<rss version="2.0"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
<?php
/**
* Fires at the end of the RSS root to add namespaces.
*
* @since 2.0.0
*/
do_action( 'rss2_ns' );
?>
>
<channel>
<title>John's Microcast</title>
<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
<link>http://johnjohnston.info/blog/category/microcast/</link>
<language><?php echo get_bloginfo ( 'language' ); ?></language>
<copyright><?php echo date('Y'); ?> <?php echo get_bloginfo('name'); ?></copyright>
<itunes:author><?php echo get_bloginfo('name'); ?></itunes:author>
<itunes:summary>A microcast by John Johnston</itunes:summary>
<description>A microcast by John Johnston</description>
<itunes:owner>
<itunes:name><?php echo get_bloginfo('name'); ?></itunes:name>
<itunes:email><?php echo get_bloginfo('admin_email'); ?></itunes:email>
</itunes:owner>
<itunes:image href="http://johnjohnston.info/blog/wp-content/uploads/2018/08/ravenlogo-1400.png" />
<itunes:category text="Education">
</itunes:category>
<itunes:explicit>no</itunes:explicit>
<lastBuildDate><?php
$date = get_lastpostmodified( 'GMT' );
echo $date ? mysql2date( 'r', $date, false ) : date( 'r' );
?></lastBuildDate>
<sy:updatePeriod><?php
$duration = 'hourly';
/**
* Filters how often to update the RSS feed.
*
* @since 2.1.0
*
* @param string $duration The update period. Accepts 'hourly', 'daily', 'weekly', 'monthly',
* 'yearly'. Default 'hourly'.
*/
echo apply_filters( 'rss_update_period', $duration );
?></sy:updatePeriod>
<sy:updateFrequency><?php
$frequency = '1';
/**
* Filters the RSS update frequency.
*
* @since 2.1.0
*
* @param string $frequency An integer passed as a string representing the frequency
* of RSS updates within the update period. Default '1'.
*/
echo apply_filters( 'rss_update_frequency', $frequency );
?></sy:updateFrequency>
<?php
/**
* Fires at the end of the RSS2 Feed Header.
*
* @since 2.0.0
*/
//do_action( 'rss2_head');
while( have_posts()) : the_post();
?>
<item>
<title><?php the_title_rss(); ?></title>
<itunes:author><?php echo get_bloginfo('name'); ?></itunes:author>
<itunes:summary><![CDATA[<?php echo $content; ?>]]></itunes:summary>
<?php // Retrieve just the URL of the Featured Image: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src
if (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?>
<itunes:image href="<?php echo $image[0]; ?>" />
<?php endif; ?>
<?php echo rss_enclosure()?>
<guid><?php the_guid(); ?></guid>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
</item>
<?php endwhile; ?>
</channel>
</rss>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment