$author = esc_html(get_the_author());
        // Episode content (with iframes removed)
        $content = get_the_content_feed('rss2');
        $content = preg_replace('/<\\/?iframe(.|\\s)*?>/', '', $content);
        // iTunes summary does not allow any HTML and must be shorter than 4000 characters
        $itunes_summary = strip_tags(get_the_content());
        $itunes_summary = str_replace(array('&', '>', '<', '\'', '"', '`'), array(__('and', 'ss-podcasting'), '', '', '', '', ''), $itunes_summary);
        $itunes_summary = mb_substr($itunes_summary, 0, 3949);
        // iTunes short description does not allow any HTML and must be shorter than 4000 characters
        $itunes_excerpt = strip_tags(get_the_excerpt());
        $itunes_excerpt = str_replace(array('&', '>', '<', '\'', '"', '`', '[andhellip;]', '[&hellip;]'), array('and', '', '', '', '', '', '', ''), $itunes_excerpt);
        $itunes_excerpt = mb_substr($itunes_excerpt, 0, 224);
        ?>
	<item>
		<title><?php 
        esc_html(the_title_rss());
        ?>
</title>
		<link><?php 
        esc_url(the_permalink_rss());
        ?>
</link>
		<pubDate><?php 
        echo esc_html(mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false));
        ?>
</pubDate>
		<dc:creator><?php 
        echo $author;
        ?>
</dc:creator>
		<guid isPermaLink="false"><?php 
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	<?php do_action('rss2_ns'); ?>
>

<channel>
	<title><?php bloginfo_rss('name'); ?></title>
	<link><?php bloginfo_rss('url') ?></link>
	<description><?php bloginfo_rss("description") ?></description>
	<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate>
	<generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator>
	<language><?php echo get_option('rss_language'); ?></language>
	<?php do_action('rss2_head'); ?>
	<?php while( have_posts()) : the_post(); ?>
	<item>
		<title><?php the_title_rss() ?></title>
		<link><?php permalink_single_rss() ?></link>
		<comments><?php comments_link(); ?></comments>
		<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
		<dc:creator><?php the_author() ?></dc:creator>
		<?php the_category_rss() ?>

		<guid isPermaLink="false"><?php the_guid(); ?></guid>
<?php if (get_option('rss_use_excerpt')) : ?>
		<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
<?php else : ?>
		<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
	<?php if ( strlen( $post->post_content ) > 0 ) : ?>
		<content:encoded><![CDATA[<?php the_content() ?>]]></content:encoded>
	<?php else : ?>
		<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="<?php echo get_option('rss_language'); ?>"
  >
	<title><?php bloginfo_rss('name') ?></title>
	<link rel="alternate" type="text/html" href="<?php bloginfo_rss('home') ?>" />
	<tagline><?php bloginfo_rss("description") ?></tagline>
	<modified><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT')); ?></modified>
	<copyright>Copyright <?php echo mysql2date('Y', get_lastpostdate('blog')); ?></copyright>
	<generator url="http://wordpress.org/" version="<?php bloginfo_rss('version'); ?>">WordPress</generator>
	
	<?php $items_count = 0; if ($posts) { foreach ($posts as $post) { start_wp(); ?>
	<entry>
	  	<author>
			<name><?php the_author() ?></name>
		</author>
		<title type="text/html" mode="escaped"><![CDATA[<?php the_title_rss() ?>]]></title>
		<link rel="alternate" type="text/html" href="<?php permalink_single_rss() ?>" />
		<id><?php the_guid(); ?></id>
		<modified><?php the_time('Y-m-d\TH:i:s\Z'); ?></modified>
		<issued>  <?php the_time('Y-m-d\TH:i:s\Z'); ?></issued>
		<?php the_category_rss('rdf') ?>
		<summary type="<?php bloginfo('html_type'); ?>" mode="escaped"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary>
<?php if (!get_settings('rss_use_excerpt')) : ?>
	<?php if ( strlen( $post->post_content ) ) : ?>
		<content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content>
	<?php else : ?>
		<content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></content>
	<?php endif; ?>
<?php else : ?>
		<content type="<?php bloginfo('html_type'); ?>" mode="escaped" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_excerpt_rss() ?>]]></content>
<?php endif; ?>
	function get_entry($postID, $post_type = 'post') {
		log_app('function',"get_entry($postID, '$post_type')");
		ob_start();
		global $posts, $post, $wp_query, $wp, $wpdb, $blog_id, $post_cache;
		switch($post_type) {
			case 'post':
				$varname = 'p';
				break;
			case 'attachment':
				$varname = 'attachment_id';
				break;
		}
		query_posts($varname . '=' . $postID);
		if ( have_posts() ) : while ( have_posts() ) : the_post();
		$post = $GLOBALS['post'];
		?>
		<?php log_app('$post',print_r($GLOBALS['post'],true)); ?>
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://purl.org/atom/app#" xml:lang="<?php echo get_option('rss_language'); ?>">
	<id><?php the_guid($post->ID); ?></id>
	<title type="html"><![CDATA[<?php the_title_rss() ?>]]></title>

	<updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated>
	<published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>
	<app:control>
		<app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft>
	</app:control>
	<author>
		<name><?php the_author()?></name>
		<email><?php the_author_email()?></email>
		<uri><?php the_author_url()?></uri>
	</author>
<?php if($GLOBALS['post']->post_type == 'attachment') { ?>
	<link rel="edit" href="<?php $this->the_entry_url() ?>" />
	<link rel="edit-media" href="<?php $this->the_media_url() ?>" />
	<content type="<?php echo $GLOBALS['post']->post_mime_type ?>" src="<?php the_guid(); ?>"/>
<?php } else { ?>
	<link href="<?php permalink_single_rss() ?>" />
	<link rel="edit" href="<?php $this->the_entry_url() ?>" />
<?php } ?>
<?php foreach(get_the_category() as $category) { ?>
	<category scheme="<?php bloginfo_rss('home') ?>" term="<?php echo $category->cat_name?>" />
	<summary type="html"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary>
<?php }
	if ( strlen( $GLOBALS['post']->post_content ) ) : ?>
	<content type="html"><![CDATA[<?php echo get_the_content('', 0, '') ?>]]></content>
<?php endif; ?>
</entry>
<?php
		$entry = ob_get_contents();
		break;
		endwhile;
		else:
			$this->auth_required(__("Access Denied."));
		endif;
		ob_end_clean();

		log_app('get_entry returning:',$entry);
		return $entry; 
	}
function export_wp() {
global $wpdb, $posts, $post;

$filename = 'wordpress.' . date('Y-m-d') . '.xml';

header('Content-Description: File Transfer');
header("Content-Disposition: attachment; filename=$filename");
header('Content-type: text/xml; charset=' . get_option('blog_charset'), true);

$where = '';
if ( isset( $_GET['author'] ) && $_GET['author'] != 'all' ) {
	$author_id = (int) $_GET['author'];
	$where = " WHERE post_author = '$author_id' ";
}

$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts $where ORDER BY post_date_gmt ASC");

$categories = (array) $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories LEFT JOIN $wpdb->post2cat ON (category_id = cat_id) LEFT JOIN $wpdb->posts ON (post_id <=> id) $where GROUP BY cat_id");

function wxr_missing_parents($categories) {
	if ( !is_array($categories) || empty($categories) )
		return array();

	foreach ( $categories as $category )
		$parents[$category->cat_ID] = $category->category_parent;

	$parents = array_unique(array_diff($parents, array_keys($parents)));

	if ( $zero = array_search('0', $parents) )
		unset($parents[$zero]);

	return $parents;
}

while ( $parents = wxr_missing_parents($categories) ) {
	$found_parents = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename, category_description, category_parent, posts_private, links_private FROM $wpdb->categories WHERE cat_ID IN (" . join(', ', $parents) . ")");
	if ( is_array($found_parents) && count($found_parents) )
		$categories = array_merge($categories, $found_parents);
	else
		break;
}

// Put them in order to be inserted with no child going before its parent
$pass = 0;
$passes = 1000 + count($categories);
while ( ( $cat = array_shift($categories) ) && ++$pass < $passes ) {
	if ( $cat->category_parent == 0 || isset($cats[$cat->category_parent]) ) {
		$cats[$cat->cat_ID] = $cat;
	} else {
		$categories[] = $cat;
	}
}
unset($categories);

function wxr_cdata($str) {
	if ( seems_utf8($str) == false )
		$str = utf8_encode($str);

	// $str = ent2ncr(wp_specialchars($str));

	$str = "<![CDATA[$str" . ( ( substr($str, -1) == ']' ) ? ' ' : '') . "]]>";

	return $str;
}

function wxr_cat_name($c) {
	if ( empty($c->cat_name) )
		return;

	echo '<wp:cat_name>' . wxr_cdata($c->cat_name) . '</wp:cat_name>';
}

function wxr_category_description($c) {
	if ( empty($c->category_description) )
		return;

	echo '<wp:category_description>' . wxr_cdata($c->category_description) . '</wp:category_description>';
}

print '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";

?>

<!--
	This is a WordPress eXtended RSS file generated by WordPress as an export of 
	your blog. It contains information about your blog's posts, comments, and 
	categories. You may use this file to transfer that content from one site to 
	another. This file is not intended to serve as a complete backup of your 
	blog.
	
	To import this information into a WordPress blog follow these steps:
	
	1.	Log into that blog as an administrator.
	2.	Go to Manage > Import in the blog's admin.
	3.	Choose "WordPress" from the list of importers.
	4.	Upload this file using the form provided on that page.
	5.	You will first be asked to map the authors in this export file to users 
		on the blog. For each author, you may choose to map an existing user on 
		the blog or to create a new user.
	6.	WordPress will then import each of the posts, comments, and categories 
		contained in this file onto your blog.
-->

<!-- generator="wordpress/<?php bloginfo_rss('version') ?>" created="<?php echo date('Y-m-d H:m'); ?>"-->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/1.0/"
>

<channel>
	<title><?php bloginfo_rss('name'); ?></title>
	<link><?php bloginfo_rss('url') ?></link>
	<description><?php bloginfo_rss("description") ?></description>
	<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></pubDate>
	<generator>http://wordpress.org/?v=<?php bloginfo_rss('version'); ?></generator>
	<language><?php echo get_option('rss_language'); ?></language>
<?php if ( $cats ) : foreach ( $cats as $c ) : ?>
	<wp:category><wp:category_nicename><?php echo $c->category_nicename; ?></wp:category_nicename><wp:category_parent><?php echo $c->category_parent ? $cats[$c->category_parent]->cat_name : ''; ?></wp:category_parent><wp:posts_private><?php echo $c->posts_private ? '1' : '0'; ?></wp:posts_private><wp:links_private><?php echo $c->links_private ? '1' : '0'; ?></wp:links_private><?php wxr_cat_name($c); ?><?php wxr_category_description($c); ?></wp:category>
<?php endforeach; endif; ?>
	<?php do_action('rss2_head'); ?>
	<?php if ($posts) { foreach ($posts as $post) { start_wp(); ?>
<item>
<title><?php the_title_rss() ?></title>
<link><?php permalink_single_rss() ?></link>
<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false); ?></pubDate>
<dc:creator><?php the_author() ?></dc:creator>
<?php the_category_rss() ?>

<guid isPermaLink="false"><?php the_guid(); ?></guid>
<description></description>
<content:encoded><![CDATA[<?php echo $post->post_content ?>]]></content:encoded>
<wp:post_id><?php echo $post->ID; ?></wp:post_id>
<wp:post_date><?php echo $post->post_date; ?></wp:post_date>
<wp:post_date_gmt><?php echo $post->post_date_gmt; ?></wp:post_date_gmt>
<wp:comment_status><?php echo $post->comment_status; ?></wp:comment_status>
<wp:ping_status><?php echo $post->ping_status; ?></wp:ping_status>
<wp:post_name><?php echo $post->post_name; ?></wp:post_name>
<wp:status><?php echo $post->post_status; ?></wp:status>
<wp:post_parent><?php echo $post->post_parent; ?></wp:post_parent>
<wp:menu_order><?php echo $post->menu_order; ?></wp:menu_order>
<wp:post_type><?php echo $post->post_type; ?></wp:post_type>
<?php
$postmeta = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE post_id = $post->ID");
if ( $postmeta ) {
?>
<?php foreach( $postmeta as $meta ) { ?>
<wp:postmeta>
<wp:meta_key><?php echo $meta->meta_key; ?></wp:meta_key>
<wp:meta_value><?Php echo $meta->meta_value; ?></wp:meta_value>
</wp:postmeta>
<?php } ?>
<?php } ?>
<?php
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE comment_post_ID = $post->ID");
if ( $comments ) { foreach ( $comments as $c ) { ?>
<wp:comment>
<wp:comment_id><?php echo $c->comment_ID; ?></wp:comment_id>
<wp:comment_author><?php echo $c->comment_author; ?></wp:comment_author>
<wp:comment_author_email><?php echo $c->comment_author_email; ?></wp:comment_author_email>
<wp:comment_author_url><?php echo $c->comment_author_url; ?></wp:comment_author_url>
<wp:comment_author_IP><?php echo $c->comment_author_IP; ?></wp:comment_author_IP>
<wp:comment_date><?php echo $c->comment_date; ?></wp:comment_date>
<wp:comment_date_gmt><?php echo $c->comment_date_gmt; ?></wp:comment_date_gmt>
<wp:comment_content><?php echo $c->comment_content; ?></wp:comment_content>
<wp:comment_approved><?php echo $c->comment_approved; ?></wp:comment_approved>
<wp:comment_type><?php echo $c->comment_type; ?></wp:comment_type>
<wp:comment_parent><?php echo $c->comment_parent; ?></wp:comment_parent>
</wp:comment>
<?php } } ?>
	</item>
<?php } } ?>
</channel>
</rss>
<?php
	die();
}
/**
 * Generate the feed
 * 
 * @since 3.3
 */
function wprss_addfeed_do_feed($in)
{
    // Prepare the post query
    /*
            $wprss_custom_feed_query = apply_filters(            
                    'wprss_custom_feed_query',
                    array(
                    'post_type'   => 'wprss_feed_item', 
                    'post_status' => 'publish',
                    'cache_results' => false,   // disable caching
                ) 
                
            );*/
    $wprss_custom_feed_query = wprss_get_feed_items_query(apply_filters('wprss_custom_feed_query', array('get-args' => TRUE, 'no-paged' => TRUE, 'feed_limit' => 0)));
    // Suppress caching
    $wprss_custom_feed_query['cache_results'] = FALSE;
    // Get options
    $options = get_option('wprss_settings_general');
    if ($options !== FALSE) {
        // If options exist, get the limit
        $limit = $options['custom_feed_limit'];
        if ($limit !== FALSE) {
            // if limit exists, set the query limit
            $wprss_custom_feed_query['posts_per_page'] = $limit;
        }
    }
    // Submit the query to get latest feed items
    query_posts($wprss_custom_feed_query);
    $custom_feed_title = wprss_get_general_setting('custom_feed_title');
    $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
    header("{$protocol} 200 OK");
    // Send content header and start ATOM output
    header('Content-Type: application/rss+xml');
    // Disabling caching
    header('Cache-Control: no-cache, no-store, must-revalidate');
    // HTTP 1.1.
    header('Pragma: no-cache');
    // HTTP 1.0.
    header('Expires: 0');
    // Proxies.
    echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?>';
    ?>

        <rss version="2.0"
            xmlns:content="http://purl.org/rss/1.0/modules/content/"
            xmlns:wfw="http://wellformedweb.org/CommentAPI/"
            xmlns:dc="http://purl.org/dc/elements/1.1/"
            xmlns:atom="http://www.w3.org/2005/Atom"
            xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
            xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
            xmlns:media="http://search.yahoo.com/mrss/" >
            <channel>
                <title><?php 
    echo $custom_feed_title;
    ?>
</title>
                <description></description>
                <link><?php 
    echo get_site_url();
    ?>
</link>
                <atom:link href="<?php 
    echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
    ?>
" rel="self" type="application/rss+xml" />
                <?php 
    // Start the Loop
    while (have_posts()) {
        the_post();
        $source = get_post_meta(get_the_ID(), 'wprss_feed_id', TRUE);
        $permalink = get_post_meta(get_the_ID(), 'wprss_item_permalink', true);
        ?>
 
                <item>
                        <title><![CDATA[<?php 
        the_title_rss();
        ?>
]]></title>
                        <link><?php 
        echo $permalink;
        ?>
</link>
                        <guid isPermaLink="true"><?php 
        echo $permalink;
        ?>
</guid>
                        <pubDate><?php 
        echo get_post_time(DATE_RSS);
        ?>
</pubDate>
                        <description><![CDATA[<?php 
        the_content();
        ?>
]]></description>
                        <content:encoded><![CDATA[<?php 
        the_content();
        ?>
]]></content:encoded>
                        <source url="<?php 
        echo get_post_meta($source, 'wprss_url', TRUE);
        ?>
"><?php 
        echo get_the_title($source);
        ?>
</source>
                        <?php 
        do_action('wprss_custom_feed_entry', get_the_ID());
        ?>
 
                </item>
                <?php 
    }
    // END OF LOOP
    ?>
 
            </channel>
        </rss>
        <?php 
}
Example #7
0
function export_wp()
{
    global $wpdb, $post_ids, $post;
    do_action('export_wp');
    $filename = 'wordpress.' . date('Y-m-d') . '.xml';
    header('Content-Description: File Transfer');
    header("Content-Disposition: attachment; filename={$filename}");
    header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
    $where = '';
    if (isset($_GET['author']) && $_GET['author'] != 'all') {
        $author_id = (int) $_GET['author'];
        $where = " WHERE post_author = '{$author_id}' ";
    }
    // grab a snapshot of post IDs, just in case it changes during the export
    $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC");
    $categories = (array) get_categories('get=all');
    $tags = (array) get_tags('get=all');
    function wxr_missing_parents($categories)
    {
        if (!is_array($categories) || empty($categories)) {
            return array();
        }
        foreach ($categories as $category) {
            $parents[$category->term_id] = $category->parent;
        }
        $parents = array_unique(array_diff($parents, array_keys($parents)));
        if ($zero = array_search('0', $parents)) {
            unset($parents[$zero]);
        }
        return $parents;
    }
    while ($parents = wxr_missing_parents($categories)) {
        $found_parents = get_categories("include=" . join(', ', $parents));
        if (is_array($found_parents) && count($found_parents)) {
            $categories = array_merge($categories, $found_parents);
        } else {
            break;
        }
    }
    // Put them in order to be inserted with no child going before its parent
    $pass = 0;
    $passes = 1000 + count($categories);
    while (($cat = array_shift($categories)) && ++$pass < $passes) {
        if ($cat->parent == 0 || isset($cats[$cat->parent])) {
            $cats[$cat->term_id] = $cat;
        } else {
            $categories[] = $cat;
        }
    }
    unset($categories);
    function wxr_cdata($str)
    {
        if (seems_utf8($str) == false) {
            $str = utf8_encode($str);
        }
        // $str = ent2ncr(wp_specialchars($str));
        $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>";
        return $str;
    }
    function wxr_cat_name($c)
    {
        if (empty($c->name)) {
            return;
        }
        echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>';
    }
    function wxr_category_description($c)
    {
        if (empty($c->description)) {
            return;
        }
        echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>';
    }
    function wxr_tag_name($t)
    {
        if (empty($t->name)) {
            return;
        }
        echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>';
    }
    function wxr_tag_description($t)
    {
        if (empty($t->description)) {
            return;
        }
        echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>';
    }
    function wxr_post_taxonomy()
    {
        $categories = get_the_category();
        $tags = get_the_tags();
        $cat_names = array();
        $tag_names = array();
        $the_list = '';
        $filter = 'rss';
        if (!empty($categories)) {
            foreach ((array) $categories as $category) {
                $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
                $the_list .= "\n\t\t<category><![CDATA[{$cat_name}]]></category>\n";
            }
        }
        if (!empty($tags)) {
            foreach ((array) $tags as $tag) {
                $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
                $the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[{$tag_name}]]></category>\n";
            }
        }
        echo $the_list;
    }
    echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";
    ?>
<!-- This is a WordPress eXtended RSS file generated by WordPress as an export of your blog. -->
<!-- It contains information about your blog's posts, comments, and categories. -->
<!-- You may use this file to transfer that content from one site to another. -->
<!-- This file is not intended to serve as a complete backup of your blog. -->

<!-- To import this information into a WordPress blog follow these steps. -->
<!-- 1. Log into that blog as an administrator. -->
<!-- 2. Go to Manage: Import in the blog's admin panels. -->
<!-- 3. Choose "WordPress" from the list. -->
<!-- 4. Upload this file using the form provided on that page. -->
<!-- 5. You will first be asked to map the authors in this export file to users -->
<!--    on the blog.  For each author, you may choose to map to an -->
<!--    existing user on the blog or to create a new user -->
<!-- 6. WordPress will then import each of the posts, comments, and categories -->
<!--    contained in this file into your blog -->

<!-- generator="wordpress/<?php 
    bloginfo_rss('version');
    ?>
" created="<?php 
    echo date('Y-m-d H:i');
    ?>
"-->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/1.0/"
>

<channel>
	<title><?php 
    bloginfo_rss('name');
    ?>
</title>
	<link><?php 
    bloginfo_rss('url');
    ?>
</link>
	<description><?php 
    bloginfo_rss("description");
    ?>
</description>
	<pubDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false);
    ?>
</pubDate>
	<generator>http://wordpress.org/?v=<?php 
    bloginfo_rss('version');
    ?>
</generator>
	<language><?php 
    echo get_option('rss_language');
    ?>
</language>
<?php 
    if ($cats) {
        foreach ($cats as $c) {
            ?>
	<wp:category><wp:category_nicename><?php 
            echo $c->slug;
            ?>
</wp:category_nicename><wp:category_parent><?php 
            echo $c->parent ? $cats[$c->parent]->name : '';
            ?>
</wp:category_parent><?php 
            wxr_cat_name($c);
            wxr_category_description($c);
            ?>
</wp:category>
<?php 
        }
    }
    if ($tags) {
        foreach ($tags as $t) {
            ?>
	<wp:tag><wp:tag_slug><?php 
            echo $t->slug;
            ?>
</wp:tag_slug><?php 
            wxr_tag_name($t);
            wxr_tag_description($t);
            ?>
</wp:tag>
<?php 
        }
    }
    ?>
	<?php 
    do_action('rss2_head');
    ?>
	<?php 
    if ($post_ids) {
        global $wp_query;
        $wp_query->in_the_loop = true;
        // Fake being in the loop.
        // fetch 20 posts at a time rather than loading the entire table into memory
        while ($next_posts = array_splice($post_ids, 0, 20)) {
            $where = "WHERE ID IN (" . join(',', $next_posts) . ")";
            $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC");
            foreach ($posts as $post) {
                setup_postdata($post);
                ?>
<item>
<title><?php 
                the_title_rss();
                ?>
</title>
<link><?php 
                the_permalink_rss();
                ?>
</link>
<pubDate><?php 
                echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false);
                ?>
</pubDate>
<dc:creator><?php 
                the_author();
                ?>
</dc:creator>
<?php 
                wxr_post_taxonomy();
                ?>

<guid isPermaLink="false"><?php 
                the_guid();
                ?>
</guid>
<description></description>
<content:encoded><![CDATA[<?php 
                echo $post->post_content;
                ?>
]]></content:encoded>
<wp:post_id><?php 
                echo $post->ID;
                ?>
</wp:post_id>
<wp:post_date><?php 
                echo $post->post_date;
                ?>
</wp:post_date>
<wp:post_date_gmt><?php 
                echo $post->post_date_gmt;
                ?>
</wp:post_date_gmt>
<wp:comment_status><?php 
                echo $post->comment_status;
                ?>
</wp:comment_status>
<wp:ping_status><?php 
                echo $post->ping_status;
                ?>
</wp:ping_status>
<wp:post_name><?php 
                echo $post->post_name;
                ?>
</wp:post_name>
<wp:status><?php 
                echo $post->post_status;
                ?>
</wp:status>
<wp:post_parent><?php 
                echo $post->post_parent;
                ?>
</wp:post_parent>
<wp:menu_order><?php 
                echo $post->menu_order;
                ?>
</wp:menu_order>
<wp:post_type><?php 
                echo $post->post_type;
                ?>
</wp:post_type>
<?php 
                $postmeta = $wpdb->get_results("SELECT * FROM {$wpdb->postmeta} WHERE post_id = {$post->ID}");
                if ($postmeta) {
                    foreach ($postmeta as $meta) {
                        ?>
<wp:postmeta>
<wp:meta_key><?php 
                        echo $meta->meta_key;
                        ?>
</wp:meta_key>
<wp:meta_value><?php 
                        echo $meta->meta_value;
                        ?>
</wp:meta_value>
</wp:postmeta>
<?php 
                    }
                }
                $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}");
                if ($comments) {
                    foreach ($comments as $c) {
                        ?>
<wp:comment>
<wp:comment_id><?php 
                        echo $c->comment_ID;
                        ?>
</wp:comment_id>
<wp:comment_author><?php 
                        echo wxr_cdata($c->comment_author);
                        ?>
</wp:comment_author>
<wp:comment_author_email><?php 
                        echo $c->comment_author_email;
                        ?>
</wp:comment_author_email>
<wp:comment_author_url><?php 
                        echo $c->comment_author_url;
                        ?>
</wp:comment_author_url>
<wp:comment_author_IP><?php 
                        echo $c->comment_author_IP;
                        ?>
</wp:comment_author_IP>
<wp:comment_date><?php 
                        echo $c->comment_date;
                        ?>
</wp:comment_date>
<wp:comment_date_gmt><?php 
                        echo $c->comment_date_gmt;
                        ?>
</wp:comment_date_gmt>
<wp:comment_content><?php 
                        echo $c->comment_content;
                        ?>
</wp:comment_content>
<wp:comment_approved><?php 
                        echo $c->comment_approved;
                        ?>
</wp:comment_approved>
<wp:comment_type><?php 
                        echo $c->comment_type;
                        ?>
</wp:comment_type>
<wp:comment_parent><?php 
                        echo $c->comment_parent;
                        ?>
</wp:comment_parent>
</wp:comment>
<?php 
                    }
                }
                ?>
	</item>
<?php 
            }
        }
    }
    ?>
</channel>
</rss>
<?php 
    die;
}
Example #8
0
        function export_wp($cats)
        {
            global $wpdb, $posts, $post;
            $filename = 'wordpress.' . date('Y-m-d') . '.xml';
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header("Content-Disposition: attachment; filename={$filename}");
            header('Content-type: text/xml; charset=' . get_settings('blog_charset'), true);
            $posts = query_posts('');
            $cats = implode(',', $cats);
            $postswithcats = $wpdb->get_col("SELECT DISTINCT(post_id) FROM " . $wpdb->post2cat . " WHERE category_id IN ({$cats})");
            $postcats = implode(',', $postswithcats);
            $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE ID IN ({$postcats}) ORDER BY post_date_gmt ASC");
            ?>
<!-- generator="wordpress/<?php 
            bloginfo_rss('version');
            ?>
" created="<?php 
            echo date('Y-m-d H:m');
            ?>
"-->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/1.0/"
>

<channel>
	<title><?php 
            bloginfo_rss('name');
            ?>
</title>
	<link><?php 
            bloginfo_rss('url');
            ?>
</link>
	<description><?php 
            bloginfo_rss("description");
            ?>
</description>
	<pubDate><?php 
            echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false);
            ?>
</pubDate>
	<generator>http://wordpress.org/?v=<?php 
            bloginfo_rss('version');
            ?>
</generator>
	<language><?php 
            echo get_option('rss_language');
            ?>
</language>
	<?php 
            do_action('rss2_head');
            if ($posts) {
                foreach ($posts as $post) {
                    start_wp();
                    ?>
<item>
<title><?php 
                    the_title_rss();
                    ?>
</title>
<link><?php 
                    permalink_single_rss();
                    ?>
</link>
<pubDate><?php 
                    echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false);
                    ?>
</pubDate>
<dc:creator><?php 
                    the_author();
                    ?>
</dc:creator>
<?php 
                    the_category_rss();
                    ?>

<guid isPermaLink="false"><?php 
                    the_guid();
                    ?>
</guid>
<description></description>
<wp:excerpt><![CDATA[<?php 
                    echo $post->post_excerpt;
                    ?>
]]></wp:excerpt>
<content:encoded><![CDATA[<?php 
                    echo $post->post_content;
                    ?>
]]></content:encoded>
<wp:post_date><?php 
                    echo $post->post_date;
                    ?>
</wp:post_date>
<wp:post_date_gmt><?php 
                    echo $post->post_date_gmt;
                    ?>
</wp:post_date_gmt>
<wp:comment_status><?php 
                    echo $post->comment_status;
                    ?>
</wp:comment_status>
<wp:ping_status><?php 
                    echo $post->ping_status;
                    ?>
</wp:ping_status>
<wp:post_name><?php 
                    echo $post->post_name;
                    ?>
</wp:post_name>
<wp:status><?php 
                    echo $post->post_status;
                    ?>
</wp:status>
<wp:post_parent><?php 
                    echo $post->post_parent;
                    ?>
</wp:post_parent>
<wp:post_type><?php 
                    echo $post->post_type;
                    ?>
</wp:post_type>
<?php 
                    $postmeta = $wpdb->get_results("SELECT * FROM {$wpdb->postmeta} WHERE post_id = {$post->ID}");
                    if ($postmeta) {
                        foreach ($postmeta as $meta) {
                            ?>
	
<wp:postmeta>
<wp:meta_key><?php 
                            echo $meta->meta_key;
                            ?>
</wp:meta_key>
<wp:meta_value><?php 
                            echo $meta->meta_value;
                            ?>
</wp:meta_value>
</wp:postmeta>
<?php 
                        }
                    }
                    $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}");
                    if ($comments) {
                        foreach ($comments as $c) {
                            ?>
<wp:comment>
<wp:comment_author><?php 
                            echo htmlent2numeric($c->comment_author);
                            ?>
</wp:comment_author>
<wp:comment_author_email><?php 
                            echo $c->comment_author_email;
                            ?>
</wp:comment_author_email>
<wp:comment_author_url><?php 
                            echo $c->comment_author_url;
                            ?>
</wp:comment_author_url>
<wp:comment_author_IP><?php 
                            echo $c->comment_author_IP;
                            ?>
</wp:comment_author_IP>
<wp:comment_date><?php 
                            echo $c->comment_date;
                            ?>
</wp:comment_date>
<wp:comment_date_gmt><?php 
                            echo $c->comment_date_gmt;
                            ?>
</wp:comment_date_gmt>
<wp:comment_content><?php 
                            echo htmlent2numeric($c->comment_content);
                            ?>
</wp:comment_content>
<wp:comment_approved><?php 
                            echo $c->comment_approved;
                            ?>
</wp:comment_approved>
<wp:comment_type><?php 
                            echo $c->comment_type;
                            ?>
</wp:comment_type>
<wp:comment_parent><?php 
                            echo $c->comment_parent;
                            ?>
</wp:comment_parent>
</wp:comment>
<?php 
                        }
                    }
                    ?>
	</item>
<?php 
                }
            }
            ?>
</channel>
</rss>
<?php 
            exit;
            wp_redirect('admin.php');
        }
header('Content-type: text/xml;charset=' . get_settings('blog_charset'), true);

echo '<?xml version="1.0" encoding="'.get_settings('blog_charset').'"?'.'>'; 
?>
<!-- generator="wordpress/<?php echo $wp_version ?>" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<?php
$i = 0;
if (have_posts()) :
  while (have_posts()) : the_post();
	if ($i < 1) {
		$i++;
?>
	<title><?php if (is_single() || is_page()) { echo "Comments on: "; the_title_rss(); } else { bloginfo_rss("name"); echo " Comments"; } ?></title>
	<link><?php (is_single()) ? permalink_single_rss() : bloginfo_rss("url") ?></link>
	<description><?php bloginfo_rss("description") ?></description>
	<pubDate><?php echo gmdate('r'); ?></pubDate>
	<generator>http://wordpress.org/?v=<?php echo $wp_version ?></generator>

<?php 
		if (is_single() || is_page()) {
			$comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 
			comment_author_url, comment_date, comment_content, comment_post_ID, 
			$wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 
			LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '$id' 
			AND $wpdb->comments.comment_approved = '1' AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'page') 
			AND post_date < '".date("Y-m-d H:i:59")."' 
			ORDER BY comment_date LIMIT " . get_settings('posts_per_rss') );
		} else { // if no post id passed in, we'll just ue the last 10 comments.
    function popular_rss()
    {
        header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true);
        preg_match('{(\\d{1,2})/(\\d{1,2})/popular.xml}', $_SERVER['REQUEST_URI'], $match);
        $max_posts = (int) $match[1];
        if ($max_posts < 1 || $max_posts > 25) {
            wp_die('Max popular posts should be between 1 and 25.');
        }
        $days = (int) $match[2];
        if ($days < 1 || $days > 90) {
            wp_die('The no. of days should be between 1 and 90.');
        }
        if (function_exists('wpcom_vip_load_helper_stats')) {
            wpcom_vip_load_helper_stats();
        }
        $feed_max_posts = $max_posts + 20;
        $popular_data = wpcom_vip_top_posts_array($days, $feed_max_posts);
        //print_r ($popular_data);
        foreach ($popular_data as $p) {
            if ($p["post_id"] != 0) {
                $popular_posts[] = $p["post_id"];
            }
        }
        $the_query = new WP_Query(array('post__in' => $popular_posts, 'orderby' => 'post__in', 'posts_per_page' => $max_posts, 'ignore_sticky_posts' => 1));
        echo '<?xml version="1.0"?>';
        ?>
		<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
		<channel>
		<title><?php 
        bloginfo_rss('name');
        wp_title_rss();
        ?>
</title>
		<link><?php 
        bloginfo_rss('url');
        ?>
</link>
		<description><?php 
        bloginfo_rss("description");
        ?>
</description>
		<image>
			<url><?php 
        echo home_url();
        ?>
/wp-content/themes/vip/jptechcrunch/images/site-logo-small.png</url>
			<title><?php 
        bloginfo_rss('name');
        wp_title_rss();
        ?>
</title>
			<link><?php 
        bloginfo_rss('url');
        ?>
</link>
		</image>
		<language><?php 
        echo get_option('rss_language');
        ?>
</language>
		<copyright>Copyright <?php 
        echo date('Y');
        ?>
 TechCrunch The contents of this feed are available for non-commercial use only.</copyright>
		<?php 
        global $post;
        while ($the_query->have_posts()) {
            $the_query->the_post();
            ?>
		<item>
			<title><![CDATA[<?php 
            the_title_rss();
            ?>
]]></title>
			<link><![CDATA[<?php 
            the_permalink_rss();
            ?>
]]></link>
			<guid isPermaLink="true"><![CDATA[<?php 
            the_permalink_rss();
            ?>
]]></guid>
			<description><![CDATA[<?php 
            if (is_single()) {
                if (get_post_meta($post->ID, '_tc_post_type', true) != 'simplepost' && has_post_thumbnail()) {
                    the_post_thumbnail('full');
                }
                the_content();
            } else {
                echo strip_tags(get_the_excerpt());
            }
            ?>
 ]]></description>
			<?php 
            if ($thumb = tc_get_post_image($post, 'full')) {
                ?>
			<enclosure url="<?php 
                echo esc_url($thumb);
                ?>
" length="<?php 
                echo strlen($thumb);
                ?>
" type="<?php 
                echo tc_get_image_type($thumb);
                ?>
"></enclosure>
			<?php 
            } else {
                ?>
			<enclosure url="" length="-1" ></enclosure>
			<?php 
            }
            ?>
			<?php 
            $byline = get_post_meta(get_the_ID(), 'byline', true);
            ?>
			<?php 
            $co_authors = get_coauthors();
            $author = get_the_author();
            if (count($co_authors) > 0) {
                $co_author = $co_authors[0];
                if ($co_author->last_name) {
                    $author = $co_author->first_name . ' ' . $co_author->last_name;
                } else {
                    $author = $co_author->display_name;
                }
            }
            ?>
			<dc:creator><![CDATA[<?php 
            echo $byline ? esc_html($byline) : esc_html($author);
            ?>
]]></dc:creator>
			<pubDate><?php 
            $gmt_timestamp = get_post_time('U', true);
            echo date('D, d M Y H:i:s O', intval($gmt_timestamp));
            ?>
</pubDate>
			<dc:identifier>0|19962129</dc:identifier>
			<?php 
            foreach (wp_get_post_categories($post->ID) as $categoryId) {
                $category = get_category($categoryId);
                ?>
			<category domain="category:<?php 
                echo esc_html($category->slug);
                ?>
"><![CDATA[<?php 
                echo esc_html($category->name);
                ?>
]]></category>
			<?php 
            }
            ?>
			<?php 
            foreach (wp_get_post_tags($post->ID) as $tag) {
                ?>
			<category domain="tag:<?php 
                echo esc_html($tag->slug);
                ?>
"><![CDATA[<?php 
                echo esc_html($tag->name);
                ?>
]]></category>
			<?php 
            }
            ?>
			<category domain="blogger:<?php 
            echo esc_html(get_the_author());
            ?>
"><![CDATA[<?php 
            echo esc_html(get_the_author());
            ?>
]]></category>
		</item>
		<?php 
        }
        ?>
		</channel>
	</rss>
<?php 
    }
Example #11
0
function export_wp()
{
    global $wpdb, $post_ids, $post;
    do_action('export_wp');
    $filename = 'wordpress.' . date('Y-m-d') . '.xml';
    // ограничения по кол-ву записей
    $limit = '';
    if (isset($_GET['limit_start']) and $_GET['limit_start'] and isset($_GET['limit_count']) and $_GET['limit_count']) {
        $limit_start = (int) $_GET['limit_start'];
        $limit_count = (int) $_GET['limit_count'];
        if ($limit_start and $limit_count) {
            $limit = ' LIMIT ' . $limit_start . ', ' . $limit_count;
            $filename = 'wp-' . $limit_start . '-' . ($limit_count + $limit_start) . '.xml';
        }
    }
    header('Content-Description: File Transfer');
    header("Content-Disposition: attachment; filename={$filename}");
    header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
    $where = '';
    if (isset($_GET['author']) && $_GET['author'] != 'all') {
        $author_id = (int) $_GET['author'];
        $where = " WHERE post_author = '{$author_id}' and post_status != 'inherit'";
    } else {
        $where = " WHERE post_status != 'inherit'";
    }
    // grab a snapshot of post IDs, just in case it changes during the export
    $post_ids = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC{$limit}");
    $categories = (array) get_categories('get=all');
    $tags = (array) get_tags('get=all');
    function wxr_missing_parents($categories)
    {
        if (!is_array($categories) || empty($categories)) {
            return array();
        }
        foreach ($categories as $category) {
            $parents[$category->term_id] = $category->parent;
        }
        $parents = array_unique(array_diff($parents, array_keys($parents)));
        if ($zero = array_search('0', $parents)) {
            unset($parents[$zero]);
        }
        return $parents;
    }
    while ($parents = wxr_missing_parents($categories)) {
        $found_parents = get_categories("include=" . join(', ', $parents));
        if (is_array($found_parents) && count($found_parents)) {
            $categories = array_merge($categories, $found_parents);
        } else {
            break;
        }
    }
    // Put them in order to be inserted with no child going before its parent
    $pass = 0;
    $passes = 1000 + count($categories);
    while (($cat = array_shift($categories)) && ++$pass < $passes) {
        if ($cat->parent == 0 || isset($cats[$cat->parent])) {
            $cats[$cat->term_id] = $cat;
        } else {
            $categories[] = $cat;
        }
    }
    unset($categories);
    function wxr_cdata($str)
    {
        if (seems_utf8($str) == false) {
            $str = utf8_encode($str);
        }
        // $str = ent2ncr(wp_specialchars($str));
        $str = "<![CDATA[{$str}" . (substr($str, -1) == ']' ? ' ' : '') . "]]>";
        return $str;
    }
    function wxr_cat_name($c)
    {
        if (empty($c->name)) {
            return;
        }
        echo '<wp:cat_name>' . wxr_cdata($c->name) . '</wp:cat_name>';
    }
    function wxr_category_description($c)
    {
        if (empty($c->description)) {
            return;
        }
        echo '<wp:category_description>' . wxr_cdata($c->description) . '</wp:category_description>';
    }
    function wxr_tag_name($t)
    {
        if (empty($t->name)) {
            return;
        }
        echo '<wp:tag_name>' . wxr_cdata($t->name) . '</wp:tag_name>';
    }
    function wxr_tag_description($t)
    {
        if (empty($t->description)) {
            return;
        }
        echo '<wp:tag_description>' . wxr_cdata($t->description) . '</wp:tag_description>';
    }
    function wxr_post_taxonomy()
    {
        $categories = get_the_category();
        $tags = get_the_tags();
        $cat_names = array();
        $tag_names = array();
        $the_list = array();
        $filter = 'rss';
        if (!empty($categories)) {
            foreach ((array) $categories as $category) {
                $cat_name = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
                // $the_list .= "\n\t\t<category><![CDATA[$cat_name]]></category>\n";
                $the_list['category'][$category->term_id] = $cat_name;
            }
        }
        if (!empty($tags)) {
            foreach ((array) $tags as $tag) {
                $tag_name = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
                // $the_list .= "\n\t\t<category domain=\"tag\"><![CDATA[$tag_name]]></category>\n";
                $the_list['tag'][$tag->term_id] = $tag->name;
            }
        }
        echo '<category><![CDATA[' . serialize($the_list) . ']]></category>';
    }
    echo '<?xml version="1.0" encoding="' . get_bloginfo('charset') . '"?' . ">\n";
    ?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/1.0/"
>

<channel>
	<title><?php 
    bloginfo_rss('name');
    ?>
</title>
	<link><?php 
    bloginfo_rss('url');
    ?>
</link>
	<description><?php 
    bloginfo_rss("description");
    ?>
</description>
	<pubDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false);
    ?>
</pubDate>
	<language><?php 
    echo get_option('rss_language');
    ?>
</language>
	<?php 
    if ($cats) {
        ?>
<categorys><![CDATA[<?php 
        echo serialize($cats);
        ?>
]]></categorys><?php 
    }
    ?>
	<?php 
    if ($tags) {
        ?>
<tags><![CDATA[<?php 
        echo serialize($tags);
        ?>
]]></tags><?php 
    }
    ?>
	<?php 
    do_action('rss2_head');
    ?>
	<?php 
    if ($post_ids) {
        global $wp_query;
        $wp_query->in_the_loop = true;
        // Fake being in the loop.
        // fetch 20 posts at a time rather than loading the entire table into memory
        while ($next_posts = array_splice($post_ids, 0, 20)) {
            $where = "WHERE ID IN (" . join(',', $next_posts) . ") and post_status != 'inherit'";
            $posts = $wpdb->get_results("SELECT * FROM {$wpdb->posts} {$where} ORDER BY post_date_gmt ASC");
            foreach ($posts as $post) {
                setup_postdata($post);
                ?>
			
<item>
	<title><?php 
                the_title_rss();
                ?>
</title>
	<link><?php 
                the_permalink_rss();
                ?>
</link>
	<pubDate><?php 
                echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', true), false);
                ?>
</pubDate>
	<dc:creator><?php 
                the_author();
                ?>
</dc:creator>
	<?php 
                wxr_post_taxonomy();
                ?>
	<content><![CDATA[<?php 
                echo $post->post_content;
                ?>
]]></content>
	<wp:post_id><?php 
                echo $post->ID;
                ?>
</wp:post_id>
	<wp:post_date><?php 
                echo $post->post_date;
                ?>
</wp:post_date>
	<wp:post_date_gmt><?php 
                echo $post->post_date_gmt;
                ?>
</wp:post_date_gmt>
	<wp:comment_status><?php 
                echo $post->comment_status;
                ?>
</wp:comment_status>
	<wp:post_name><?php 
                echo $post->post_name;
                ?>
</wp:post_name>
	<wp:status><?php 
                echo $post->post_status;
                ?>
</wp:status>
	<wp:post_type><?php 
                echo $post->post_type;
                ?>
</wp:post_type>

	<?php 
                $comments = $wpdb->get_results("SELECT * FROM {$wpdb->comments} WHERE comment_post_ID = {$post->ID}");
                if ($comments) {
                    ?>
	<comments><![CDATA[<?php 
                    echo serialize($comments);
                    ?>
]]></comments>
	<?php 
                }
                ?>

</item>

<?php 
            }
        }
    }
    ?>
</channel>
</rss>
<?php 
    die;
}
	<subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>

	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT')); ?></updated>
	<generator uri="http://wordpress.org/" version="<?php bloginfo_rss('version'); ?>">WordPress</generator>

	<link rel="alternate" type="text/html" href="<?php bloginfo_rss('home') ?>" />
	<id><?php bloginfo('atom_url'); ?></id>
	<link rel="self" type="application/atom+xml" href="<?php bloginfo('atom_url'); ?>" />

	<?php do_action('atom_head'); ?>
	<?php while (have_posts()) : the_post(); ?>
	<entry>
		<author>
			<name><?php the_author() ?></name>
			<uri><?php the_author_url()?></uri>
		</author>
		<title type="<?php html_type_rss(); ?>"><![CDATA[<?php the_title_rss() ?>]]></title>
		<link rel="alternate" type="text/html" href="<?php permalink_single_rss() ?>" />
		<id><?php the_guid(); ?></id>
		<updated><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></updated>
		<published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>
		<?php the_category_rss('atom') ?>
		<summary type="<?php html_type_rss(); ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary>
<?php if ( !get_option('rss_use_excerpt') ) : ?>
		<content type="<?php html_type_rss(); ?>" xml:base="<?php permalink_single_rss() ?>"><![CDATA[<?php the_content('', 0, '') ?>]]></content>
<?php endif; ?>
<?php atom_enclosure(); ?>
<?php do_action('atom_entry'); ?>
	</entry>
	<?php endwhile ; ?>
</feed>
											  comment_date, comment_content, comment_post_ID,' . wp_table('posts') . '.ID,
											 ' . wp_table('posts') . '.post_title,' . wp_table('posts') . '.post_password', false, $_joinCriteria);
        // this line is WordPress' motor, do not delete it.
        if ($commentObjects) {
            foreach ($commentObjects as $commentObject) {
                $GLOBALS['comment'] = $commentObject->exportWpObject();
                ?>
	<item rdf:about="<?php 
                permalink_comments_rss();
                ?>
">
		<title><?php 
                comment_type();
                ?>
 on: <?php 
                the_title_rss(true, $GLOBALS['comment']->post_title);
                ?>
 by: <?php 
                comment_author_rss();
                ?>
</title>
		<link><?php 
                comment_link_rss();
                ?>
</link>
		<pubDate><?php 
                comment_time('r');
                ?>
</pubDate>
		<author><?php 
                comment_author_rss();
Example #14
0
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.');
    }
}
Example #15
0
/**
 * Return XML for full feed.
 * 
 * @param   array $feed_items Array of objects. Required attributes: ID (=post id), blog_id
 * @return  string
 */
function get_feed_xml($feed_items)
{
    global $post;
    $rss_language = Settings\get_site_option('language_slug');
    if (empty($rss_language) && defined('WPLANG')) {
        $rss_language = substr(WPLANG, 0, 2);
    }
    ob_start();
    echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>';
    ?>

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	<?php 
    do_action('rss2_ns');
    ?>
>

<channel>
	<title><?php 
    echo get_feed_title();
    ?>
</title>
	<atom:link href="<?php 
    echo get_feed_url();
    ?>
" rel="self" type="application/rss+xml" />
	<link><?php 
    echo get_feed_url();
    ?>
</link>
	<description><?php 
    echo get_feed_description();
    ?>
</description>
	<lastBuildDate><?php 
    echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), FALSE);
    ?>
</lastBuildDate>
	<language><?php 
    echo $rss_language;
    ?>
</language>
	<sy:updatePeriod><?php 
    echo apply_filters('rss_update_period', 'hourly');
    ?>
</sy:updatePeriod>
	<sy:updateFrequency><?php 
    echo apply_filters('rss_update_frequency', '1');
    ?>
</sy:updateFrequency>
	<?php 
    do_action('rss2_head');
    foreach ($feed_items as $feed_item) {
        switch_to_blog($feed_item->blog_id);
        $post = get_post($feed_item->ID);
        setup_postdata($post);
        ?>
		
		<item>
			<title><?php 
        the_title_rss();
        ?>
</title>
			<link><?php 
        the_permalink_rss();
        ?>
</link>
			<comments><?php 
        comments_link_feed();
        ?>
</comments>
			<pubDate><?php 
        echo mysql2date('D, d M Y H:i:s +0000', get_post_time('Y-m-d H:i:s', TRUE), FALSE);
        ?>
</pubDate>
			<dc:creator><?php 
        the_author();
        ?>
</dc:creator>
			<?php 
        the_category_rss('rss2');
        ?>
			
			<guid isPermaLink="false"><?php 
        the_guid();
        ?>
</guid>
	<?php 
        if (get_option('rss_use_excerpt')) {
            ?>
			<description><![CDATA[<?php 
            the_excerpt_rss();
            ?>
]]></description>
	<?php 
        } else {
            ?>
			<description><![CDATA[<?php 
            the_excerpt_rss();
            ?>
]]></description>
		<?php 
            $content = \Inpsyde\MultisiteFeed\get_the_content_feed('rss2');
            ?>
		<?php 
            if (strlen($content) > 0) {
                ?>
			<content:encoded><![CDATA[<?php 
                echo $content;
                ?>
]]></content:encoded>
		<?php 
            } else {
                ?>
			<content:encoded><![CDATA[<?php 
                the_excerpt_rss();
                ?>
]]></content:encoded>
		<?php 
            }
            ?>
	<?php 
        }
        ?>
			<wfw:commentRss><?php 
        echo esc_url(get_post_comments_feed_link(NULL, 'rss2'));
        ?>
</wfw:commentRss>
			<slash:comments><?php 
        echo get_comments_number();
        ?>
</slash:comments>
	<?php 
        rss_enclosure();
        do_action('rss2_item');
        ?>
		</item>
		
		<?php 
        restore_current_blog();
    }
    ?>
	
</channel>
</rss>
<?php 
    $xml = ob_get_contents();
    ob_end_clean();
    return $xml;
}
Example #16
0
    if (!empty($author_url)) {
        ?>
			<uri><?php 
        the_author_meta('url');
        ?>
</uri>
			<?php 
    }
    do_action('atom_author');
    ?>
		</author>
		<title type="<?php 
    html_type_rss();
    ?>
"><![CDATA[<?php 
    the_title_rss();
    ?>
]]></title>
		<link rel="alternate" type="<?php 
    bloginfo_rss('html_type');
    ?>
" href="<?php 
    the_permalink_rss();
    ?>
" />
		<id><?php 
    the_guid();
    ?>
</id>
		<updated><?php 
    echo get_post_modified_time('Y-m-d\\TH:i:s\\Z', true);
Example #17
0
/**
 * Generate the feed
 * 
 * @since 3.3
 */
function wprss_addfeed_do_feed($in)
{
    // Prepare the post query
    /*
            $wprss_custom_feed_query = apply_filters(            
                    'wprss_custom_feed_query',
                    array(
                    'post_type'   => 'wprss_feed_item', 
                    'post_status' => 'publish',
                    'cache_results' => false,   // disable caching
                ) 
                
            );*/
    $wprss_custom_feed_query = wprss_get_feed_items_query(apply_filters('wprss_custom_feed_query', array('get-args' => TRUE, 'no-paged' => TRUE, 'feed_limit' => 0)));
    // Suppress caching
    $wprss_custom_feed_query['cache_results'] = FALSE;
    // Get options
    $options = get_option('wprss_settings_general');
    if ($options !== FALSE) {
        // If options exist, get the limit
        $limit = $options['custom_feed_limit'];
        if ($limit !== FALSE) {
            // if limit exists, set the query limit
            $wprss_custom_feed_query['posts_per_page'] = $limit;
        }
    }
    // Submit the query to get latest feed items
    query_posts($wprss_custom_feed_query);
    $custom_feed_title = wprss_get_general_setting('custom_feed_title');
    // Send content header and start ATOM output
    header('Content-Type: text/xml');
    // Disabling caching
    header('Cache-Control: no-cache, no-store, must-revalidate');
    // HTTP 1.1.
    header('Pragma: no-cache');
    // HTTP 1.0.
    header('Expires: 0');
    // Proxies.
    echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '"?' . '>';
    ?>
        <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" >
            <title type="text"><?php 
    echo $custom_feed_title;
    ?>
</title>
            <?php 
    // Start the Loop
    while (have_posts()) {
        the_post();
        $permalink = get_post_meta(get_the_ID(), 'wprss_item_permalink', true);
        ?>
            <entry>
                <title><![CDATA[<?php 
        the_title_rss();
        ?>
]]></title>
                <link href="<?php 
        echo $permalink;
        ?>
" />
                <?php 
        // Enable below to link to post on our site rather than original source
        ?>
                <!--<link href="<?php 
        the_permalink_rss();
        ?>
" />-->
                <published><?php 
        echo get_post_time('Y-m-d\\TH:i:s\\Z');
        ?>
</published>
                <content type="html"><![CDATA[<?php 
        the_content();
        ?>
]]></content>
                <?php 
        do_action('wprss_custom_feed_entry', get_the_ID());
        ?>
            </entry>
            <?php 
        // End of the Loop
    }
    ?>
        </feed>
        <?php 
}