web/wp-includes/feed-atom-comments.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * Atom Feed Template for displaying Atom Comments feed.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
<feed
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
	xmlns="http://www.w3.org/2005/Atom"
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
	xml:lang="<?php echo get_option('rss_language'); ?>"
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
	xmlns:thr="http://purl.org/syndication/thread/1.0"
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
	<?php do_action('atom_ns'); do_action('atom_comments_ns'); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
	<title type="text"><?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
		if ( is_singular() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
			printf(ent2ncr(__('Comments on: %s')), get_the_title_rss());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
		elseif ( is_search() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
			printf(ent2ncr(__('Comments for %1$s searching on %2$s')), get_bloginfo_rss( 'name' ), esc_attr(get_search_query()));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
			printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss( 'name' ) . get_wp_title_rss());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
	?></title>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
	<subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastcommentmodified('GMT'), false); ?></updated>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
	<?php the_generator( 'atom' ); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
<?php if ( is_singular() ) { ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php echo get_comments_link(); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
	<link rel="self" type="application/atom+xml" href="<?php echo get_post_comments_feed_link('', 'atom'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
	<id><?php echo get_post_comments_feed_link('', 'atom'); ?></id>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
<?php } elseif(is_search()) { ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php echo get_option('home') . '?s=' . esc_attr(get_search_query()); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	<link rel="self" type="application/atom+xml" href="<?php echo get_search_comments_feed_link('', 'atom'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
	<id><?php echo get_search_comments_feed_link('', 'atom'); ?></id>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
<?php } else { ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php bloginfo_rss('home'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
	<link rel="self" type="application/atom+xml" href="<?php bloginfo_rss('comments_atom_url'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	<id><?php bloginfo_rss('comments_atom_url'); ?></id>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
<?php } ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
<?php do_action('comments_atom_head'); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
if ( have_comments() ) : while ( have_comments() ) : the_comment();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	$comment_post = get_post($comment->comment_post_ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
	get_post_custom($comment_post->ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
	<entry>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
		<title><?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
			if ( !is_singular() ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
				$title = get_the_title($comment_post->ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
				$title = apply_filters('the_title_rss', $title);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
				printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
				printf(ent2ncr(__('By: %s')), get_comment_author_rss());
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
		?></title>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
		<link rel="alternate" href="<?php comment_link(); ?>" type="<?php bloginfo_rss('html_type'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
		<author>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
			<name><?php comment_author_rss(); ?></name>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
			<?php if (get_comment_author_url()) echo '<uri>' . get_comment_author_url() . '</uri>'; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
		</author>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
		<id><?php comment_guid(); ?></id>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    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>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    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>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
<?php if ( post_password_required($comment_post) ) : ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
		<content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php echo get_the_password_form(); ?>]]></content>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
<?php else : // post pass ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
		<content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php comment_text(); ?>]]></content>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
<?php endif; // post pass
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
	// Return comment threading information (http://www.ietf.org/rfc/rfc4685.txt)
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
	if ( $comment->comment_parent == 0 ) : // This comment is top level ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
		<thr:in-reply-to ref="<?php the_guid() ?>" href="<?php the_permalink_rss() ?>" type="<?php bloginfo_rss('html_type'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
<?php else : // This comment is in reply to another comment
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
	$parent_comment = get_comment($comment->comment_parent);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    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
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    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'); ?>" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
<?php endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
	do_action('comment_atom_entry', $comment->comment_ID, $comment_post->ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
	</entry>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
<?php endwhile; endif; ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
</feed>