[Plugin] Flipboard feed modifications
<?php | |
/* | |
* Plugin Name: Flipboard RSS Feed | |
* Plugin URI: http://www.gitnerd.com | |
* Description: A plugin to customize the default RSS Feed according to Flipboard technical specifications. | |
* Version: 1.0 | |
* Author: oxocode | |
* Author URI: http://www.gitnerd.com | |
*/ | |
add_filter( 'the_content_feed', 'flipboard_title_and_subtitle' ); | |
function flipboard_title_and_subtitle( $content ) { | |
global $post; | |
$post_subtitle = get_post_meta( $post->ID, 'subtitle', TRUE ); | |
// add hgroup only if the Custom Field is set | |
if ( $post_subtitle ) { | |
$hgroup = '<hgroup><h1>' . $post->post_title . '</h1>'; | |
$hgroup .= '<h2>' . $post_subtitle . '</h2></hgroup>'; | |
return $hgroup . $content; | |
} else { | |
return $content; | |
} | |
} | |
add_filter( 'the_content_feed', 'flipboard_pull_quotes' ); | |
function flipboard_pull_quotes( $content ) { | |
// replace blockquote tag with aside | |
return str_replace( 'blockquote>', 'aside>', $content ); | |
} | |
add_filter( 'rss2_item', 'flipboard_attached_images' ); | |
function flipboard_attached_images() { | |
global $post; | |
$attachments = get_posts( array( | |
'post_type' => 'attachment', | |
'post_mime_type' => 'image', | |
'posts_per_page' => -1, | |
'post_parent' => $post->ID, | |
'exclude' => get_post_thumbnail_id() | |
) ); | |
if ( $attachments ) { | |
foreach ( $attachments as $att ) { | |
$img_attr = wp_get_attachment_image_src( $att->ID, 'full' ); | |
?> | |
<media:content url="<?php echo $img_attr[0]; ?>" type="<?php echo $att->post_mime_type; ?>" medium="image" width="<?php echo $img_attr[1]; ?>" height="<?php echo $img_attr[2]; ?>"> | |
<media:description type="plain"><![CDATA[<?php echo $att->post_title; ?>]]></media:description> | |
<media:copyright><?php echo get_the_author(); ?></media:copyright> | |
</media:content> | |
<?php | |
} | |
} | |
add_filter( 'rss2_item', 'flipboard_attached_videos' ); | |
function flipboard_attached_videos() { | |
global $post; | |
$attachments = get_posts( array( | |
'post_type' => 'attachment', | |
'post_mime_type' => 'video', | |
'posts_per_page' => -1, | |
'post_parent' => $post->ID, | |
'exclude' => get_post_thumbnail_id() | |
) ); | |
if ( $attachments ) { | |
foreach ( $attachments as $att ) { | |
$video_url = wp_get_attachment_url( $att->ID ); | |
$parts = explode( '|', $att->post_content ); | |
?> | |
<media:content url="<?php echo $video_url; ?>" type="<?php echo $att->post_mime_type; ?>"> | |
<media:description type="plain"><![CDATA[<?php echo $att->post_title; ?>]]></media:description> | |
<media:copyright><?php echo get_the_author(); ?></media:copyright> | |
<media:thumbnail url="<?php echo $parts[0]; ?>" width="<?php echo $parts[1]; ?>" height="<?php echo $parts[2]; ?>" /> | |
</media:content> | |
<?php | |
} | |
} | |
} | |
add_filter( 'rss2_item', 'flipboard_attached_audio' ); | |
function flipboard_attached_audio() { | |
global $post; | |
$attachments = get_posts( array( | |
'post_type' => 'attachment', | |
'post_mime_type' => 'audio', | |
'posts_per_page' => -1, | |
'post_parent' => $post->ID, | |
'exclude' => get_post_thumbnail_id() | |
) ); | |
if ( $attachments ) { | |
foreach ( $attachments as $att ) { | |
$audio_url = wp_get_attachment_url( $att->ID ); | |
$parts = explode( '|', $att->post_content ); | |
$headers = get_headers( $audio_url, 1 ); | |
$filesize = $headers['Content-Length']; | |
?> | |
<media:content url="<?php echo $audio_url; ?>" fileSize="<?php echo $filesize; ?>" type="<?php echo $att->post_mime_type; ?>"> | |
<media:description type="plain"><![CDATA[<?php echo $att->post_title; ?>]]></media:description> | |
<media:copyright><?php echo get_the_author(); ?></media:copyright> | |
<media:thumbnail url="<?php echo $parts[0]; ?>" width="<?php echo $parts[1]; ?>" height="<?php echo $parts[2]; ?>" /> | |
</media:content> | |
<?php | |
} | |
} | |
} | |
add_filter( 'the_content_feed', 'flipboard_slideshow' ); | |
function flipboard_slideshow( $content ) { | |
global $post; | |
$attachments = get_posts( array( | |
'post_type' => 'attachment', | |
'post_mime_type' => 'image', | |
'posts_per_page' => -1, | |
'post_parent' => $post->ID, | |
'exclude' => get_post_thumbnail_id() | |
) ); | |
if ( $attachments ) { | |
$slide = '<section class="fl-slideshow"><h1>' . $post->post_title . '</h1>'; | |
foreach ( $attachments as $att ) { | |
$img_attr = wp_get_attachment_image_src( $att->ID, 'full' ); | |
$slide .= '<figure> | |
<img src="' . $img_attr[0] . '" width="' . $img_attr[1] . '" height="' . $img_attr[2] . '"> | |
<figcaption>' . $att->post_title . '</figcaption> | |
</figure>'; | |
} | |
$slide .= '</section>'; | |
return $content . $slide; | |
} else { | |
return $content; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment