"thumbnail",
"rss"=>0,
"rss2"=>1,
"media"=>0,
"enclosure"=>1,
"version"=>"1.1"
);
if ($default) {
update_option('wp_rss_img_op', $rss_img_default_op);
return $rss_img_default_op;
}
$options = get_option('wp_rss_img_op');
if (isset($options)){
if (isset($options['version'])) {
$chk_version = version_compare("1.1",$options['version']);
if ($chk_version == 0) return $options;
else if ($chk_version > 0) $options = $rss_img_default_op;
} else {
$options = $rss_img_default_op;
}
}
update_option('wp_rss_img_op', $options);
return $options;
}
add_action('admin_menu', 'wp_rss_img_menu');
add_action("do_feed_rss","wp_rss_img_do_feed",5,1);
add_action("do_feed_rss2","wp_rss_img_do_feed",5,1);
function wp_rss_img_do_feed($for_comments){
if(!$for_comments) {
$options = wp_rss_img_get_options();
if($options['media']) add_action('rss2_ns', 'wp_rss_img_adding_yahoo_media_tag');
if ($options['rss']) add_action('rss_item', 'wp_rss_img_include');
if ($options['rss2']) add_action('rss2_item', 'wp_rss_img_include');
}
}
function wp_rss_img_include (){
$options = wp_rss_img_get_options();
$media = $options['media'];
$enclosure = $options['enclosure'];
$image_size = $options['size'];
$image_url = wp_rss_img_url($image_size);
if (!empty($image_url) && ($enclosure || $media)) {
$uploads = wp_upload_dir();
$url = parse_url($image_url);
$path = $uploads['basedir'] . preg_replace( '/.*uploads(.*)/', '${1}', $url['path'] );
if ( file_exists( $path ) )
{
$filesize = filesize( $path );
$url = $path;
} else {
$ary_header = get_headers($image_url, 1);
$filesize = $ary_header['Content-Length'];
$url = $image_url;
}
if($enclosure) echo '';
if($media){
list($width, $height, $type, $attr) = getimagesize($url);
echo '';
}
}
}
function wp_rss_img_adding_yahoo_media_tag(){
echo 'xmlns:media="http://search.yahoo.com/mrss/"';
}
/**
* Returns a URL to an image in the user uploads directory on this server.
*
* Developers can hook the wp_rss_image_alternative filter to provide their
* own image URL on this server, or hook the wp_rss_image_size filter to
* provide a specific size for the featured_image.
*
* @param string $size Defaults to medium, a WordPress image size added with add_image_size
* @return string The URL to an image on this server
*/
function wp_rss_img_url($size = 'medium') {
global $post;
if ( $img_url = apply_filters( 'wp_rss_image_alternative', false, $post->ID ) ) {
return $img_url;
} else if( function_exists ('has_post_thumbnail') && has_post_thumbnail($post->ID)) {
$thumbnail_id = get_post_thumbnail_id( $post->ID );
$size = apply_filters( 'wp_rss_image_size', 'medium', $post->ID );
if(!empty($thumbnail_id))
$img = wp_get_attachment_image_src( $thumbnail_id, $size );
error_log( "SW: IMG: " . print_r( $img, true ) );
} else {
$attachments = get_children( array(
'post_parent' => $post->ID,
'post_type' => 'attachment',
'post_mime_type' => 'image',
'orderby' => 'menu_order',
'order' => 'ASC',
'numberposts' => 1) );
if($attachments == true) {
foreach($attachments as $id => $attachment) :
$img = wp_get_attachment_image_src($id, $size);
endforeach;
}
}
if (isset($img)) return $img[0];
}
function wp_rss_img_menu() {
add_options_page('WP RSS Images', 'WP RSS Images', 'administrator', 'wp-rss-image', 'wp_rss_image_setting');
}
function wp_rss_image_setting() {
$options = wp_rss_img_get_options();
if(isset($_POST['Submit'])){
$newoptions = array();
$newoptions['media'] = isset ($_POST['media'])? $_POST['media']: 0;
$newoptions['enclosure'] = isset ($_POST['enclosure'])? $_POST['enclosure']: 0;
$newoptions['rss'] = isset ($_POST['rss'])? $_POST['rss']: 0;
$newoptions['rss2'] = isset ($_POST['rss2'])? $_POST['rss2']: 0;
$newoptions['size'] = isset ($_POST['size'])? $_POST['size']: $options['size'];
$newoptions['version'] = $options['version'];
if ( $options != $newoptions ) {
$options = $newoptions;
update_option('wp_rss_img_op', $options);
?>