web/wp-includes/feed-atom-comments.php
branchwordpress
changeset 109 03b0d1493584
child 132 4d4862461b8d
equal deleted inserted replaced
-1:000000000000 109:03b0d1493584
       
     1 <?php
       
     2 /**
       
     3  * Atom Feed Template for displaying Atom Comments feed.
       
     4  *
       
     5  * @package WordPress
       
     6  */
       
     7 
       
     8 header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
       
     9 echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
       
    10 ?>
       
    11 <feed
       
    12 	xmlns="http://www.w3.org/2005/Atom"
       
    13 	xml:lang="<?php echo get_option('rss_language'); ?>"
       
    14 	xmlns:thr="http://purl.org/syndication/thread/1.0"
       
    15 	<?php do_action('atom_ns'); do_action('atom_comments_ns'); ?>
       
    16 >
       
    17 	<title type="text"><?php
       
    18 		if ( is_singular() )
       
    19 			printf(ent2ncr(__('Comments on: %s')), get_the_title_rss());
       
    20 		elseif ( is_search() )
       
    21 			printf(ent2ncr(__('Comments for %1$s searching on %2$s')), get_bloginfo_rss( 'name' ), esc_attr(get_search_query()));
       
    22 		else
       
    23 			printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss( 'name' ) . get_wp_title_rss());
       
    24 	?></title>
       
    25 	<subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle>
       
    26 
       
    27 	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastcommentmodified('GMT'), false); ?></updated>
       
    28 	<?php the_generator( 'atom' ); ?>
       
    29 
       
    30 <?php if ( is_singular() ) { ?>
       
    31 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php echo get_comments_link(); ?>" />
       
    32 	<link rel="self" type="application/atom+xml" href="<?php echo get_post_comments_feed_link('', 'atom'); ?>" />
       
    33 	<id><?php echo get_post_comments_feed_link('', 'atom'); ?></id>
       
    34 <?php } elseif(is_search()) { ?>
       
    35 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php echo get_option('home') . '?s=' . esc_attr(get_search_query()); ?>" />
       
    36 	<link rel="self" type="application/atom+xml" href="<?php echo get_search_comments_feed_link('', 'atom'); ?>" />
       
    37 	<id><?php echo get_search_comments_feed_link('', 'atom'); ?></id>
       
    38 <?php } else { ?>
       
    39 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php bloginfo_rss('home'); ?>" />
       
    40 	<link rel="self" type="application/atom+xml" href="<?php bloginfo_rss('comments_atom_url'); ?>" />
       
    41 	<id><?php bloginfo_rss('comments_atom_url'); ?></id>
       
    42 <?php } ?>
       
    43 <?php do_action('comments_atom_head'); ?>
       
    44 <?php
       
    45 if ( have_comments() ) : while ( have_comments() ) : the_comment();
       
    46 	$comment_post = get_post($comment->comment_post_ID);
       
    47 	get_post_custom($comment_post->ID);
       
    48 ?>
       
    49 	<entry>
       
    50 		<title><?php
       
    51 			if ( !is_singular() ) {
       
    52 				$title = get_the_title($comment_post->ID);
       
    53 				$title = apply_filters('the_title_rss', $title);
       
    54 				printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
       
    55 			} else {
       
    56 				printf(ent2ncr(__('By: %s')), get_comment_author_rss());
       
    57 			}
       
    58 		?></title>
       
    59 		<link rel="alternate" href="<?php comment_link(); ?>" type="<?php bloginfo_rss('html_type'); ?>" />
       
    60 
       
    61 		<author>
       
    62 			<name><?php comment_author_rss(); ?></name>
       
    63 			<?php if (get_comment_author_url()) echo '<uri>' . get_comment_author_url() . '</uri>'; ?>
       
    64 
       
    65 		</author>
       
    66 
       
    67 		<id><?php comment_guid(); ?></id>
       
    68 		<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_comment_time('Y-m-d H:i:s', true, false), false); ?></updated>
       
    69 		<published><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_comment_time('Y-m-d H:i:s', true, false), false); ?></published>
       
    70 <?php if ( post_password_required($comment_post) ) : ?>
       
    71 		<content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php echo get_the_password_form(); ?>]]></content>
       
    72 <?php else : // post pass ?>
       
    73 		<content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php comment_text(); ?>]]></content>
       
    74 <?php endif; // post pass
       
    75 	// Return comment threading information (http://www.ietf.org/rfc/rfc4685.txt)
       
    76 	if ( $comment->comment_parent == 0 ) : // This comment is top level ?>
       
    77 		<thr:in-reply-to ref="<?php the_guid() ?>" href="<?php the_permalink_rss() ?>" type="<?php bloginfo_rss('html_type'); ?>" />
       
    78 <?php else : // This comment is in reply to another comment
       
    79 	$parent_comment = get_comment($comment->comment_parent);
       
    80 	// The rel attribute below and the id tag above should be GUIDs, but WP doesn't create them for comments (unlike posts). Either way, its more important that they both use the same system
       
    81 ?>
       
    82 		<thr:in-reply-to ref="<?php comment_guid($parent_comment) ?>" href="<?php echo get_comment_link($parent_comment) ?>" type="<?php bloginfo_rss('html_type'); ?>" />
       
    83 <?php endif;
       
    84 	do_action('comment_atom_entry', $comment->comment_ID, $comment_post->ID);
       
    85 ?>
       
    86 	</entry>
       
    87 <?php endwhile; endif; ?>
       
    88 </feed>