function meta_data() { ?> <generator><?php echo WPFront_User_Role_Editor_Export::GENERATOR; ?> </generator> <version><?php echo WPFront_User_Role_Editor_Export::VERSION; ?> </version> <date><?php echo date('D, d M Y H:i:s +0000'); ?> </date> <source><?php bloginfo_rss('name'); ?> </source> <source_url><?php bloginfo_rss('url'); ?> </source_url> <user_display_name><?php echo cdata(wp_get_current_user()->display_name); ?> </user_display_name> <user_id><?php echo wp_get_current_user()->ID; ?> </user_id> <?php }
/** * Fix double title in rss */ public function wp_title_rss_filter($title) { if (!tfuse_options('enable_tfuse_seo_tab', true)) { return $title; } $exploded = explode($this->bloginfo_rss_name, ent2ncr($title)); if (!$exploded[0]) { array_shift($exploded); } if (sizeof($exploded) > 1) { $title = implode(bloginfo_rss('name'), $exploded); } else { $title = implode('', $exploded); } return $title; }
function widget_blix_feeds() { ?> <h2><em><?php _e('Feeds'); ?> </em></h2> <ul class="feeds"> <li><a href="<?php bloginfo_rss('rss2_url'); ?> ">Entries (RSS)</a></li> <li><a href="<?php bloginfo_rss('comments_rss2_url'); ?> ">Comments (RSS)</a></li> </ul> <?php }
</homePageLink> <apis> <api name="WordPress" blogID="1" preferred="true" apiLink="<?php bloginfo_rss('wpurl'); ?> /xmlrpc.php" /> <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl'); ?> /xmlrpc.php" /> <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl'); ?> /xmlrpc.php" /> <api name="Blogger" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('wpurl'); ?> /xmlrpc.php" /> </apis> </service> </rsd> <?php exit; } include_once ABSPATH . 'wp-admin/includes/admin.php'; include_once ABSPATH . WPINC . '/class-IXR.php'; // Turn off all warnings and errors. // error_reporting(0); $post_default_title = ""; // posts submitted via the xmlrpc interface get that title $xmlrpc_logging = 0;
?> " rel="self" type="application/rss+xml" /> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </lastBuildDate> <language><?php bloginfo_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'); ?> <?php
function feed() { $title = sprintf('%s log', $this->name); header('Content-type: text/xml; charset=' . get_option('blog_charset'), true); echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . ">\r\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/"> <channel> <title><?php echo $title . ' - '; bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo htmlspecialchars(mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false)); ?> </pubDate> <generator><?php echo htmlspecialchars('http://wordpress.org/?v='); bloginfo_rss('version'); ?> </generator> <language><?php echo get_option('rss_language'); ?> </language> <?php if (count($this->items) > 0) { foreach ($this->items as $log) { ?> <item> <title><![CDATA[<?php echo $log->url; ?> ]]></title> <link><![CDATA[<?php bloginfo('home'); echo $log->url; ?> ]]></link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', $log->created_at, false); ?> </pubDate> <guid isPermaLink="false"><?php print $log->id; ?> </guid> <description><![CDATA[<?php echo $log->url; ?> ]]></description> <content:encoded><![CDATA[<?php if ($log->referrer) { echo 'Referred by ' . $log->referrer; } ?> ]]></content:encoded> </item> <?php } } ?> </channel> </rss> <?php die; }
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" <?php do_action('rss2_ns'); do_action('rss2_comments_ns'); ?> > <channel> <title><?php if ( is_singular() ) printf(ent2ncr(__('Comments on: %s')), get_the_title_rss()); elseif ( is_search() ) printf(ent2ncr(__('Comments for %s searching on %s')), get_bloginfo_rss( 'name' ), esc_attr($wp_query->query_vars['s'])); else printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss( 'name' ) . get_wp_title_rss()); ?></title> <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" /> <link><?php (is_single()) ? the_permalink_rss() : bloginfo_rss("url") ?></link> <description><?php bloginfo_rss("description") ?></description> <lastBuildDate><?php echo mysql2date('r', get_lastcommentmodified('GMT')); ?></lastBuildDate> <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('commentsrss2_head'); ?> <?php if ( have_comments() ) : while ( have_comments() ) : the_comment(); $comment_post = get_post($comment->comment_post_ID); get_post_custom($comment_post->ID); ?> <item> <title><?php if ( !is_singular() ) { $title = get_the_title($comment_post->ID); $title = apply_filters('the_title_rss', $title); printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
<channel> <title><?php bloginfo_rss('name'); ?> - Releases</title> <link><?php bloginfo_rss('url'); ?> /releases/</link> <description>Records On Ribs Release Feed</description> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', $releases[0]['release_date'], false); ?> </pubDate> <generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?> </generator> <language><?php echo get_option('rss_language'); ?> </language> <?php while (have_releases()) { the_release(); ?> <?php $artist = get_artist($release['release_artist']); ?> <item> <title><?php
xmlns:content="http://purl.org/rss/1.0/modules/content/" > <channel rdf:about="<?php bloginfo_rss("url"); ?> "> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss('description'); ?> </description> <dc:language><?php echo get_settings('rss_language') ? get_settings('rss_language') : 'en'; ?> </dc:language> <dc:date><?php echo gmdate('Y-m-d\\TH:i:s'); ?> </dc:date> <dc:creator><?php echo antispambot(get_settings('admin_email')); ?> </dc:creator> <admin:generatorAgent rdf:resource="http://wordpress.xwd.jp/?v=<?php
/** * Output for Stream Records as a feed. * * @return xml */ public static function feed_template() { $die_title = esc_html__('Access Denied', 'stream'); $die_message = '<h1>' . $die_title . '</h1><p>' . esc_html__('You don\'t have permission to view this feed, please contact your site Administrator.', 'stream') . '</p>'; if (!isset($_GET[self::FEED_QUERY_VAR]) || empty($_GET[self::FEED_QUERY_VAR])) { wp_die($die_message, $die_title); } $args = array('meta_key' => self::USER_FEED_KEY, 'meta_value' => $_GET[self::FEED_QUERY_VAR], 'number' => 1); $user = get_users($args); if (!is_super_admin($user[0]->ID)) { $roles = isset($user[0]->roles) ? (array) $user[0]->roles : array(); if (self::$is_network_feed) { wp_die($die_message, $die_title); } if (!$roles || !array_intersect($roles, WP_Stream_Settings::$options['general_role_access'])) { wp_die($die_message, $die_title); } } $blog_id = self::$is_network_feed ? null : get_current_blog_id(); $args = array('blog_id' => $blog_id, 'records_per_page' => wp_stream_filter_input(INPUT_GET, 'records_per_page', FILTER_SANITIZE_NUMBER_INT, array('options' => array('default' => get_option('posts_per_rss')))), 'search' => wp_stream_filter_input(INPUT_GET, 'search'), 'object_id' => wp_stream_filter_input(INPUT_GET, 'object_id', FILTER_SANITIZE_NUMBER_INT), 'ip' => wp_stream_filter_input(INPUT_GET, 'ip', FILTER_VALIDATE_IP), 'author' => wp_stream_filter_input(INPUT_GET, 'author', FILTER_SANITIZE_NUMBER_INT), 'author_role' => wp_stream_filter_input(INPUT_GET, 'author_role'), 'date' => wp_stream_filter_input(INPUT_GET, 'date'), 'date_from' => wp_stream_filter_input(INPUT_GET, 'date_from'), 'date_to' => wp_stream_filter_input(INPUT_GET, 'date_to'), 'record__in' => wp_stream_filter_input(INPUT_GET, 'record__in', FILTER_SANITIZE_NUMBER_INT), 'record_parent' => wp_stream_filter_input(INPUT_GET, 'record_parent', FILTER_SANITIZE_NUMBER_INT), 'order' => wp_stream_filter_input(INPUT_GET, 'order', FILTER_DEFAULT, array('options' => array('default' => 'desc'))), 'orderby' => wp_stream_filter_input(INPUT_GET, 'orderby', FILTER_DEFAULT, array('options' => array('default' => 'ID'))), 'fields' => wp_stream_filter_input(INPUT_GET, 'fields', FILTER_DEFAULT, array('options' => array('default' => 'with-meta')))); $records = wp_stream_query($args); $latest_record = isset($records[0]->created) ? $records[0]->created : null; $records_admin_url = add_query_arg(array('page' => WP_Stream_Admin::RECORDS_PAGE_SLUG), admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE)); if ('json' === wp_stream_filter_input(INPUT_GET, self::FEED_TYPE_QUERY_VAR)) { if (version_compare(PHP_VERSION, '5.4', '>=')) { echo json_encode($records, JSON_PRETTY_PRINT); } else { echo json_encode($records); } } else { header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); printf('<?xml version="1.0" encoding="%s"?>', esc_attr(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 /** * Action fires during RSS xmls printing */ ?> <?php do_action('rss2_ns'); ?> > <channel> <title><?php bloginfo_rss('name'); ?> - <?php esc_html_e('Stream Feed', 'stream'); ?> </title> <atom:link href="<?php self_link(); ?> " rel="self" type="application/rss+xml" /> <link><?php echo esc_url($records_admin_url); ?> </link> <description><?php bloginfo_rss('description'); ?> </description> <lastBuildDate><?php echo esc_html(mysql2date('r', $latest_record, false)); ?> </lastBuildDate> <language><?php bloginfo_rss('language'); ?> </language> <sy:updatePeriod><?php echo esc_html('hourly'); ?> </sy:updatePeriod> <sy:updateFrequency><?php echo absint(1); ?> </sy:updateFrequency> <?php /** * Action fires during RSS head */ ?> <?php do_action('rss2_head'); ?> <?php foreach ($records as $record) { ?> <?php $record_link = add_query_arg(array('record__in' => (int) $record->ID), $records_admin_url); $author = get_userdata($record->author); $display_name = isset($author->display_name) ? $author->display_name : 'N/A'; ?> <item> <title><![CDATA[ <?php echo trim($record->summary); ?> ]]></title> <pubDate><?php echo esc_html(mysql2date('r', $record->created, false)); ?> </pubDate> <dc:creator><?php echo esc_html($display_name); ?> </dc:creator> <category domain="connector"><![CDATA[ <?php echo esc_html($record->connector); ?> ]]></category> <category domain="context"><![CDATA[ <?php echo esc_html($record->context); ?> ]]></category> <category domain="action"><![CDATA[ <?php echo esc_html($record->action); ?> ]]></category> <category domain="ip"><?php echo esc_html($record->ip); ?> </category> <guid isPermaLink="false"><?php echo esc_url($record_link); ?> </guid> <link><?php echo esc_url($record_link); ?> </link> <?php /** * Action fires during RSS item */ ?> <?php do_action('rss2_item'); ?> </item> <?php } ?> </channel> </rss> <?php exit; } }
/** * Output an RSS2 feed of replies, based on the query passed. * * @since bbPress (r3171) * * @uses bbp_version() * @uses bbp_is_single_topic() * @uses bbp_user_can_view_forum() * @uses bbp_get_topic_forum_id() * @uses bbp_show_load_topic() * @uses bbp_topic_permalink() * @uses bbp_topic_title() * @uses bbp_get_topic_reply_count() * @uses bbp_topic_content() * @uses bbp_has_replies() * @uses bbp_replies() * @uses bbp_the_reply() * @uses bbp_reply_url() * @uses bbp_reply_title() * @uses bbp_reply_content() * @uses get_wp_title_rss() * @uses get_option() * @uses bloginfo_rss * @uses self_link() * @uses the_author() * @uses get_post_time() * @uses rss_enclosure() * @uses do_action() * @uses apply_filters() * * @param array $replies_query */ function bbp_display_replies_feed_rss2($replies_query = array()) { // User cannot access forum this topic is in if (bbp_is_single_topic() && !bbp_user_can_view_forum(array('forum_id' => bbp_get_topic_forum_id()))) { return; } // Adjust the title based on context if (bbp_is_single_topic() && bbp_user_can_view_forum(array('forum_id' => bbp_get_topic_forum_id()))) { $title = apply_filters('wp_title_rss', get_wp_title_rss(' » ')); } elseif (!bbp_show_lead_topic()) { $title = ' » ' . __('All Posts', 'bbpress'); } else { $title = ' » ' . __('All Replies', 'bbpress'); } // Display the feed header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); header('Status: 200 OK'); 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" <?php do_action('bbp_feed'); ?> > <channel> <title><?php bloginfo_rss('name'); echo $title; ?> </title> <atom:link href="<?php self_link(); ?> " rel="self" type="application/rss+xml" /> <link><?php self_link(); ?> </link> <description><?php // ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s O', current_time('mysql'), false); ?> </pubDate> <generator>http://bbpress.org/?v=<?php bbp_version(); ?> </generator> <language><?php bloginfo_rss('language'); ?> </language> <?php do_action('bbp_feed_head'); ?> <?php if (bbp_is_single_topic()) { ?> <?php if (bbp_user_can_view_forum(array('forum_id' => bbp_get_topic_forum_id()))) { ?> <?php if (bbp_show_lead_topic()) { ?> <item> <guid><?php bbp_topic_permalink(); ?> </guid> <title><![CDATA[<?php bbp_topic_title(); ?> ]]></title> <link><?php bbp_topic_permalink(); ?> </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> <description> <![CDATA[ <p><?php printf(__('Replies: %s', 'bbpress'), bbp_get_topic_reply_count()); ?> </p> <?php bbp_topic_content(); ?> ]]> </description> <?php rss_enclosure(); ?> <?php do_action('bbp_feed_item'); ?> </item> <?php } ?> <?php } ?> <?php } ?> <?php if (bbp_has_replies($replies_query)) { ?> <?php while (bbp_replies()) { bbp_the_reply(); ?> <item> <guid><?php bbp_reply_url(); ?> </guid> <title><![CDATA[<?php bbp_reply_title(); ?> ]]></title> <link><?php bbp_reply_url(); ?> </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> <description> <![CDATA[ <?php bbp_reply_content(); ?> ]]> </description> <?php rss_enclosure(); ?> <?php do_action('bbp_feed_item'); ?> </item> <?php } ?> <?php } ?> <?php do_action('bbp_feed_footer'); ?> </channel> </rss> <?php // We're done here exit; }
$feed = 'rss'; $doing_rss = 1; require('wp-blog-header.php'); } header('Content-type: text/xml; charset=' . get_settings('blog_charset'), true); $more = 1; ?> <?php echo '<?xml version="1.0" encoding="'.get_settings('blog_charset').'"?'.'>'; ?> <!-- generator="wordpress/<?php echo $wp_version ?>" --> <rss version="0.92"> <channel> <title><?php bloginfo_rss('name') ?></title> <link><?php bloginfo_rss('url') ?></link> <description><?php bloginfo_rss('description') ?></description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), 0); ?></lastBuildDate> <docs>http://backend.userland.com/rss092</docs> <language><?php echo get_option('rss_language'); ?></language> <?php $items_count = 0; if ($posts) { foreach ($posts as $post) { start_wp(); ?> <item> <title><?php the_title_rss() ?></title> <?php if (get_settings('rss_use_excerpt')) { ?> <description><![CDATA[<?php the_excerpt_rss() ?>]]></description> <?php } else { // use content ?> <description><?php the_content_rss('', 0, '', get_settings('rss_excerpt_length')) ?></description> <?php } ?> <link><?php permalink_single_rss() ?></link> </item> <?php $items_count++; if (($items_count == get_settings('posts_per_rss')) && empty($m)) { break; } } } ?>
/** * Output the RSS feed. */ protected function output() { $this->http_headers(); 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: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 opening RSS tag for feed output so plugins can add extra attributes. * * @since 1.8.0 */ do_action('bp_activity_feed_rss_attributes'); ?> > <channel> <title><?php echo $this->title; ?> </title> <link><?php echo $this->link; ?> </link> <atom:link href="<?php self_link(); ?> " rel="self" type="application/rss+xml" /> <description><?php echo $this->description; ?> </description> <lastBuildDate><?php echo mysql2date('D, d M Y H:i:s O', bp_activity_get_last_updated(), false); ?> </lastBuildDate> <generator>https://buddypress.org/?v=<?php bp_version(); ?> </generator> <language><?php bloginfo_rss('language'); ?> </language> <ttl><?php echo $this->ttl; ?> </ttl> <sy:updatePeriod><?php echo $this->update_period; ?> </sy:updatePeriod> <sy:updateFrequency><?php echo $this->update_frequency; ?> </sy:updateFrequency> <?php /** * Fires at the end of channel elements list in RSS feed so plugins can add extra channel elements. * * @since 1.8.0 */ do_action('bp_activity_feed_channel_elements'); ?> <?php if (bp_has_activities($this->activity_args)) { ?> <?php while (bp_activities()) { bp_the_activity(); ?> <item> <guid isPermaLink="false"><?php bp_activity_feed_item_guid(); ?> </guid> <title><?php echo stripslashes(bp_get_activity_feed_item_title()); ?> </title> <link><?php bp_activity_thread_permalink(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s O', bp_get_activity_feed_item_date(), false); ?> </pubDate> <?php if (bp_get_activity_feed_item_description()) { ?> <content:encoded><![CDATA[<?php $this->feed_content(); ?> ]]></content:encoded> <?php } ?> <?php if (bp_activity_can_comment()) { ?> <slash:comments><?php bp_activity_comment_count(); ?> </slash:comments> <?php } ?> <?php /** * Fires at the end of the individual RSS Item list in RSS feed so plugins can add extra item elements. * * @since 1.8.0 */ do_action('bp_activity_feed_item_elements'); ?> </item> <?php } ?> <?php } ?> </channel> </rss><?php }
<div class="widget connection"> <ul> <li><a href="http://facebook.com/<?php echo get_option('loogle_facebook'); ?> " class="facebook" title="Facebook">Facebook</a></li> <li><a href="http://twitter.com/<?php echo get_option('loogle_twitter'); ?> " class="twitter" title="Twitter" >Twitter</a></li> <li><a href="http://myspace.com/<?php echo get_option('loogle_myspace'); ?> " class="myspace"title="Myspace" >Myspace</a></li> <li><a href="<?php bloginfo_rss('rss2_url'); ?> " class="rss" title="Syndicate this site using RSS 2.0">RSS Subscribe</a></li> </ul> </div> --> <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Leftbar')) { ?> <div class="widget"> <div class="widgettitle"><?php _e('Archives'); ?> </div> <ul>
function dsq_export_wp($post, $comments = null) { global $wpdb; if (!$comments) { $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_agent NOT LIKE 'Disqus/%%'", $post->ID)); } // start catching output ob_start(); echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n"; the_generator('export'); ?> <rss version="2.0" xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?> /excerpt/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dsq="https://disqus.com/" 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> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?> </pubDate> <generator>WordPress <?php bloginfo_rss('version'); ?> ; Disqus <?php echo DISQUS_VERSION; ?> </generator> <?php global $wp_query, $post; $wp_query->in_the_loop = true; // Fake being in the loop. setup_postdata($post); ?> <item> <title><?php echo apply_filters('the_title_rss', $post->post_title); ?> </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 echo dsq_export_wxr_cdata(get_the_author()); ?> </dc:creator> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <content:encoded><?php echo dsq_export_wxr_cdata(apply_filters('the_content_export', $post->post_content)); ?> </content:encoded> <dsq:thread_identifier><?php echo dsq_identifier_for_post($post); ?> </dsq:thread_identifier> <wp:post_id><?php echo $post->ID; ?> </wp:post_id> <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> <?php if ($comments) { foreach ($comments as $c) { ?> <wp:comment> <wp:comment_id><?php echo $c->comment_ID; ?> </wp:comment_id> <wp:comment_author><?php echo dsq_export_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 dsq_export_wxr_cdata($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 } } // comments ?> </item> </channel> </rss> <?php // end of WXR output $output = ob_get_clean(); return $output; }
// enter your blog's ID $doing_rss = 1; include_once dirname(__FILE__) . "/../../mainfile.php"; require 'wp-blog-header.php'; echo '<?xml version="1.0"?>'; ?> <!-- generator="wordpress/<?php echo $wp_version; ?> " --> <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"> <service> <engineName>WordPress ME</engineName> <engineLink>http://wordpress.xwd.jp/</engineLink> <homePageLink><?php bloginfo_rss("url"); ?> </homePageLink> <apis> <api name="MetaWeblog" preferred="true" apiLink="<?php echo $siteurl; ?> /xmlrpc.php" blogID="<?php echo $blog; ?> " /> <api name="Blogger" preferred="true" apiLink="<?php echo $siteurl; ?> /xmlrpc.php" blogID="<?php echo $blog;
<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
function export(array $items) { header('Content-type: text/xml; charset=' . get_option('blog_charset'), true); echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . ">\r\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/"> <channel> <title>Redirection - <?php bloginfo_rss('name'); ?> </title> <link><?php esc_url(bloginfo_rss('url')); ?> </link> <description><?php esc_html(bloginfo_rss('description')); ?> </description> <pubDate><?php echo esc_html(mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false)); ?> </pubDate> <generator> <?php echo esc_html('http://wordpress.org/?v='); ?> <?php bloginfo_rss('version'); ?> </generator> <language><?php echo esc_html(get_option('rss_language')); ?> </language> <?php foreach ((array) $items as $log) { ?> <item> <title><?php echo esc_html($log->get_url()); ?> </title> <link><![CDATA[<?php echo esc_url(home_url()); echo esc_url($log->get_url()); ?> ]]></link> <pubDate><?php echo date('D, d M Y H:i:s +0000', $log->get_last_hit()); ?> </pubDate> <guid isPermaLink="false"><?php echo esc_html($log->get_id()); ?> </guid> <description><?php echo esc_html($log->get_url()); ?> </description> </item> <?php } ?> </channel> </rss> <?php }
/** * Output an RSS2 feed of topics, based on the query passed. * * @since bbPress (r3171) * * @uses bbp_version() * @uses bbp_is_single_topic() * @uses bbp_user_can_view_forum() * @uses bbp_get_topic_forum_id() * @uses bbp_show_load_topic() * @uses bbp_topic_permalink() * @uses bbp_topic_title() * @uses bbp_get_topic_reply_count() * @uses bbp_topic_content() * @uses bbp_has_topics() * @uses bbp_topics() * @uses bbp_the_topic() * @uses get_wp_title_rss() * @uses get_option() * @uses bloginfo_rss * @uses self_link() * @uses the_author() * @uses get_post_time() * @uses rss_enclosure() * @uses do_action() * @uses apply_filters() * * @param array $topics_query */ function bbp_display_topics_feed_rss2($topics_query = array()) { // User cannot access this forum if (bbp_is_single_forum() && !bbp_user_can_view_forum(array('forum_id' => bbp_get_forum_id()))) { return; } // Display the feed header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true); header('Status: 200 OK'); 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" <?php do_action('bbp_feed'); ?> > <channel> <title><?php bloginfo_rss('name'); ?> » <?php _e('All Topics', 'bbpress'); ?> </title> <atom:link href="<?php self_link(); ?> " rel="self" type="application/rss+xml" /> <link><?php self_link(); ?> </link> <description><?php // ?> </description> <pubDate><?php echo mysql2date('D, d M Y H:i:s O', current_time('mysql'), false); ?> </pubDate> <generator>http://bbpress.org/?v=<?php bbp_version(); ?> </generator> <language><?php bloginfo_rss('language'); ?> </language> <?php do_action('bbp_feed_head'); ?> <?php if (bbp_has_topics($topics_query)) { ?> <?php while (bbp_topics()) { bbp_the_topic(); ?> <item> <guid><?php bbp_topic_permalink(); ?> </guid> <title><![CDATA[<?php bbp_topic_title(); ?> ]]></title> <link><?php bbp_topic_permalink(); ?> </link> <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_meta(bbp_get_topic_id(), '_bbp_last_active_time', true)); ?> </pubDate> <dc:creator><?php the_author(); ?> </dc:creator> <?php if (!post_password_required()) { ?> <description> <![CDATA[ <p><?php printf(esc_html__('Replies: %s', 'bbpress'), bbp_get_topic_reply_count()); ?> </p> <?php bbp_topic_content(); ?> ]]> </description> <?php rss_enclosure(); ?> <?php } ?> <?php do_action('bbp_feed_item'); ?> </item> <?php } ?> <?php } ?> <?php do_action('bbp_feed_footer'); ?> </channel> </rss> <?php exit; }
<?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> <!-- generator="wordpress/<?php bloginfo_rss('version') ?>" --> <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/" <?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 : ?>
printf(ent2ncr(__('Comments for %s searching on %s')), get_bloginfo_rss('name'), attribute_escape($wp_query->query_vars['s'])); } else { printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss('name') . get_wp_title_rss()); } ?> </title> <atom:link href="<?php self_link(); ?> " rel="self" type="application/rss+xml" /> <link><?php is_single() ? the_permalink_rss() : bloginfo_rss("url"); ?> </link> <description><?php bloginfo_rss("description"); ?> </description> <pubDate><?php echo gmdate('r'); ?> </pubDate> <?php the_generator('rss2'); ?> <sy:updatePeriod><?php echo apply_filters('rss_update_period', 'hourly'); ?> </sy:updatePeriod> <sy:updateFrequency><?php echo apply_filters('rss_update_frequency', '1');
/** * Export entire form database or just form data as an XML * * @since 1.7 * * @param array $args Filters defining what should be included in the export */ public function export($args = array()) { global $wpdb; $defaults = array('content' => 'all', 'form_id' => 0, 'start_date' => false, 'end_date' => false); $args = wp_parse_args($args, $defaults); $where = ''; $form_id = 0 !== $args['form_id'] ? $args['form_id'] : null; $sitename = sanitize_key(get_bloginfo('name')); if (!empty($sitename)) { $sitename .= '.'; } $filename = $sitename . 'vfb-pro-' . $args['content'] . '.' . 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); echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . "\" ?>\n"; // Output the correct generator type the_generator('export'); ?> <!-- This is a Visual Form Builder Pro RSS file generated by WordPress as an export of your forms and/or data. --> <!-- It contains information about forms, fields, entries, and email design settings from Visual Form Builder Pro. --> <!-- You may use this file to transfer that content from one site to another. --> <!-- To import this information into a WordPress site follow these steps: --> <!-- 1. Log in to that site as an administrator. --> <!-- 2. Go to Visual Form Builder Pro: Import in the WordPress admin panel. --> <!-- 3. Select and Upload this file using the form provided on that page. --> <!-- 4. Visual Form Builder Pro will then import each of the forms, fields, entries, and email design settings --> <!-- contained in this file into your site. --> <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:vfb="http://matthewmuro.com/export/1.9/" > <channel> <title><?php bloginfo_rss('name'); ?> </title> <link><?php bloginfo_rss('url'); ?> </link> <description><?php bloginfo_rss('description'); ?> </description> <pubDate><?php echo date('D, d M Y H:i:s +0000'); ?> </pubDate> <language><?php bloginfo_rss('language'); ?> </language> <vfb:export_version><?php echo $this->export_version; ?> </vfb:export_version> <?php do_action('rss2_head'); // Forms if (in_array($args['content'], array('all', 'forms'))) { $form_ids = $this->get_form_IDs($form_id); if ($form_ids) { // fetch 20 forms at a time rather than loading the entire table into memory while ($next_forms = array_splice($form_ids, 0, 20)) { $where = 'WHERE form_id IN (' . join(',', $next_forms) . ')'; $forms = $wpdb->get_results("SELECT * FROM {$this->form_table_name} {$where}"); foreach ($forms as $form) { ?> <vfb:form> <vfb:form_id><?php echo $form->form_id; ?> </vfb:form_id> <vfb:form_key><?php echo $form->form_key; ?> </vfb:form_key> <vfb:form_title><?php echo $this->cdata($form->form_title); ?> </vfb:form_title> <vfb:form_email_subject><?php echo $this->cdata($form->form_email_subject); ?> </vfb:form_email_subject> <vfb:form_email_to><?php echo $this->cdata($form->form_email_to); ?> </vfb:form_email_to> <vfb:form_email_from><?php echo $this->cdata($form->form_email_from); ?> </vfb:form_email_from> <vfb:form_email_from_name><?php echo $this->cdata($form->form_email_from_name); ?> </vfb:form_email_from_name> <vfb:form_email_from_override><?php echo $form->form_email_from_override; ?> </vfb:form_email_from_override> <vfb:form_email_from_name_override><?php echo $form->form_email_from_name_override; ?> </vfb:form_email_from_name_override> <vfb:form_email_rule_setting><?php echo $form->form_email_rule_setting; ?> </vfb:form_email_rule_setting> <vfb:form_email_rule><?php echo $this->cdata($form->form_email_rule); ?> </vfb:form_email_rule> <vfb:form_success_type><?php echo $form->form_success_type; ?> </vfb:form_success_type> <vfb:form_success_message><?php echo $this->cdata($form->form_success_message); ?> </vfb:form_success_message> <vfb:form_notification_setting><?php echo $form->form_notification_setting; ?> </vfb:form_notification_setting> <vfb:form_notification_email_name><?php echo $this->cdata($form->form_notification_email_name); ?> </vfb:form_notification_email_name> <vfb:form_notification_email_from><?php echo $this->cdata($form->form_notification_email_from); ?> </vfb:form_notification_email_from> <vfb:form_notification_email><?php echo $form->form_notification_email; ?> </vfb:form_notification_email> <vfb:form_notification_subject><?php echo $this->cdata($form->form_notification_subject); ?> </vfb:form_notification_subject> <vfb:form_notification_message><?php echo $this->cdata($form->form_notification_message); ?> </vfb:form_notification_message> <vfb:form_notification_entry><?php echo $form->form_notification_entry; ?> </vfb:form_notification_entry> <vfb:form_email_design><?php echo $this->cdata($form->form_email_design); ?> </vfb:form_email_design> <vfb:form_paypal_setting><?php echo $form->form_paypal_setting; ?> </vfb:form_paypal_setting> <vfb:form_paypal_email><?php echo $this->cdata($form->form_paypal_email); ?> </vfb:form_paypal_email> <vfb:form_paypal_currency><?php echo $form->form_paypal_currency; ?> </vfb:form_paypal_currency> <vfb:form_paypal_shipping><?php echo $form->form_paypal_shipping; ?> </vfb:form_paypal_shipping> <vfb:form_paypal_tax><?php echo $form->form_paypal_tax; ?> </vfb:form_paypal_tax> <vfb:form_paypal_field_price><?php echo $this->cdata($form->form_paypal_field_price); ?> </vfb:form_paypal_field_price> <vfb:form_paypal_item_name><?php echo $this->cdata($form->form_paypal_item_name); ?> </vfb:form_paypal_item_name> <vfb:form_label_alignment><?php echo $form->form_label_alignment; ?> </vfb:form_label_alignment> <vfb:form_verification><?php echo $form->form_verification; ?> </vfb:form_verification> <vfb:form_entries_allowed><?php echo $form->form_entries_allowed; ?> </vfb:form_entries_allowed> <vfb:form_entries_schedule><?php echo $this->cdata($form->form_entries_schedule); ?> </vfb:form_entries_schedule> <vfb:form_unique_entry><?php echo $form->form_unique_entry; ?> </vfb:form_unique_entry> <vfb:form_status><?php echo $form->form_status; ?> </vfb:form_status> </vfb:form> <?php } } } } // Fields if (in_array($args['content'], array('all', 'forms'))) { $field_ids = $this->get_field_IDs($form_id); if ($field_ids) { // fetch 20 entries at a time rather than loading the entire table into memory while ($next_fields = array_splice($field_ids, 0, 20)) { $where = 'WHERE field_id IN (' . join(',', $next_fields) . ')'; $fields = $wpdb->get_results("SELECT * FROM {$this->field_table_name} {$where}"); foreach ($fields as $field) { ?> <vfb:field> <vfb:field_id><?php echo $field->field_id; ?> </vfb:field_id> <vfb:form_id><?php echo $field->form_id; ?> </vfb:form_id> <vfb:field_key><?php echo $field->field_key; ?> </vfb:field_key> <vfb:field_type><?php echo $field->field_type; ?> </vfb:field_type> <vfb:field_options><?php echo $this->cdata($field->field_options); ?> </vfb:field_options> <vfb:field_options_other><?php echo $this->cdata($field->field_options_other); ?> </vfb:field_options_other> <vfb:field_description><?php echo $this->cdata($field->field_description); ?> </vfb:field_description> <vfb:field_name><?php echo $this->cdata($field->field_name); ?> </vfb:field_name> <vfb:field_sequence><?php echo $field->field_sequence; ?> </vfb:field_sequence> <vfb:field_parent><?php echo $field->field_parent; ?> </vfb:field_parent> <vfb:field_required><?php echo $field->field_required; ?> </vfb:field_required> <vfb:field_validation><?php echo $field->field_validation; ?> </vfb:field_validation> <vfb:field_size><?php echo $field->field_size; ?> </vfb:field_size> <vfb:field_css><?php echo $field->field_css; ?> </vfb:field_css> <vfb:field_layout><?php echo $field->field_layout; ?> </vfb:field_layout> <vfb:field_default><?php echo $this->cdata($field->field_default); ?> </vfb:field_default> <vfb:field_rule_setting><?php echo $field->field_rule_setting; ?> </vfb:field_rule_setting> <vfb:field_rule><?php echo $this->cdata($field->field_rule); ?> </vfb:field_rule> </vfb:field> <?php } } } } // Entries if (in_array($args['content'], array('all'))) { $entry_ids = $this->get_entry_IDs($form_id); if ($entry_ids) { // fetch 20 entries at a time rather than loading the entire table into memory while ($next_entries = array_splice($entry_ids, 0, 20)) { $where = 'WHERE entries_id IN (' . join(',', $next_entries) . ')'; $entries = $wpdb->get_results("SELECT * FROM {$this->entries_table_name} {$where}"); foreach ($entries as $entry) { ?> <vfb:entry> <vfb:entries_id><?php echo $entry->entries_id; ?> </vfb:entries_id> <vfb:form_id><?php echo $entry->form_id; ?> </vfb:form_id> <vfb:user_id><?php echo $entry->user_id; ?> </vfb:user_id> <vfb:data><![CDATA[<?php echo $entry->data; ?> ]]></vfb:data> <vfb:subject><?php echo $this->cdata($entry->subject); ?> </vfb:subject> <vfb:sender_name><?php echo $this->cdata($entry->sender_name); ?> </vfb:sender_name> <vfb:sender_email><?php echo $this->cdata($entry->sender_email); ?> </vfb:sender_email> <vfb:emails_to><?php echo $this->cdata($entry->emails_to); ?> </vfb:emails_to> <vfb:date_submitted><?php echo $entry->date_submitted; ?> </vfb:date_submitted> <vfb:ip_address><?php echo $entry->ip_address; ?> </vfb:ip_address> <vfb:notes><?php echo $this->cdata($entry->notes); ?> </vfb:notes> <vfb:akismet><?php echo $this->cdata($entry->akismet); ?> </vfb:akismet> <vfb:entry_approved><?php echo $entry->entry_approved; ?> </vfb:entry_approved> </vfb:entry> <?php } } } } // Form Designer add-on if (in_array($args['content'], array('all', 'form_design'))) { $form_design_ids = $this->get_form_design_IDs($form_id); if ($form_design_ids) { // fetch 20 entries at a time rather than loading the entire table into memory while ($next_designs = array_splice($form_design_ids, 0, 20)) { $where = 'WHERE design_id IN (' . join(',', $next_designs) . ')'; $designs = $wpdb->get_results("SELECT * FROM {$this->design_table_name} {$where}"); foreach ($designs as $design) { ?> <vfb:form_design> <vfb:design_id><?php echo $design->design_id; ?> </vfb:design_id> <vfb:form_id><?php echo $design->form_id; ?> </vfb:form_id> <vfb:enable_design><?php echo $design->enable_design; ?> </vfb:enable_design> <vfb:design_type><?php echo $design->design_type; ?> </vfb:design_type> <vfb:design_themes><?php echo $design->design_themes; ?> </vfb:design_themes> <vfb:design_custom><?php echo $this->cdata($design->design_custom); ?> </vfb:design_custom> </vfb:form_design> <?php } } } } // Payments add-on if (in_array($args['content'], array('all', 'payments'))) { $payments_ids = $this->get_payments_IDs($form_id); if ($payments_ids) { // fetch 20 entries at a time rather than loading the entire table into memory while ($next_payments = array_splice($payments_ids, 0, 20)) { $where = 'WHERE payment_id IN (' . join(',', $next_payments) . ')'; $payments = $wpdb->get_results("SELECT * FROM {$this->payment_table_name} {$where}"); foreach ($payments as $payment) { ?> <vfb:payment> <vfb:payment_id><?php echo $payment->payment_id; ?> </vfb:payment_id> <vfb:form_id><?php echo $payment->form_id; ?> </vfb:form_id> <vfb:enable_payment><?php echo $payment->enable_payment; ?> </vfb:enable_payment> <vfb:merchant_type><?php echo $payment->merchant_type; ?> </vfb:merchant_type> <vfb:merchant_details><?php echo $this->cdata($payment->merchant_details); ?> </vfb:merchant_details> <vfb:currency><?php echo $payment->currency; ?> </vfb:currency> <vfb:show_running_total><?php echo $payment->show_running_total; ?> </vfb:show_running_total> <vfb:collect_shipping_address><?php echo $payment->collect_shipping_address; ?> </vfb:collect_shipping_address> <vfb:collect_billing_info><?php echo $this->cdata($payment->collect_billing_info); ?> </vfb:collect_billing_info> <vfb:recurring_payments><?php echo $this->cdata($payment->recurring_payments); ?> </vfb:recurring_payments> <vfb:advanced_vars><?php echo $this->cdata($payment->advanced_vars); ?> </vfb:advanced_vars> <vfb:price_fields><?php echo $this->cdata($payment->price_fields); ?> </vfb:price_fields> </vfb:payment> <?php } } } } ?> </channel> </rss> <?php }
/** * Retrieve feed XML. * * @since 2.2.0 * * @param int $page Page ID. * @param string $post_type Optional, default is post. Post type. * @return string */ function get_feed($page = 1, $post_type = 'post') { global $post, $wp, $wp_query, $posts, $wpdb, $blog_id; log_app('function', "get_feed({$page}, '{$post_type}')"); ob_start(); $this->ENTRY_PATH = $post_type; if (!isset($page)) { $page = 1; } $page = (int) $page; $count = get_option('posts_per_rss'); wp('posts_per_page=' . $count . '&offset=' . ($count * ($page - 1) . '&orderby=modified')); $post = $GLOBALS['post']; $posts = $GLOBALS['posts']; $wp = $GLOBALS['wp']; $wp_query = $GLOBALS['wp_query']; $wpdb = $GLOBALS['wpdb']; $blog_id = (int) $GLOBALS['blog_id']; log_app('function', "query_posts(# " . print_r($wp_query, true) . "#)"); log_app('function', "total_count(# {$wp_query->max_num_pages} #)"); $last_page = $wp_query->max_num_pages; $next_page = $page + 1 > $last_page ? NULL : $page + 1; $prev_page = $page - 1 < 1 ? NULL : $page - 1; $last_page = (int) $last_page == 1 || (int) $last_page == 0 ? NULL : (int) $last_page; $self_page = $page > 1 ? $page : NULL; ?> <feed xmlns="<?php echo $this->ATOM_NS; ?> " xmlns:app="<?php echo $this->ATOMPUB_NS; ?> " xml:lang="<?php echo get_option('rss_language'); ?> " <?php do_action('app_ns'); ?> > <id><?php $this->the_entries_url(); ?> </id> <updated><?php echo mysql2date('Y-m-d\\TH:i:s\\Z', get_lastpostmodified('GMT'), false); ?> </updated> <title type="text"><?php bloginfo_rss('name'); ?> </title> <subtitle type="text"><?php bloginfo_rss("description"); ?> </subtitle> <link rel="first" type="<?php echo $this->ATOM_CONTENT_TYPE; ?> " href="<?php $this->the_entries_url(); ?> " /> <?php if (isset($prev_page)) { ?> <link rel="previous" type="<?php echo $this->ATOM_CONTENT_TYPE; ?> " href="<?php $this->the_entries_url($prev_page); ?> " /> <?php } if (isset($next_page)) { ?> <link rel="next" type="<?php echo $this->ATOM_CONTENT_TYPE; ?> " href="<?php $this->the_entries_url($next_page); ?> " /> <?php } ?> <link rel="last" type="<?php echo $this->ATOM_CONTENT_TYPE; ?> " href="<?php $this->the_entries_url($last_page); ?> " /> <link rel="self" type="<?php echo $this->ATOM_CONTENT_TYPE; ?> " href="<?php $this->the_entries_url($self_page); ?> " /> <rights type="text">Copyright <?php echo date('Y'); ?> </rights> <?php do_action('app_head'); if (have_posts()) { while (have_posts()) { the_post(); $this->echo_entry(); } } ?> </feed> <?php $feed = ob_get_contents(); ob_end_clean(); return $feed; }
function export_wp($author = '') { 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 ($author and $author != 'all') { $author_id = (int) $author; $where = $wpdb->prepare(" WHERE post_author = %d ", $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_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_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(); $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); // for backwards compatibility $the_list .= "\n\t\t<category><![CDATA[{$cat_name}]]></category>\n"; // forwards compatibility: use a unique identifier for each cat to avoid clashes // http://trac.wordpress.org/ticket/5447 $the_list .= "\n\t\t<category domain=\"category\" nicename=\"{$category->slug}\"><![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"; // forwards compatibility as above $the_list .= "\n\t\t<category domain=\"tag\" nicename=\"{$tag->slug}\"><![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 --> <?php the_generator('export'); ?> <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 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 echo apply_filters('the_title_rss', $post->post_title); ?> </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 echo wxr_cdata(get_the_author()); ?> </dc:creator> <?php wxr_post_taxonomy(); ?> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <description></description> <content:encoded><?php echo wxr_cdata(apply_filters('the_content_export', $post->post_content)); ?> </content:encoded> <excerpt:encoded><?php echo wxr_cdata(apply_filters('the_excerpt_export', $post->post_excerpt)); ?> </excerpt: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> <wp:post_password><?php echo $post->post_password; ?> </wp:post_password> <?php if ($post->post_type == 'attachment') { ?> <wp:attachment_url><?php echo wp_get_attachment_url($post->ID); ?> </wp:attachment_url> <?php } $postmeta = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->postmeta} WHERE post_id = %d", $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($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d", $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 wxr_cdata($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_user_id><?php echo $c->user_id; ?> </wp:comment_user_id> </wp:comment> <?php } } ?> </item> <?php } } } ?> </channel> </rss> <?php }
if (isset($HTTP_RAW_POST_DATA)) { $HTTP_RAW_POST_DATA = trim($HTTP_RAW_POST_DATA); } /** Include the bootstrap for setting up WordPress environment */ include dirname(__FILE__) . '/wp-load.php'; if (isset($_GET['rsd'])) { // http://cyber.law.harvard.edu/blogs/gems/tech/rsd.html header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>'; ?> <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"> <service> <engineName>WordPress</engineName> <engineLink>https://wordpress.org/</engineLink> <homePageLink><?php bloginfo_rss('url'); ?> </homePageLink> <apis> <api name="WordPress" blogID="1" preferred="true" apiLink="<?php echo site_url('xmlrpc.php', 'rpc'); ?> " /> <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc'); ?> " /> <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc'); ?> " />
/** * Generates the WXR export file for download. * * @since 2.1.0 * * @global wpdb $wpdb * @global WP_Post $post * * @param array $args Filters defining what should be included in the export. */ function export_wp($args = array()) { global $wpdb, $post; $defaults = array('content' => 'all', 'author' => false, 'category' => false, 'start_date' => false, 'end_date' => false, 'status' => false); $args = wp_parse_args($args, $defaults); /** * Fires at the beginning of an export, before any headers are sent. * * @since 2.3.0 * * @param array $args An array of export arguments. */ do_action('export_wp', $args); $sitename = sanitize_key(get_bloginfo('name')); if (!empty($sitename)) { $sitename .= '.'; } $date = date('Y-m-d'); $wp_filename = $sitename . 'wordpress.' . $date . '.xml'; /** * Filter the export filename. * * @since 4.4.0 * * @param string $wp_filename The name of the file for download. * @param string $sitename The site name. * @param string $date Today's date, formatted. */ $filename = apply_filters('export_wp_filename', $wp_filename, $sitename, $date); header('Content-Description: File Transfer'); header('Content-Disposition: attachment; filename=' . $filename); header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true); if ('all' != $args['content'] && post_type_exists($args['content'])) { $ptype = get_post_type_object($args['content']); if (!$ptype->can_export) { $args['content'] = 'post'; } $where = $wpdb->prepare("{$wpdb->posts}.post_type = %s", $args['content']); } else { $post_types = get_post_types(array('can_export' => true)); $esses = array_fill(0, count($post_types), '%s'); $where = $wpdb->prepare("{$wpdb->posts}.post_type IN (" . implode(',', $esses) . ')', $post_types); } if ($args['status'] && ('post' == $args['content'] || 'page' == $args['content'])) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_status = %s", $args['status']); } else { $where .= " AND {$wpdb->posts}.post_status != 'auto-draft'"; } $join = ''; if ($args['category'] && 'post' == $args['content']) { if ($term = term_exists($args['category'], 'category')) { $join = "INNER JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)"; $where .= $wpdb->prepare(" AND {$wpdb->term_relationships}.term_taxonomy_id = %d", $term['term_taxonomy_id']); } } if ('post' == $args['content'] || 'page' == $args['content'] || 'attachment' == $args['content']) { if ($args['author']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_author = %d", $args['author']); } if ($args['start_date']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_date >= %s", date('Y-m-d', strtotime($args['start_date']))); } if ($args['end_date']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_date < %s", date('Y-m-d', strtotime('+1 month', strtotime($args['end_date'])))); } } // Grab a snapshot of post IDs, just in case it changes during the export. $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$join} WHERE {$where}"); /* * Get the requested terms ready, empty unless posts filtered by category * or all content. */ $cats = $tags = $terms = array(); if (isset($term) && $term) { $cat = get_term($term['term_id'], 'category'); $cats = array($cat->term_id => $cat); unset($term, $cat); } elseif ('all' == $args['content']) { $categories = (array) get_categories(array('get' => 'all')); $tags = (array) get_tags(array('get' => 'all')); $custom_taxonomies = get_taxonomies(array('_builtin' => false)); $custom_terms = (array) get_terms($custom_taxonomies, array('get' => 'all')); // Put categories in order with no child going before its parent. while ($cat = array_shift($categories)) { if ($cat->parent == 0 || isset($cats[$cat->parent])) { $cats[$cat->term_id] = $cat; } else { $categories[] = $cat; } } // Put terms in order with no child going before its parent. while ($t = array_shift($custom_terms)) { if ($t->parent == 0 || isset($terms[$t->parent])) { $terms[$t->term_id] = $t; } else { $custom_terms[] = $t; } } unset($categories, $custom_taxonomies, $custom_terms); } /** * Wrap given string in XML CDATA tag. * * @since 2.1.0 * * @param string $str String to wrap in XML CDATA tag. * @return string */ function wxr_cdata($str) { if (!seems_utf8($str)) { $str = utf8_encode($str); } // $str = ent2ncr(esc_html($str)); $str = '<![CDATA[' . str_replace(']]>', ']]]]><![CDATA[>', $str) . ']]>'; return $str; } /** * Return the URL of the site * * @since 2.5.0 * * @return string Site URL. */ function wxr_site_url() { // Multisite: the base URL. if (is_multisite()) { return network_home_url(); } else { return get_bloginfo_rss('url'); } } /** * Output a cat_name XML tag from a given category object * * @since 2.1.0 * * @param object $category Category Object */ function wxr_cat_name($category) { if (empty($category->name)) { return; } echo '<wp:cat_name>' . wxr_cdata($category->name) . '</wp:cat_name>'; } /** * Output a category_description XML tag from a given category object * * @since 2.1.0 * * @param object $category Category Object */ function wxr_category_description($category) { if (empty($category->description)) { return; } echo '<wp:category_description>' . wxr_cdata($category->description) . '</wp:category_description>'; } /** * Output a tag_name XML tag from a given tag object * * @since 2.3.0 * * @param object $tag Tag Object */ function wxr_tag_name($tag) { if (empty($tag->name)) { return; } echo '<wp:tag_name>' . wxr_cdata($tag->name) . '</wp:tag_name>'; } /** * Output a tag_description XML tag from a given tag object * * @since 2.3.0 * * @param object $tag Tag Object */ function wxr_tag_description($tag) { if (empty($tag->description)) { return; } echo '<wp:tag_description>' . wxr_cdata($tag->description) . '</wp:tag_description>'; } /** * Output a term_name XML tag from a given term object * * @since 2.9.0 * * @param object $term Term Object */ function wxr_term_name($term) { if (empty($term->name)) { return; } echo '<wp:term_name>' . wxr_cdata($term->name) . '</wp:term_name>'; } /** * Output a term_description XML tag from a given term object * * @since 2.9.0 * * @param object $term Term Object */ function wxr_term_description($term) { if (empty($term->description)) { return; } echo '<wp:term_description>' . wxr_cdata($term->description) . '</wp:term_description>'; } /** * Output list of authors with posts * * @since 3.1.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param array $post_ids Array of post IDs to filter the query by. Optional. */ function wxr_authors_list(array $post_ids = null) { global $wpdb; if (!empty($post_ids)) { $post_ids = array_map('absint', $post_ids); $and = 'AND ID IN ( ' . implode(', ', $post_ids) . ')'; } else { $and = ''; } $authors = array(); $results = $wpdb->get_results("SELECT DISTINCT post_author FROM {$wpdb->posts} WHERE post_status != 'auto-draft' {$and}"); foreach ((array) $results as $result) { $authors[] = get_userdata($result->post_author); } $authors = array_filter($authors); foreach ($authors as $author) { echo "\t<wp:author>"; echo '<wp:author_id>' . intval($author->ID) . '</wp:author_id>'; echo '<wp:author_login>' . wxr_cdata($author->user_login) . '</wp:author_login>'; echo '<wp:author_email>' . wxr_cdata($author->user_email) . '</wp:author_email>'; echo '<wp:author_display_name>' . wxr_cdata($author->display_name) . '</wp:author_display_name>'; echo '<wp:author_first_name>' . wxr_cdata($author->first_name) . '</wp:author_first_name>'; echo '<wp:author_last_name>' . wxr_cdata($author->last_name) . '</wp:author_last_name>'; echo "</wp:author>\n"; } } /** * Ouput all navigation menu terms * * @since 3.1.0 */ function wxr_nav_menu_terms() { $nav_menus = wp_get_nav_menus(); if (empty($nav_menus) || !is_array($nav_menus)) { return; } foreach ($nav_menus as $menu) { echo "\t<wp:term>"; echo '<wp:term_id>' . intval($menu->term_id) . '</wp:term_id>'; echo '<wp:term_taxonomy>nav_menu</wp:term_taxonomy>'; echo '<wp:term_slug>' . wxr_cdata($menu->slug) . '</wp:term_slug>'; wxr_term_name($menu); echo "</wp:term>\n"; } } /** * Output list of taxonomy terms, in XML tag format, associated with a post * * @since 2.3.0 */ function wxr_post_taxonomy() { $post = get_post(); $taxonomies = get_object_taxonomies($post->post_type); if (empty($taxonomies)) { return; } $terms = wp_get_object_terms($post->ID, $taxonomies); foreach ((array) $terms as $term) { echo "\t\t<category domain=\"{$term->taxonomy}\" nicename=\"{$term->slug}\">" . wxr_cdata($term->name) . "</category>\n"; } } /** * * @param bool $return_me * @param string $meta_key * @return bool */ function wxr_filter_postmeta($return_me, $meta_key) { if ('_edit_lock' == $meta_key) { $return_me = true; } return $return_me; } add_filter('wxr_export_skip_postmeta', 'wxr_filter_postmeta', 10, 2); 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 site. --> <!-- It contains information about your site's posts, pages, comments, categories, and other content. --> <!-- 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 site. --> <!-- To import this information into a WordPress site follow these steps: --> <!-- 1. Log in to that site as an administrator. --> <!-- 2. Go to Tools: Import in the WordPress admin panel. --> <!-- 3. Install the "WordPress" importer from the list. --> <!-- 4. Activate & Run Importer. --> <!-- 5. Upload this file using the form provided on that page. --> <!-- 6. You will first be asked to map the authors in this export file to users --> <!-- on the site. For each author, you may choose to map to an --> <!-- existing user on the site or to create a new user. --> <!-- 7. WordPress will then import each of the posts, pages, comments, categories, etc. --> <!-- contained in this file into your site. --> <?php the_generator('export'); ?> <rss version="2.0" xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?> /excerpt/" 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 date('D, d M Y H:i:s +0000'); ?> </pubDate> <language><?php bloginfo_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 wxr_authors_list($post_ids); ?> <?php foreach ($cats as $c) { ?> <wp:category><wp:term_id><?php echo intval($c->term_id); ?> </wp:term_id><wp:category_nicename><?php echo wxr_cdata($c->slug); ?> </wp:category_nicename><wp:category_parent><?php echo wxr_cdata($c->parent ? $cats[$c->parent]->slug : ''); ?> </wp:category_parent><?php wxr_cat_name($c); wxr_category_description($c); ?> </wp:category> <?php } foreach ($tags as $t) { ?> <wp:tag><wp:term_id><?php echo intval($t->term_id); ?> </wp:term_id><wp:tag_slug><?php echo wxr_cdata($t->slug); ?> </wp:tag_slug><?php wxr_tag_name($t); wxr_tag_description($t); ?> </wp:tag> <?php } foreach ($terms as $t) { ?> <wp:term><wp:term_id><?php echo wxr_cdata($t->term_id); ?> </wp:term_id><wp:term_taxonomy><?php echo wxr_cdata($t->taxonomy); ?> </wp:term_taxonomy><wp:term_slug><?php echo wxr_cdata($t->slug); ?> </wp:term_slug><wp:term_parent><?php echo wxr_cdata($t->parent ? $terms[$t->parent]->slug : ''); ?> </wp:term_parent><?php wxr_term_name($t); wxr_term_description($t); ?> </wp:term> <?php } if ('all' == $args['content']) { wxr_nav_menu_terms(); } ?> <?php /** This action is documented in libs/feed-rss2.php */ do_action('rss2_head'); ?> <?php if ($post_ids) { /** * @global WP_Query $wp_query */ global $wp_query; // Fake being in the loop. $wp_query->in_the_loop = true; // 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}"); // Begin Loop. foreach ($posts as $post) { setup_postdata($post); $is_sticky = is_sticky($post->ID) ? 1 : 0; ?> <item> <title><?php /** This filter is documented in libs/feed.php */ echo apply_filters('the_title_rss', $post->post_title); ?> </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 echo wxr_cdata(get_the_author_meta('login')); ?> </dc:creator> <guid isPermaLink="false"><?php the_guid(); ?> </guid> <description></description> <content:encoded><?php /** * Filter the post content used for WXR exports. * * @since 2.5.0 * * @param string $post_content Content of the current post. */ echo wxr_cdata(apply_filters('the_content_export', $post->post_content)); ?> </content:encoded> <excerpt:encoded><?php /** * Filter the post excerpt used for WXR exports. * * @since 2.6.0 * * @param string $post_excerpt Excerpt for the current post. */ echo wxr_cdata(apply_filters('the_excerpt_export', $post->post_excerpt)); ?> </excerpt:encoded> <wp:post_id><?php echo intval($post->ID); ?> </wp:post_id> <wp:post_date><?php echo wxr_cdata($post->post_date); ?> </wp:post_date> <wp:post_date_gmt><?php echo wxr_cdata($post->post_date_gmt); ?> </wp:post_date_gmt> <wp:comment_status><?php echo wxr_cdata($post->comment_status); ?> </wp:comment_status> <wp:ping_status><?php echo wxr_cdata($post->ping_status); ?> </wp:ping_status> <wp:post_name><?php echo wxr_cdata($post->post_name); ?> </wp:post_name> <wp:status><?php echo wxr_cdata($post->post_status); ?> </wp:status> <wp:post_parent><?php echo intval($post->post_parent); ?> </wp:post_parent> <wp:menu_order><?php echo intval($post->menu_order); ?> </wp:menu_order> <wp:post_type><?php echo wxr_cdata($post->post_type); ?> </wp:post_type> <wp:post_password><?php echo wxr_cdata($post->post_password); ?> </wp:post_password> <wp:is_sticky><?php echo intval($is_sticky); ?> </wp:is_sticky> <?php if ($post->post_type == 'attachment') { ?> <wp:attachment_url><?php echo wxr_cdata(wp_get_attachment_url($post->ID)); ?> </wp:attachment_url> <?php } wxr_post_taxonomy(); $postmeta = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->postmeta} WHERE post_id = %d", $post->ID)); foreach ($postmeta as $meta) { /** * Filter whether to selectively skip post meta used for WXR exports. * * Returning a truthy value to the filter will skip the current meta * object from being exported. * * @since 3.3.0 * * @param bool $skip Whether to skip the current post meta. Default false. * @param string $meta_key Current meta key. * @param object $meta Current meta object. */ if (apply_filters('wxr_export_skip_postmeta', false, $meta->meta_key, $meta)) { continue; } ?> <wp:postmeta> <wp:meta_key><?php echo wxr_cdata($meta->meta_key); ?> </wp:meta_key> <wp:meta_value><?php echo wxr_cdata($meta->meta_value); ?> </wp:meta_value> </wp:postmeta> <?php } $_comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_approved <> 'spam'", $post->ID)); $comments = array_map('get_comment', $_comments); foreach ($comments as $c) { ?> <wp:comment> <wp:comment_id><?php echo intval($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 wxr_cdata($c->comment_author_email); ?> </wp:comment_author_email> <wp:comment_author_url><?php echo esc_url_raw($c->comment_author_url); ?> </wp:comment_author_url> <wp:comment_author_IP><?php echo wxr_cdata($c->comment_author_IP); ?> </wp:comment_author_IP> <wp:comment_date><?php echo wxr_cdata($c->comment_date); ?> </wp:comment_date> <wp:comment_date_gmt><?php echo wxr_cdata($c->comment_date_gmt); ?> </wp:comment_date_gmt> <wp:comment_content><?php echo wxr_cdata($c->comment_content); ?> </wp:comment_content> <wp:comment_approved><?php echo wxr_cdata($c->comment_approved); ?> </wp:comment_approved> <wp:comment_type><?php echo wxr_cdata($c->comment_type); ?> </wp:comment_type> <wp:comment_parent><?php echo intval($c->comment_parent); ?> </wp:comment_parent> <wp:comment_user_id><?php echo intval($c->user_id); ?> </wp:comment_user_id> <?php $c_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->commentmeta} WHERE comment_id = %d", $c->comment_ID)); foreach ($c_meta as $meta) { /** * Filter whether to selectively skip comment meta used for WXR exports. * * Returning a truthy value to the filter will skip the current meta * object from being exported. * * @since 4.0.0 * * @param bool $skip Whether to skip the current comment meta. Default false. * @param string $meta_key Current meta key. * @param object $meta Current meta object. */ if (apply_filters('wxr_export_skip_commentmeta', false, $meta->meta_key, $meta)) { continue; } ?> <wp:commentmeta> <wp:meta_key><?php echo wxr_cdata($meta->meta_key); ?> </wp:meta_key> <wp:meta_value><?php echo wxr_cdata($meta->meta_value); ?> </wp:meta_value> </wp:commentmeta> <?php } ?> </wp:comment> <?php } ?> </item> <?php } } } ?> </channel> </rss> <?php }
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.'); } }
/** * Export function as it is defined in the original code of export_wp defined in wp-admin/includes/export.php */ private function export_wp($args = array()) { require_once ABSPATH . 'wp-admin/includes/export.php'; global $wpdb; /** * This is mostly the original code of export_wp defined in wp-admin/includes/export.php */ $defaults = array('post_type' => 'all', 'post__in' => false, 'author' => false, 'category' => false, 'start_date' => false, 'end_date' => false, 'status' => false, 'skip_comments' => false, 'file_item_count' => 1000); $args = wp_parse_args($args, $defaults); WP_CLI::line("Exporting with export_wp with arguments: " . var_export($args, true)); do_action('export_wp'); $sitename = sanitize_key(get_bloginfo('name')); if (!empty($sitename)) { $sitename .= '.'; } $append = array(date('Y-m-d')); foreach (array_keys($args) as $arg_key) { if ($defaults[$arg_key] != $args[$arg_key] && 'post__in' != $arg_key) { $append[] = "{$arg_key}-" . (string) $args[$arg_key]; } } $file_name_base = sanitize_file_name($sitename . 'wordpress.' . implode(".", $append)); if ('all' != $args['post_type'] && post_type_exists($args['post_type'])) { $ptype = get_post_type_object($args['post_type']); if (!$ptype->can_export) { $args['post_type'] = 'post'; } $where = $wpdb->prepare("{$wpdb->posts}.post_type = %s", $args['post_type']); } else { $post_types = get_post_types(array('can_export' => true)); $esses = array_fill(0, count($post_types), '%s'); $where = $wpdb->prepare("{$wpdb->posts}.post_type IN (" . implode(',', $esses) . ')', $post_types); } if ($args['status'] && ('post' == $args['post_type'] || 'page' == $args['post_type'])) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_status = %s", $args['status']); } else { $where .= " AND {$wpdb->posts}.post_status != 'auto-draft'"; } $join = ''; if ($args['category'] && 'post' == $args['post_type']) { if ($term = term_exists($args['category'], 'category')) { $join = "INNER JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)"; $where .= $wpdb->prepare(" AND {$wpdb->term_relationships}.term_taxonomy_id = %d", $term['term_taxonomy_id']); } } if ($args['author']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_author = %d", $args['author']); } if ($args['start_date']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_date >= %s", date('Y-m-d 00:00:00', strtotime($args['start_date']))); } if ($args['end_date']) { $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_date <= %s", date('Y-m-d 23:59:59', strtotime($args['end_date']))); } // grab a snapshot of post IDs, just in case it changes during the export if (empty($args['post__in'])) { $all_the_post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$join} WHERE {$where} ORDER BY post_date ASC, post_parent ASC"); } else { $all_the_post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE ID IN ({$args['post__in']}) ORDER BY post_date ASC, post_parent ASC"); } // Make sure we're getting all of the attachments for these posts too if ('all' != $args['post_type'] || !empty($args['post__in'])) { $all_post_ids_with_attachments = array(); while ($post_ids = array_splice($all_the_post_ids, 0, 100)) { $attachment_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'attachment' AND post_parent IN (" . implode(",", array_map('intval', $post_ids)) . ")"); $all_post_ids_with_attachments = array_merge($all_post_ids_with_attachments, $post_ids, (array) $attachment_ids); } $all_the_post_ids = $all_post_ids_with_attachments; } // get the requested terms ready, empty unless posts filtered by category or all content $cats = $tags = $terms = array(); if (isset($term) && $term) { $cat = get_term($term['term_id'], 'category'); $cats = array($cat->term_id => $cat); unset($term, $cat); } else { if ('all' == $args['post_type']) { $categories = (array) get_categories(array('get' => 'all')); $tags = (array) get_tags(array('get' => 'all')); $custom_taxonomies = get_taxonomies(array('_builtin' => false)); $custom_terms = (array) get_terms($custom_taxonomies, array('get' => 'all')); // put categories in order with no child going before its parent while ($cat = array_shift($categories)) { if ($cat->parent == 0 || isset($cats[$cat->parent])) { $cats[$cat->term_id] = $cat; } else { $categories[] = $cat; } } // put terms in order with no child going before its parent while ($t = array_shift($custom_terms)) { if ($t->parent == 0 || isset($terms[$t->parent])) { $terms[$t->term_id] = $t; } else { $custom_terms[] = $t; } } unset($categories, $custom_taxonomies, $custom_terms); } } // Load the functions available in wp-admin/includes/export.php ob_start(); export_wp(array('content' => 'page', 'start_date' => '1971-01-01', 'end_date' => '1971-01-02')); ob_end_clean(); WP_CLI::line('Exporting ' . count($all_the_post_ids) . ' items to be broken into ' . ceil(count($all_the_post_ids) / $args['file_item_count']) . ' files'); WP_CLI::line('Exporting ' . count($cats) . ' cateogries'); WP_CLI::line('Exporting ' . count($tags) . ' tags'); WP_CLI::line('Exporting ' . count($terms) . ' terms'); WP_CLI::line(); $file_count = 1; while ($post_ids = array_splice($all_the_post_ids, 0, $args['file_item_count'])) { $full_path = $this->wxr_path . $file_name_base . '.' . str_pad($file_count, 3, '0', STR_PAD_LEFT) . '.xml'; // Create the file if it doesn't exist if (!file_exists($full_path)) { touch($full_path); } if (!file_exists($full_path)) { WP_CLI::error("Failed to create file " . $full_path); exit; } else { WP_CLI::line('Writing to file ' . $full_path); } $progress = new \cli\progress\Bar('Exporting', count($post_ids)); $this->start_export(); 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 site. --> <!-- It contains information about your site's posts, pages, comments, categories, and other content. --> <!-- 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 site. --> <!-- To import this information into a WordPress site follow these steps: --> <!-- 1. Log in to that site as an administrator. --> <!-- 2. Go to Tools: Import in the WordPress admin panel. --> <!-- 3. Install the "WordPress" importer from the list. --> <!-- 4. Activate & Run Importer. --> <!-- 5. Upload this file using the form provided on that page. --> <!-- 6. You will first be asked to map the authors in this export file to users --> <!-- on the site. For each author, you may choose to map to an --> <!-- existing user on the site or to create a new user. --> <!-- 7. WordPress will then import each of the posts, pages, comments, categories, etc. --> <!-- contained in this file into your site. --> <?php the_generator('export'); ?> <rss version="2.0" xmlns:excerpt="http://wordpress.org/export/<?php echo WXR_VERSION; ?> /excerpt/" 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 date('D, d M Y H:i:s +0000'); ?> </pubDate> <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 wxr_authors_list(); ?> <?php foreach ($cats as $c) { ?> <wp:category><wp:term_id><?php echo $c->term_id; ?> </wp:term_id><wp:category_nicename><?php echo $c->slug; ?> </wp:category_nicename><wp:category_parent><?php echo $c->parent ? $cats[$c->parent]->slug : ''; ?> </wp:category_parent><?php wxr_cat_name($c); wxr_category_description($c); ?> </wp:category> <?php } foreach ($tags as $t) { ?> <wp:tag><wp:term_id><?php echo $t->term_id; ?> </wp:term_id><wp:tag_slug><?php echo $t->slug; ?> </wp:tag_slug><?php wxr_tag_name($t); wxr_tag_description($t); ?> </wp:tag> <?php } foreach ($terms as $t) { ?> <wp:term><wp:term_id><?php echo $t->term_id; ?> </wp:term_id><wp:term_taxonomy><?php echo $t->taxonomy; ?> </wp:term_taxonomy><wp:term_slug><?php echo $t->slug; ?> </wp:term_slug><wp:term_parent><?php echo $t->parent ? $terms[$t->parent]->slug : ''; ?> </wp:term_parent><?php wxr_term_name($t); wxr_term_description($t); ?> </wp:term> <?php } if ('all' == $args['post_type']) { wxr_nav_menu_terms(); } ?> <?php do_action('rss2_head'); ?> <?php $this->flush_export($full_path, false); ?> <?php if ($post_ids) { global $wp_query, $post; $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}"); // Begin Loop foreach ($posts as $post) { $progress->tick(); setup_postdata($post); $is_sticky = is_sticky($post->ID) ? 1 : 0; ?> <item> <title><?php echo apply_filters('the_title_rss', $post->post_title); ?> </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 echo get_the_author_meta('login'); ?> </dc:creator> <guid isPermaLink="false"><?php esc_url(the_guid()); ?> </guid> <description></description> <content:encoded><?php echo wxr_cdata(apply_filters('the_content_export', $post->post_content)); ?> </content:encoded> <excerpt:encoded><?php echo wxr_cdata(apply_filters('the_excerpt_export', $post->post_excerpt)); ?> </excerpt: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> <wp:post_password><?php echo $post->post_password; ?> </wp:post_password> <wp:is_sticky><?php echo $is_sticky; ?> </wp:is_sticky> <?php if ($post->post_type == 'attachment') { ?> <wp:attachment_url><?php echo wp_get_attachment_url($post->ID); ?> </wp:attachment_url> <?php } wxr_post_taxonomy(); $postmeta = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->postmeta} WHERE post_id = %d", $post->ID)); foreach ($postmeta as $meta) { if (apply_filters('wxr_export_skip_postmeta', false, $meta->meta_key, $meta)) { continue; } ?> <wp:postmeta> <wp:meta_key><?php echo $meta->meta_key; ?> </wp:meta_key> <wp:meta_value><?php echo wxr_cdata($meta->meta_value); ?> </wp:meta_value> </wp:postmeta> <?php } if (false === $args['skip_comments']) { $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = %d AND comment_approved <> 'spam'", $post->ID)); 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 esc_url_raw($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 wxr_cdata($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_user_id><?php echo $c->user_id; ?> </wp:comment_user_id> <?php $c_meta = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->commentmeta} WHERE comment_id = %d", $c->comment_ID)); foreach ($c_meta as $meta) { ?> <wp:commentmeta> <wp:meta_key><?php echo $meta->meta_key; ?> </wp:meta_key> <wp:meta_value><?php echo wxr_cdata($meta->meta_value); ?> </wp:meta_value> </wp:commentmeta> <?php } ?> </wp:comment> <?php } } ?> </item> <?php $this->flush_export($full_path); } } } ?> </channel> </rss> <?php $this->flush_export($full_path); $this->end_export(); $this->stop_the_insanity(); $progress->finish(); $file_count++; } WP_CLI::success("All done with export"); }
?> </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); ?> </updated> <published><?php echo get_post_time('Y-m-d\\TH:i:s\\Z', true);
include('./wp-config.php'); if ( isset( $_GET['rsd'] ) ) { // http://archipelago.phrasewise.com/rsd header('Content-type: text/xml; charset=' . get_option('blog_charset'), true); ?> <?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd"> <service> <engineName>WordPress</engineName> <engineLink>http://wordpress.org/</engineLink> <homePageLink><?php bloginfo_rss('url') ?></homePageLink> <apis> <api name="Movable Type" blogID="1" preferred="true" apiLink="<?php bloginfo_rss('url') ?>/xmlrpc.php" /> <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('url') ?>/xmlrpc.php" /> <api name="Blogger" blogID="1" preferred="false" apiLink="<?php bloginfo_rss('url') ?>/xmlrpc.php" /> </apis> </service> </rsd> <?php exit; } include_once(ABSPATH . 'wp-admin/admin-functions.php'); include_once(ABSPATH . WPINC . '/class-IXR.php'); // Turn off all warnings and errors. // error_reporting(0); $post_default_title = ""; // posts submitted via the xmlrpc interface get that title