$author = esc_html(get_the_author()); // Episode content (with iframes removed) $content = get_the_content_feed('rss2'); $content = preg_replace('/<\\/?iframe(.|\\s)*?>/', '', $content); // iTunes summary does not allow any HTML and must be shorter than 4000 characters $itunes_summary = strip_tags(get_the_content()); $itunes_summary = str_replace(array('&', '>', '<', '\'', '"', '`'), array(__('and', 'ss-podcasting'), '', '', '', '', ''), $itunes_summary); $itunes_summary = mb_substr($itunes_summary, 0, 3949); // iTunes short description does not allow any HTML and must be shorter than 4000 characters $itunes_excerpt = strip_tags(get_the_excerpt()); $itunes_excerpt = str_replace(array('&', '>', '<', '\'', '"', '`', '[andhellip;]', '[…]'), array('and', '', '', '', '', '', '', ''), $itunes_excerpt); $itunes_excerpt = mb_substr($itunes_excerpt, 0, 224); ?> <item> <title><?php esc_html(the_title_rss()); ?> </title> <link><?php esc_url(the_permalink_rss()); ?> </link> <pubDate><?php echo esc_html(mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false)); ?> </pubDate> <dc:creator><?php echo $author; ?> </dc:creator> <guid isPermaLink="false"><?php
xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" <?php do_action('rss2_ns'); ?> > <channel> <title><?php bloginfo_rss('name'); ?></title> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss("description") ?></description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator> <language><?php echo get_option('rss_language'); ?></language> <?php do_action('rss2_head'); ?> <?php while( have_posts()) : the_post(); ?> <item> <title><?php the_title_rss() ?></title> <link><?php permalink_single_rss() ?></link> <comments><?php comments_link(); ?></comments> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> <dc:creator><?php the_author() ?></dc:creator> <?php the_category_rss() ?> <guid isPermaLink="false"><?php the_guid(); ?></guid> <?php if (get_option('rss_use_excerpt')) : ?> <description><![CDATA[<?php the_excerpt_rss() ?>]]></description> <?php else : ?> <description><![CDATA[<?php the_excerpt_rss() ?>]]></description> <?php if ( strlen( $post->post_content ) > 0 ) : ?> <content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded> <?php else : ?> <content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="<?php echo get_option('rss_language'); ?>" > <title><?php bloginfo_rss('name') ?></title> <link rel="alternate" type="text/html" href="<?php bloginfo_rss('home') ?>" /> <tagline><?php bloginfo_rss("description") ?></tagline> <modified><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT')); ?></modified> <copyright>Copyright <?php echo mysql2date('Y', get_lastpostdate('blog')); ?></copyright> <generator url="http://wordpress.org/" version="<?php bloginfo_rss('version'); ?>">WordPress</generator> <?php $items_count = 0; if ($posts) { foreach ($posts as $post) { start_wp(); ?> <entry> <author> <name><?php the_author() ?></name> </author> <title type="text/html" mode="escaped"><![CDATA[<?php the_title_rss() ?>]]></title> <link rel="alternate" type="text/html" href="<?php permalink_single_rss() ?>" /> <id><?php the_guid(); ?></id> <modified><?php the_time('Y-m-d\TH:i:s\Z'); ?></modified> <issued> <?php the_time('Y-m-d\TH:i:s\Z'); ?></issued> <?php the_category_rss('rdf') ?> <summary type="<?php bloginfo('html_type'); ?>" mode="escaped"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> <?php if (!get_settings('rss_use_excerpt')) : ?> <?php if ( strlen( $post->post_content ) ) : ?> <content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content> <?php else : ?> <content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></content> <?php endif; ?> <?php else : ?> <content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_excerpt_rss() ?>]]></content> <?php endif; ?>
function get_entry($postID, $post_type = 'post') { log_app('function',"get_entry($postID, '$post_type')"); ob_start(); global $posts, $post, $wp_query, $wp, $wpdb, $blog_id, $post_cache; switch($post_type) { case 'post': $varname = 'p'; break; case 'attachment': $varname = 'attachment_id'; break; } query_posts($varname . '=' . $postID); if ( have_posts() ) : while ( have_posts() ) : the_post(); $post = $GLOBALS['post']; ?> <?php log_app('$post',print_r($GLOBALS['post'],true)); ?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://purl.org/atom/app#" xml:lang="<?php echo get_option('rss_language'); ?>"> <id><?php the_guid($post->ID); ?></id> <title type="html"><![CDATA[<?php the_title_rss() ?>]]></title> <updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated> <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> <app:control> <app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft> </app:control> <author> <name><?php the_author()?></name> <email><?php the_author_email()?></email> <uri><?php the_author_url()?></uri> </author> <?php if($GLOBALS['post']->post_type == 'attachment') { ?> <link rel="edit" href="<?php $this->the_entry_url() ?>" /> <link rel="edit-media" href="<?php $this->the_media_url() ?>" /> <content type="<?php echo $GLOBALS['post']->post_mime_type ?>" src="<?php the_guid(); ?>"/> <?php } else { ?> <link href="<?php permalink_single_rss() ?>" /> <link rel="edit" href="<?php $this->the_entry_url() ?>" /> <?php } ?> <?php foreach(get_the_category() as $category) { ?> <category scheme="<?php bloginfo_rss('home') ?>" term="<?php echo $category->cat_name?>" /> <summary type="html"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> <?php } if ( strlen( $GLOBALS['post']->post_content ) ) : ?> <content type="html"><![CDATA[<?php echo get_the_content('', 0, '') ?>]]></content> <?php endif; ?> </entry> <?php $entry = ob_get_contents(); break; endwhile; else: $this->auth_required(__("Access Denied.")); endif; ob_end_clean(); log_app('get_entry returning:',$entry); return $entry; }
function export_wp() { global $wpdb, $posts, $post; $filename = 'wordpress.' . date('Y-m-d') . '.xml'; header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename=$filename"); header('Content-type: text/xml; charset=' . get_option('blog_charset'), true); $where = ''; if ( isset( $_GET['author'] ) && $_GET['author'] != 'all' ) { $author_id = (int) $_GET['author']; $where = " WHERE post_author = '$author_id' "; } $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC"); $categories = (array) $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories LEFT JOIN $wpdb->post2cat ON (category_id = cat_id) LEFT JOIN $wpdb->posts ON (post_id <=> id) $where GROUP BY cat_id"); function wxr_missing_parents($categories) { if ( !is_array($categories) || empty($categories) ) return array(); foreach ( $categories as $category ) $parents[$category->cat_ID] = $category->category_parent; $parents = array_unique(array_diff($parents, array_keys($parents))); if ( $zero = array_search('0', $parents) ) unset($parents[$zero]); return $parents; } while ( $parents = wxr_missing_parents($categories) ) { $found_parents = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories WHERE cat_ID IN (" . join(', ', $parents) . ")"); if ( is_array($found_parents) && count($found_parents) ) $categories = array_merge($categories, $found_parents); else break; } // Put them in order to be inserted with no child going before its parent $pass = 0; $passes = 1000 + count($categories); while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) { if ( $cat->category_parent == 0 || isset($cats[$cat->category_parent]) ) { $cats[$cat->cat_ID] = $cat; } else { $categories[] = $cat; } } unset($categories); function wxr_cdata($str) { if ( seems_utf8($str) == false ) $str = utf8_encode($str); // $str = ent2ncr(wp_specialchars($str)); $str = "<![CDATA[$str" . ( ( substr($str, -1) == ']' ) ? ' ' : '') . "]]>"; return $str; } function wxr_cat_name($c) { if ( empty($c->cat_name) ) return; echo '<wp:cat_name>' . wxr_cdata($c->cat_name) . '</wp:cat_name>'; } function wxr_category_description($c) { if ( empty($c->category_description) ) return; echo '<wp:category_description>' . wxr_cdata($c->category_description) . '</wp:category_description>'; } print '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; ?> <!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. It contains information about your blog's posts, comments, and categories. You may use this file to transfer that content from one site to another. This file is not intended to serve as a complete backup of your blog. To import this information into a WordPress blog follow these steps: 1. Log into that blog as an administrator. 2. Go to Manage > Import in the blog's admin. 3. Choose "WordPress" from the list of importers. 4. Upload this file using the form provided on that page. 5. You will first be asked to map the authors in this export file to users on the blog. For each author, you may choose to map an existing user on the blog or to create a new user. 6. WordPress will then import each of the posts, comments, and categories contained in this file onto your blog. --> <!-- generator="wordpress/<?php bloginfo_rss('version') ?>" created="<?php echo date('Y-m-d H:m'); ?>"--> <rss version="2.0" 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:wp="http://wordpress.org/export/1.0/" > <channel> <title><?php bloginfo_rss('name'); ?></title> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss("description") ?></description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator> <language><?php echo get_option('rss_language'); ?></language> <?php if ( $cats ) : foreach ( $cats as $c ) : ?> <wp:category><wp:category_nicename><?php echo $c->category_nicename; ?></wp:category_nicename><wp:category_parent><?php echo $c->category_parent ? $cats[$c->category_parent]->cat_name : ''; ?></wp:category_parent><wp:posts_private><?php echo $c->posts_private ? '1' : '0'; ?></wp:posts_private><wp:links_private><?php echo $c->links_private ? '1' : '0'; ?></wp:links_private><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category> <?php endforeach; endif; ?> <?php do_action('rss2_head'); ?> <?php if ($posts) { foreach ($posts as $post) { start_wp(); ?> <item> <title><?php the_title_rss() ?></title> <link><?php permalink_single_rss() ?></link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate> <dc:creator><?php the_author() ?></dc:creator> <?php the_category_rss() ?> <guid isPermaLink="false"><?php the_guid(); ?></guid> <description></description> <content:encoded><![CDATA[<?php echo $post->post_content ?>]]></content:encoded> <wp:post_id><?php echo $post->ID; ?></wp:post_id> <wp:post_date><?php echo $post->post_date; ?></wp:post_date> <wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt> <wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status> <wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status> <wp:post_name><?php echo $post->post_name; ?></wp:post_name> <wp:status><?php echo $post->post_status; ?></wp:status> <wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent> <wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order> <wp:post_type><?php echo $post->post_type; ?></wp:post_type> <?php $postmeta = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE post_id = $post->ID"); if ( $postmeta ) { ?> <?php foreach( $postmeta as $meta ) { ?> <wp:postmeta> <wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key> <wp:meta_value><?Php echo $meta->meta_value; ?></wp:meta_value> </wp:postmeta> <?php } ?> <?php } ?> <?php $comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID"); if ( $comments ) { foreach ( $comments as $c ) { ?> <wp:comment> <wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id> <wp:comment_author><?php echo $c->comment_author; ?></wp:comment_author> <wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email> <wp:comment_author_url><?php echo $c->comment_author_url; ?></wp:comment_author_url> <wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP> <wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date> <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt> <wp:comment_content><?php echo $c->comment_content; ?></wp:comment_content> <wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved> <wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type> <wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent> </wp:comment> <?php } } ?> </item> <?php } } ?> </channel> </rss> <?php die(); }
/** * Generate the feed * * @since 3.3 */ function wprss_addfeed_do_feed($in) { // Prepare the post query /* $wprss_custom_feed_query = apply_filters( 'wprss_custom_feed_query', array( 'post_type' => 'wprss_feed_item', 'post_status' => 'publish', 'cache_results' => false, // disable caching ) );*/ $wprss_custom_feed_query = wprss_get_feed_items_query(apply_filters('wprss_custom_feed_query', array('get-args' => TRUE, 'no-paged' => TRUE, 'feed_limit' => 0))); // Suppress caching $wprss_custom_feed_query['cache_results'] = FALSE; // Get options $options = get_option('wprss_settings_general'); if ($options !== FALSE) { // If options exist, get the limit $limit = $options['custom_feed_limit']; if ($limit !== FALSE) { // if limit exists, set the query limit $wprss_custom_feed_query['posts_per_page'] = $limit; } } // Submit the query to get latest feed items query_posts($wprss_custom_feed_query); $custom_feed_title = wprss_get_general_setting('custom_feed_title'); $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'; header("{$protocol} 200 OK"); // Send content header and start ATOM output header('Content-Type: application/rss+xml'); // Disabling caching header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1. header('Pragma: no-cache'); // HTTP 1.0. header('Expires: 0'); // Proxies. echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?>'; ?> <rss version="2.0" 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/" xmlns:media="http://search.yahoo.com/mrss/" > <channel> <title><?php echo $custom_feed_title; ?> </title> <description></description> <link><?php echo get_site_url(); ?> </link> <atom:link href="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?> " rel="self" type="application/rss+xml" /> <?php // Start the Loop while (have_posts()) { the_post(); $source = get_post_meta(get_the_ID(), 'wprss_feed_id', TRUE); $permalink = get_post_meta(get_the_ID(), 'wprss_item_permalink', true); ?> <item> <title><![CDATA[<?php the_title_rss(); ?> ]]></title> <link><?php echo $permalink; ?> </link> <guid isPermaLink="true"><?php echo $permalink; ?> </guid> <pubDate><?php echo get_post_time(DATE_RSS); ?> </pubDate> <description><![CDATA[<?php the_content(); ?> ]]></description> <content:encoded><![CDATA[<?php the_content(); ?> ]]></content:encoded> <source url="<?php echo get_post_meta($source, 'wprss_url', TRUE); ?> "><?php echo get_the_title($source); ?> </source> <?php do_action('wprss_custom_feed_entry', get_the_ID()); ?> </item> <?php } // END OF LOOP ?> </channel> </rss> <?php }
function export_wp() { global $wpdb, $post_ids, $post; do_action('export_wp'); $filename = 'wordpress.' . date('Y-m-d') . '.xml'; header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename={$filename}"); header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); $where = ''; if (isset($_GET['author']) && $_GET['author'] != 'all') { $author_id = (int) $_GET['author']; $where = " WHERE post_author = '{$author_id}' "; } // grab a snapshot of post IDs, just in case it changes during the export $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC"); $categories = (array) get_categories('get=all'); $tags = (array) get_tags('get=all'); function wxr_missing_parents($categories) { if (!is_array($categories) || empty($categories)) { return array(); } foreach ($categories as $category) { $parents[$category->term_id] = $category->parent; } $parents = array_unique(array_diff($parents, array_keys($parents))); if ($zero = array_search('0', $parents)) { unset($parents[$zero]); } return $parents; } while ($parents = wxr_missing_parents($categories)) { $found_parents = get_categories("include=" . join(', ', $parents)); if (is_array($found_parents) && count($found_parents)) { $categories = array_merge($categories, $found_parents); } else { break; } } // Put them in order to be inserted with no child going before its parent $pass = 0; $passes = 1000 + count($categories); while (($cat = array_shift($categories)) && ++$pass < $passes) { if ($cat->parent == 0 || isset($cats[$cat->parent])) { $cats[$cat->term_id] = $cat; } else { $categories[] = $cat; } } unset($categories); function wxr_cdata($str) { if (seems_utf8($str) == false) { $str = utf8_encode($str); } // $str = ent2ncr(wp_specialchars($str)); $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>"; return $str; } function wxr_cat_name($c) { if (empty($c->name)) { return; } echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>'; } function wxr_category_description($c) { if (empty($c->description)) { return; } echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>'; } function wxr_tag_name($t) { if (empty($t->name)) { return; } echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>'; } function wxr_tag_description($t) { if (empty($t->description)) { return; } echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>'; } function wxr_post_taxonomy() { $categories = get_the_category(); $tags = get_the_tags(); $cat_names = array(); $tag_names = array(); $the_list = ''; $filter = 'rss'; if (!empty($categories)) { foreach ((array) $categories as $category) { $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter); $the_list .= "\n\t\t<category><![CDATA[{$cat_name}]]></category>\n"; } } if (!empty($tags)) { foreach ((array) $tags as $tag) { $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter); $the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[{$tag_name}]]></category>\n"; } } echo $the_list; } echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; ?> <!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. --> <!-- It contains information about your blog's posts, comments, and categories. --> <!-- You may use this file to transfer that content from one site to another. --> <!-- This file is not intended to serve as a complete backup of your blog. --> <!-- To import this information into a WordPress blog follow these steps. --> <!-- 1. Log into that blog as an administrator. --> <!-- 2. Go to Manage: Import in the blog's admin panels. --> <!-- 3. Choose "WordPress" from the list. --> <!-- 4. Upload this file using the form provided on that page. --> <!-- 5. You will first be asked to map the authors in this export file to users --> <!-- on the blog. For each author, you may choose to map to an --> <!-- existing user on the blog or to create a new user --> <!-- 6. WordPress will then import each of the posts, comments, and categories --> <!-- contained in this file into your blog --> <!-- generator="wordpress/<?php bloginfo_rss('version'); ?> " created="<?php echo date('Y-m-d H:i'); ?> "--> <rss version="2.0" 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:wp="http://wordpress.org/export/1.0/" > <channel> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?> </generator> <language><?php echo get_option('rss_language'); ?> </language> <?php if ($cats) { foreach ($cats as $c) { ?> <wp:category><wp:category_nicename><?php echo $c->slug; ?> </wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->name : ''; ?> </wp:category_parent><?php wxr_cat_name($c); wxr_category_description($c); ?> </wp:category> <?php } } if ($tags) { foreach ($tags as $t) { ?> <wp:tag><wp:tag_slug><?php echo $t->slug; ?> </wp:tag_slug><?php wxr_tag_name($t); wxr_tag_description($t); ?> </wp:tag> <?php } } ?> <?php do_action('rss2_head'); ?> <?php if ($post_ids) { global $wp_query; $wp_query->in_the_loop = true; // Fake being in the loop. // fetch 20 posts at a time rather than loading the entire table into memory while ($next_posts = array_splice($post_ids, 0, 20)) { $where = "WHERE ID IN (" . join(',', $next_posts) . ")"; $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC"); foreach ($posts as $post) { setup_postdata($post); ?> <item> <title><?php the_title_rss(); ?> </title> <link><?php the_permalink_rss(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php wxr_post_taxonomy(); ?> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <description></description> <content:encoded><![CDATA[<?php echo $post->post_content; ?> ]]></content:encoded> <wp:post_id><?php echo $post->ID; ?> </wp:post_id> <wp:post_date><?php echo $post->post_date; ?> </wp:post_date> <wp:post_date_gmt><?php echo $post->post_date_gmt; ?> </wp:post_date_gmt> <wp:comment_status><?php echo $post->comment_status; ?> </wp:comment_status> <wp:ping_status><?php echo $post->ping_status; ?> </wp:ping_status> <wp:post_name><?php echo $post->post_name; ?> </wp:post_name> <wp:status><?php echo $post->post_status; ?> </wp:status> <wp:post_parent><?php echo $post->post_parent; ?> </wp:post_parent> <wp:menu_order><?php echo $post->menu_order; ?> </wp:menu_order> <wp:post_type><?php echo $post->post_type; ?> </wp:post_type> <?php $postmeta = $wpdb->get_results("SELECT * FROM {$wpdb->postmeta} WHERE post_id = {$post->ID}"); if ($postmeta) { foreach ($postmeta as $meta) { ?> <wp:postmeta> <wp:meta_key><?php echo $meta->meta_key; ?> </wp:meta_key> <wp:meta_value><?php echo $meta->meta_value; ?> </wp:meta_value> </wp:postmeta> <?php } } $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}"); if ($comments) { foreach ($comments as $c) { ?> <wp:comment> <wp:comment_id><?php echo $c->comment_ID; ?> </wp:comment_id> <wp:comment_author><?php echo wxr_cdata($c->comment_author); ?> </wp:comment_author> <wp:comment_author_email><?php echo $c->comment_author_email; ?> </wp:comment_author_email> <wp:comment_author_url><?php echo $c->comment_author_url; ?> </wp:comment_author_url> <wp:comment_author_IP><?php echo $c->comment_author_IP; ?> </wp:comment_author_IP> <wp:comment_date><?php echo $c->comment_date; ?> </wp:comment_date> <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?> </wp:comment_date_gmt> <wp:comment_content><?php echo $c->comment_content; ?> </wp:comment_content> <wp:comment_approved><?php echo $c->comment_approved; ?> </wp:comment_approved> <wp:comment_type><?php echo $c->comment_type; ?> </wp:comment_type> <wp:comment_parent><?php echo $c->comment_parent; ?> </wp:comment_parent> </wp:comment> <?php } } ?> </item> <?php } } } ?> </channel> </rss> <?php die; }
function export_wp($cats) { global $wpdb, $posts, $post; $filename = 'wordpress.' . date('Y-m-d') . '.xml'; header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header("Content-Disposition: attachment; filename={$filename}"); header('Content-type: text/xml; charset=' . get_settings('blog_charset'), true); $posts = query_posts(''); $cats = implode(',', $cats); $postswithcats = $wpdb->get_col("SELECT DISTINCT(post_id) FROM " . $wpdb->post2cat . " WHERE category_id IN ({$cats})"); $postcats = implode(',', $postswithcats); $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE ID IN ({$postcats}) ORDER BY post_date_gmt ASC"); ?> <!-- generator="wordpress/<?php bloginfo_rss('version'); ?> " created="<?php echo date('Y-m-d H:m'); ?> "--> <rss version="2.0" 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:wp="http://wordpress.org/export/1.0/" > <channel> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?> </generator> <language><?php echo get_option('rss_language'); ?> </language> <?php do_action('rss2_head'); if ($posts) { foreach ($posts as $post) { start_wp(); ?> <item> <title><?php the_title_rss(); ?> </title> <link><?php permalink_single_rss(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php the_category_rss(); ?> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <description></description> <wp:excerpt><![CDATA[<?php echo $post->post_excerpt; ?> ]]></wp:excerpt> <content:encoded><![CDATA[<?php echo $post->post_content; ?> ]]></content:encoded> <wp:post_date><?php echo $post->post_date; ?> </wp:post_date> <wp:post_date_gmt><?php echo $post->post_date_gmt; ?> </wp:post_date_gmt> <wp:comment_status><?php echo $post->comment_status; ?> </wp:comment_status> <wp:ping_status><?php echo $post->ping_status; ?> </wp:ping_status> <wp:post_name><?php echo $post->post_name; ?> </wp:post_name> <wp:status><?php echo $post->post_status; ?> </wp:status> <wp:post_parent><?php echo $post->post_parent; ?> </wp:post_parent> <wp:post_type><?php echo $post->post_type; ?> </wp:post_type> <?php $postmeta = $wpdb->get_results("SELECT * FROM {$wpdb->postmeta} WHERE post_id = {$post->ID}"); if ($postmeta) { foreach ($postmeta as $meta) { ?> <wp:postmeta> <wp:meta_key><?php echo $meta->meta_key; ?> </wp:meta_key> <wp:meta_value><?php echo $meta->meta_value; ?> </wp:meta_value> </wp:postmeta> <?php } } $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}"); if ($comments) { foreach ($comments as $c) { ?> <wp:comment> <wp:comment_author><?php echo htmlent2numeric($c->comment_author); ?> </wp:comment_author> <wp:comment_author_email><?php echo $c->comment_author_email; ?> </wp:comment_author_email> <wp:comment_author_url><?php echo $c->comment_author_url; ?> </wp:comment_author_url> <wp:comment_author_IP><?php echo $c->comment_author_IP; ?> </wp:comment_author_IP> <wp:comment_date><?php echo $c->comment_date; ?> </wp:comment_date> <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?> </wp:comment_date_gmt> <wp:comment_content><?php echo htmlent2numeric($c->comment_content); ?> </wp:comment_content> <wp:comment_approved><?php echo $c->comment_approved; ?> </wp:comment_approved> <wp:comment_type><?php echo $c->comment_type; ?> </wp:comment_type> <wp:comment_parent><?php echo $c->comment_parent; ?> </wp:comment_parent> </wp:comment> <?php } } ?> </item> <?php } } ?> </channel> </rss> <?php exit; wp_redirect('admin.php'); }
header('Content-type: text/xml;charset=' . get_settings('blog_charset'), true); echo '<?xml version="1.0" encoding="'.get_settings('blog_charset').'"?'.'>'; ?> <!-- generator="wordpress/<?php echo $wp_version ?>" --> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"> <channel> <?php $i = 0; if (have_posts()) : while (have_posts()) : the_post(); if ($i < 1) { $i++; ?> <title><?php if (is_single() || is_page()) { echo "Comments on: "; the_title_rss(); } else { bloginfo_rss("name"); echo " Comments"; } ?></title> <link><?php (is_single()) ? permalink_single_rss() : bloginfo_rss("url") ?></link> <description><?php bloginfo_rss("description") ?></description> <pubDate><?php echo gmdate('r'); ?></pubDate> <generator>http://wordpress.org/?v=<?php echo $wp_version ?></generator> <?php if (is_single() || is_page()) { $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, comment_author_url, comment_date, comment_content, comment_post_ID, $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '$id' AND $wpdb->comments.comment_approved = '1' AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'page') AND post_date < '".date("Y-m-d H:i:59")."' ORDER BY comment_date LIMIT " . get_settings('posts_per_rss') ); } else { // if no post id passed in, we'll just ue the last 10 comments.
function popular_rss() { header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); preg_match('{(\\d{1,2})/(\\d{1,2})/popular.xml}', $_SERVER['REQUEST_URI'], $match); $max_posts = (int) $match[1]; if ($max_posts < 1 || $max_posts > 25) { wp_die('Max popular posts should be between 1 and 25.'); } $days = (int) $match[2]; if ($days < 1 || $days > 90) { wp_die('The no. of days should be between 1 and 90.'); } if (function_exists('wpcom_vip_load_helper_stats')) { wpcom_vip_load_helper_stats(); } $feed_max_posts = $max_posts + 20; $popular_data = wpcom_vip_top_posts_array($days, $feed_max_posts); //print_r ($popular_data); foreach ($popular_data as $p) { if ($p["post_id"] != 0) { $popular_posts[] = $p["post_id"]; } } $the_query = new WP_Query(array('post__in' => $popular_posts, 'orderby' => 'post__in', 'posts_per_page' => $max_posts, 'ignore_sticky_posts' => 1)); echo '<?xml version="1.0"?>'; ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title><?php bloginfo_rss('name'); wp_title_rss(); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <image> <url><?php echo home_url(); ?> /wp-content/themes/vip/jptechcrunch/images/site-logo-small.png</url> <title><?php bloginfo_rss('name'); wp_title_rss(); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> </image> <language><?php echo get_option('rss_language'); ?> </language> <copyright>Copyright <?php echo date('Y'); ?> TechCrunch The contents of this feed are available for non-commercial use only.</copyright> <?php global $post; while ($the_query->have_posts()) { $the_query->the_post(); ?> <item> <title><![CDATA[<?php the_title_rss(); ?> ]]></title> <link><![CDATA[<?php the_permalink_rss(); ?> ]]></link> <guid isPermaLink="true"><![CDATA[<?php the_permalink_rss(); ?> ]]></guid> <description><![CDATA[<?php if (is_single()) { if (get_post_meta($post->ID, '_tc_post_type', true) != 'simplepost' && has_post_thumbnail()) { the_post_thumbnail('full'); } the_content(); } else { echo strip_tags(get_the_excerpt()); } ?> ]]></description> <?php if ($thumb = tc_get_post_image($post, 'full')) { ?> <enclosure url="<?php echo esc_url($thumb); ?> " length="<?php echo strlen($thumb); ?> " type="<?php echo tc_get_image_type($thumb); ?> "></enclosure> <?php } else { ?> <enclosure url="" length="-1" ></enclosure> <?php } ?> <?php $byline = get_post_meta(get_the_ID(), 'byline', true); ?> <?php $co_authors = get_coauthors(); $author = get_the_author(); if (count($co_authors) > 0) { $co_author = $co_authors[0]; if ($co_author->last_name) { $author = $co_author->first_name . ' ' . $co_author->last_name; } else { $author = $co_author->display_name; } } ?> <dc:creator><![CDATA[<?php echo $byline ? esc_html($byline) : esc_html($author); ?> ]]></dc:creator> <pubDate><?php $gmt_timestamp = get_post_time('U', true); echo date('D, d M Y H:i:s O', intval($gmt_timestamp)); ?> </pubDate> <dc:identifier>0|19962129</dc:identifier> <?php foreach (wp_get_post_categories($post->ID) as $categoryId) { $category = get_category($categoryId); ?> <category domain="category:<?php echo esc_html($category->slug); ?> "><![CDATA[<?php echo esc_html($category->name); ?> ]]></category> <?php } ?> <?php foreach (wp_get_post_tags($post->ID) as $tag) { ?> <category domain="tag:<?php echo esc_html($tag->slug); ?> "><![CDATA[<?php echo esc_html($tag->name); ?> ]]></category> <?php } ?> <category domain="blogger:<?php echo esc_html(get_the_author()); ?> "><![CDATA[<?php echo esc_html(get_the_author()); ?> ]]></category> </item> <?php } ?> </channel> </rss> <?php }
function export_wp() { global $wpdb, $post_ids, $post; do_action('export_wp'); $filename = 'wordpress.' . date('Y-m-d') . '.xml'; // ограничения по кол-ву записей $limit = ''; if (isset($_GET['limit_start']) and $_GET['limit_start'] and isset($_GET['limit_count']) and $_GET['limit_count']) { $limit_start = (int) $_GET['limit_start']; $limit_count = (int) $_GET['limit_count']; if ($limit_start and $limit_count) { $limit = ' LIMIT ' . $limit_start . ', ' . $limit_count; $filename = 'wp-' . $limit_start . '-' . ($limit_count + $limit_start) . '.xml'; } } header('Content-Description: File Transfer'); header("Content-Disposition: attachment; filename={$filename}"); header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); $where = ''; if (isset($_GET['author']) && $_GET['author'] != 'all') { $author_id = (int) $_GET['author']; $where = " WHERE post_author = '{$author_id}' and post_status != 'inherit'"; } else { $where = " WHERE post_status != 'inherit'"; } // grab a snapshot of post IDs, just in case it changes during the export $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC{$limit}"); $categories = (array) get_categories('get=all'); $tags = (array) get_tags('get=all'); function wxr_missing_parents($categories) { if (!is_array($categories) || empty($categories)) { return array(); } foreach ($categories as $category) { $parents[$category->term_id] = $category->parent; } $parents = array_unique(array_diff($parents, array_keys($parents))); if ($zero = array_search('0', $parents)) { unset($parents[$zero]); } return $parents; } while ($parents = wxr_missing_parents($categories)) { $found_parents = get_categories("include=" . join(', ', $parents)); if (is_array($found_parents) && count($found_parents)) { $categories = array_merge($categories, $found_parents); } else { break; } } // Put them in order to be inserted with no child going before its parent $pass = 0; $passes = 1000 + count($categories); while (($cat = array_shift($categories)) && ++$pass < $passes) { if ($cat->parent == 0 || isset($cats[$cat->parent])) { $cats[$cat->term_id] = $cat; } else { $categories[] = $cat; } } unset($categories); function wxr_cdata($str) { if (seems_utf8($str) == false) { $str = utf8_encode($str); } // $str = ent2ncr(wp_specialchars($str)); $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>"; return $str; } function wxr_cat_name($c) { if (empty($c->name)) { return; } echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>'; } function wxr_category_description($c) { if (empty($c->description)) { return; } echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>'; } function wxr_tag_name($t) { if (empty($t->name)) { return; } echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>'; } function wxr_tag_description($t) { if (empty($t->description)) { return; } echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>'; } function wxr_post_taxonomy() { $categories = get_the_category(); $tags = get_the_tags(); $cat_names = array(); $tag_names = array(); $the_list = array(); $filter = 'rss'; if (!empty($categories)) { foreach ((array) $categories as $category) { $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter); // $the_list .= "\n\t\t<category><![CDATA[$cat_name]]></category>\n"; $the_list['category'][$category->term_id] = $cat_name; } } if (!empty($tags)) { foreach ((array) $tags as $tag) { $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter); // $the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[$tag_name]]></category>\n"; $the_list['tag'][$tag->term_id] = $tag->name; } } echo '<category><![CDATA[' . serialize($the_list) . ']]></category>'; } echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; ?> <rss version="2.0" 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:wp="http://wordpress.org/export/1.0/" > <channel> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </pubDate> <language><?php echo get_option('rss_language'); ?> </language> <?php if ($cats) { ?> <categorys><![CDATA[<?php echo serialize($cats); ?> ]]></categorys><?php } ?> <?php if ($tags) { ?> <tags><![CDATA[<?php echo serialize($tags); ?> ]]></tags><?php } ?> <?php do_action('rss2_head'); ?> <?php if ($post_ids) { global $wp_query; $wp_query->in_the_loop = true; // Fake being in the loop. // fetch 20 posts at a time rather than loading the entire table into memory while ($next_posts = array_splice($post_ids, 0, 20)) { $where = "WHERE ID IN (" . join(',', $next_posts) . ") and post_status != 'inherit'"; $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC"); foreach ($posts as $post) { setup_postdata($post); ?> <item> <title><?php the_title_rss(); ?> </title> <link><?php the_permalink_rss(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php wxr_post_taxonomy(); ?> <content><![CDATA[<?php echo $post->post_content; ?> ]]></content> <wp:post_id><?php echo $post->ID; ?> </wp:post_id> <wp:post_date><?php echo $post->post_date; ?> </wp:post_date> <wp:post_date_gmt><?php echo $post->post_date_gmt; ?> </wp:post_date_gmt> <wp:comment_status><?php echo $post->comment_status; ?> </wp:comment_status> <wp:post_name><?php echo $post->post_name; ?> </wp:post_name> <wp:status><?php echo $post->post_status; ?> </wp:status> <wp:post_type><?php echo $post->post_type; ?> </wp:post_type> <?php $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}"); if ($comments) { ?> <comments><![CDATA[<?php echo serialize($comments); ?> ]]></comments> <?php } ?> </item> <?php } } } ?> </channel> </rss> <?php die; }
<subtitle type="text"><?php bloginfo_rss("description") ?></subtitle> <updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT')); ?></updated> <generator uri="http://wordpress.org/" version="<?php bloginfo_rss('version'); ?>">WordPress</generator> <link rel="alternate" type="text/html" href="<?php bloginfo_rss('home') ?>" /> <id><?php bloginfo('atom_url'); ?></id> <link rel="self" type="application/atom+xml" href="<?php bloginfo('atom_url'); ?>" /> <?php do_action('atom_head'); ?> <?php while (have_posts()) : the_post(); ?> <entry> <author> <name><?php the_author() ?></name> <uri><?php the_author_url()?></uri> </author> <title type="<?php html_type_rss(); ?>"><![CDATA[<?php the_title_rss() ?>]]></title> <link rel="alternate" type="text/html" href="<?php permalink_single_rss() ?>" /> <id><?php the_guid(); ?></id> <updated><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></updated> <published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published> <?php the_category_rss('atom') ?> <summary type="<?php html_type_rss(); ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary> <?php if ( !get_option('rss_use_excerpt') ) : ?> <content type="<?php html_type_rss(); ?>" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content> <?php endif; ?> <?php atom_enclosure(); ?> <?php do_action('atom_entry'); ?> </entry> <?php endwhile ; ?> </feed>
comment_date, comment_content, comment_post_ID,' . wp_table('posts') . '.ID, ' . wp_table('posts') . '.post_title,' . wp_table('posts') . '.post_password', false, $_joinCriteria); // this line is WordPress' motor, do not delete it. if ($commentObjects) { foreach ($commentObjects as $commentObject) { $GLOBALS['comment'] = $commentObject->exportWpObject(); ?> <item rdf:about="<?php permalink_comments_rss(); ?> "> <title><?php comment_type(); ?> on: <?php the_title_rss(true, $GLOBALS['comment']->post_title); ?> by: <?php comment_author_rss(); ?> </title> <link><?php comment_link_rss(); ?> </link> <pubDate><?php comment_time('r'); ?> </pubDate> <author><?php comment_author_rss();
function dsq_export_wp() { global $wpdb, $posts, $post, $wp_version; global $dsq_api; $filename = dsq_get_temp_dir() . 'disqus-wordpress.' . date('Y-m-d') . '.xml'; $fp = fopen($filename, 'w'); ob_start(); $where = ''; if (isset($_GET['author']) && $_GET['author'] != 'all') { $author_id = (int) $_GET['author']; $where = " WHERE post_author = '{$author_id}' "; } $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC"); function wxr_site_url() { global $current_site; // mu: the base url if (isset($current_site->domain)) { return 'http://' . $current_site->domain . $current_site->path; } else { return get_bloginfo_rss('url'); } } function wxr_cdata($str) { if (seems_utf8($str) == false) { $str = utf8_encode($str); } // $str = ent2ncr(wp_specialchars($str)); $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>"; return $str; } function wxr_cat_name($c) { if (empty($c->cat_name)) { return; } echo '<wp:cat_name>' . wxr_cdata($c->cat_name) . '</wp:cat_name>'; } function wxr_category_description($c) { if (empty($c->category_description)) { return; } echo '<wp:category_description>' . wxr_cdata($c->category_description) . '</wp:category_description>'; } print '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; ?> <!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. It contains information about your blog's posts, comments, and categories. You may use this file to transfer that content from one site to another. This file is not intended to serve as a complete backup of your blog. To import this information into a WordPress blog follow these steps: 1. Log into that blog as an administrator. 2. Go to Manage > Import in the blog's admin. 3. Choose "WordPress" from the list of importers. 4. Upload this file using the form provided on that page. 5. You will first be asked to map the authors in this export file to users on the blog. For each author, you may choose to map an existing user on the blog or to create a new user. 6. WordPress will then import each of the posts, comments, and categories contained in this file onto your blog. --> <!-- generator="wordpress/<?php bloginfo_rss('version'); ?> " created="<?php echo date('Y-m-d H:i'); ?> "--> <rss version="2.0" 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:wp="http://wordpress.org/export/<?php echo WXR_VERSION; ?> /" > <channel> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?> </generator> <language><?php echo get_option('rss_language'); ?> </language> <wp:wxr_version><?php echo WXR_VERSION; ?> </wp:wxr_version> <wp:base_site_url><?php echo wxr_site_url(); ?> </wp:base_site_url> <wp:base_blog_url><?php bloginfo_rss('url'); ?> </wp:base_blog_url> <?php $contents = ob_get_clean(); fwrite($fp, $contents); ?> <?php if ($cats) { foreach ($cats as $c) { ?> <?php ob_start(); ?> <wp:category><wp:category_nicename><?php echo $c->category_nicename; ?> </wp:category_nicename><wp:category_parent><?php echo $c->category_parent ? $cats[$c->category_parent]->cat_name : ''; ?> </wp:category_parent><wp:posts_private><?php echo $c->posts_private ? '1' : '0'; ?> </wp:posts_private><wp:links_private><?php echo $c->links_private ? '1' : '0'; ?> </wp:links_private><?php wxr_cat_name($c); wxr_category_description($c); ?> </wp:category> <?php $contents = ob_get_clean(); fwrite($fp, $contents); ?> <?php } } ?> <?php do_action('rss2_head'); ?> <?php if ($posts) { foreach ($posts as $post) { ob_start(); start_wp(); ?> <item> <title><?php the_title_rss(); ?> </title> <link><?php permalink_single_rss(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php the_category_rss(); ?> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <description></description> <content:encoded><![CDATA[<?php echo $post->post_content; ?> ]]></content:encoded> <wp:post_id><?php echo $post->ID; ?> </wp:post_id> <wp:post_date><?php echo $post->post_date; ?> </wp:post_date> <wp:post_date_gmt><?php echo $post->post_date_gmt; ?> </wp:post_date_gmt> <wp:comment_status><?php echo $post->comment_status; ?> </wp:comment_status> <wp:ping_status><?php echo $post->ping_status; ?> </wp:ping_status> <wp:post_name><?php echo $post->post_name; ?> </wp:post_name> <wp:status><?php echo $post->post_status; ?> </wp:status> <wp:post_parent><?php echo $post->post_parent; ?> </wp:post_parent> <wp:menu_order><?php echo $post->menu_order; ?> </wp:menu_order> <wp:post_type><?php echo $post->post_type; ?> </wp:post_type> <?php $postmeta = $wpdb->get_results("SELECT * FROM {$wpdb->postmeta} WHERE post_id = {$post->ID}"); if ($postmeta) { ?> <?php foreach ($postmeta as $meta) { ?> <wp:postmeta> <wp:meta_key><?php echo $meta->meta_key; ?> </wp:meta_key> <wp:meta_value><?php echo $meta->meta_value; ?> </wp:meta_value> </wp:postmeta> <?php } ?> <?php } ?> <?php $contents = ob_get_clean(); fwrite($fp, $contents); ?> <?php $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID} AND comment_agent NOT LIKE 'Disqus/%'"); ob_start(); if ($comments) { foreach ($comments as $c) { ?> <wp:comment> <wp:comment_id><?php echo $c->comment_ID; ?> </wp:comment_id> <wp:comment_author><?php echo $c->comment_author; ?> </wp:comment_author> <wp:comment_author_email><?php echo $c->comment_author_email; ?> </wp:comment_author_email> <wp:comment_author_url><?php echo $c->comment_author_url; ?> </wp:comment_author_url> <wp:comment_author_IP><?php echo $c->comment_author_IP; ?> </wp:comment_author_IP> <wp:comment_date><?php echo $c->comment_date; ?> </wp:comment_date> <wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?> </wp:comment_date_gmt> <wp:comment_content><?php echo $c->comment_content; ?> </wp:comment_content> <wp:comment_approved><?php echo $c->comment_approved; ?> </wp:comment_approved> <wp:comment_type><?php echo $c->comment_type; ?> </wp:comment_type> <wp:comment_parent><?php echo $c->comment_parent; ?> </wp:comment_parent> </wp:comment> <?php } } ?> </item> <?php $contents = ob_get_clean(); fwrite($fp, $contents); ?> <?php } } ?> <?php ob_start(); ?> </channel> </rss> <?php $contents = ob_get_clean(); fwrite($fp, $contents); $response = $dsq_api->import_wordpress_comments($filename); $import_id = $response; unlink($filename); if ($response < 0) { dsq_manage_dialog("There was an error exporting your comments. If your API key has changed, you may need to reinstall DISQUS (deactivate the plugin and then reactivate it). If you are still having issues, refer to the <a href='http://disqus.com/comments/wordpress'>WordPress help page</a>.", true); } else { update_option('disqus_last_import_id', $import_id); dsq_manage_dialog('Your comments have been queued for importing to DISQUS. You may check the advanced options tab for a status update.'); } }
/** * Return XML for full feed. * * @param array $feed_items Array of objects. Required attributes: ID (=post id), blog_id * @return string */ function get_feed_xml($feed_items) { global $post; $rss_language = Settings\get_site_option('language_slug'); if (empty($rss_language) && defined('WPLANG')) { $rss_language = substr(WPLANG, 0, 2); } ob_start(); echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>'; ?> <rss version="2.0" 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 do_action('rss2_ns'); ?> > <channel> <title><?php echo get_feed_title(); ?> </title> <atom:link href="<?php echo get_feed_url(); ?> " rel="self" type="application/rss+xml" /> <link><?php echo get_feed_url(); ?> </link> <description><?php echo get_feed_description(); ?> </description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), FALSE); ?> </lastBuildDate> <language><?php echo $rss_language; ?> </language> <sy:updatePeriod><?php echo apply_filters('rss_update_period', 'hourly'); ?> </sy:updatePeriod> <sy:updateFrequency><?php echo apply_filters('rss_update_frequency', '1'); ?> </sy:updateFrequency> <?php do_action('rss2_head'); foreach ($feed_items as $feed_item) { switch_to_blog($feed_item->blog_id); $post = get_post($feed_item->ID); setup_postdata($post); ?> <item> <title><?php the_title_rss(); ?> </title> <link><?php the_permalink_rss(); ?> </link> <comments><?php comments_link_feed(); ?> </comments> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', TRUE), FALSE); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php the_category_rss('rss2'); ?> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <?php if (get_option('rss_use_excerpt')) { ?> <description><![CDATA[<?php the_excerpt_rss(); ?> ]]></description> <?php } else { ?> <description><![CDATA[<?php the_excerpt_rss(); ?> ]]></description> <?php $content = \Inpsyde\MultisiteFeed\get_the_content_feed('rss2'); ?> <?php if (strlen($content) > 0) { ?> <content:encoded><![CDATA[<?php echo $content; ?> ]]></content:encoded> <?php } else { ?> <content:encoded><![CDATA[<?php the_excerpt_rss(); ?> ]]></content:encoded> <?php } ?> <?php } ?> <wfw:commentRss><?php echo esc_url(get_post_comments_feed_link(NULL, 'rss2')); ?> </wfw:commentRss> <slash:comments><?php echo get_comments_number(); ?> </slash:comments> <?php rss_enclosure(); do_action('rss2_item'); ?> </item> <?php restore_current_blog(); } ?> </channel> </rss> <?php $xml = ob_get_contents(); ob_end_clean(); return $xml; }
if (!empty($author_url)) { ?> <uri><?php the_author_meta('url'); ?> </uri> <?php } do_action('atom_author'); ?> </author> <title type="<?php html_type_rss(); ?> "><![CDATA[<?php the_title_rss(); ?> ]]></title> <link rel="alternate" type="<?php bloginfo_rss('html_type'); ?> " href="<?php the_permalink_rss(); ?> " /> <id><?php the_guid(); ?> </id> <updated><?php echo get_post_modified_time('Y-m-d\\TH:i:s\\Z', true);
/** * Generate the feed * * @since 3.3 */ function wprss_addfeed_do_feed($in) { // Prepare the post query /* $wprss_custom_feed_query = apply_filters( 'wprss_custom_feed_query', array( 'post_type' => 'wprss_feed_item', 'post_status' => 'publish', 'cache_results' => false, // disable caching ) );*/ $wprss_custom_feed_query = wprss_get_feed_items_query(apply_filters('wprss_custom_feed_query', array('get-args' => TRUE, 'no-paged' => TRUE, 'feed_limit' => 0))); // Suppress caching $wprss_custom_feed_query['cache_results'] = FALSE; // Get options $options = get_option('wprss_settings_general'); if ($options !== FALSE) { // If options exist, get the limit $limit = $options['custom_feed_limit']; if ($limit !== FALSE) { // if limit exists, set the query limit $wprss_custom_feed_query['posts_per_page'] = $limit; } } // Submit the query to get latest feed items query_posts($wprss_custom_feed_query); $custom_feed_title = wprss_get_general_setting('custom_feed_title'); // Send content header and start ATOM output header('Content-Type: text/xml'); // Disabling caching header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1. header('Pragma: no-cache'); // HTTP 1.0. header('Expires: 0'); // Proxies. echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>'; ?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" > <title type="text"><?php echo $custom_feed_title; ?> </title> <?php // Start the Loop while (have_posts()) { the_post(); $permalink = get_post_meta(get_the_ID(), 'wprss_item_permalink', true); ?> <entry> <title><![CDATA[<?php the_title_rss(); ?> ]]></title> <link href="<?php echo $permalink; ?> " /> <?php // Enable below to link to post on our site rather than original source ?> <!--<link href="<?php the_permalink_rss(); ?> " />--> <published><?php echo get_post_time('Y-m-d\\TH:i:s\\Z'); ?> </published> <content type="html"><![CDATA[<?php the_content(); ?> ]]></content> <?php do_action('wprss_custom_feed_entry', get_the_ID()); ?> </entry> <?php // End of the Loop } ?> </feed> <?php }