Changeset 4934
- Timestamp:
- 02/24/2007 07:33:29 AM (18 years ago)
- Location:
- trunk/wp-includes
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-includes/comment-template.php
r4886 r4934 291 291 } 292 292 293 $comments = apply_filters( 'comments_array', $comments, $post->ID ); 293 // keep $comments for legacy's sake (remember $table*? ;) ) 294 $comments = $wp_query->comments = apply_filters( 'comments_array', $comments, $post->ID ); 295 $wp_query->comment_count = count($wp_query->comments); 294 296 295 297 define('COMMENTS_TEMPLATE', true); -
trunk/wp-includes/feed-atom-comments.php
r4928 r4934 9 9 > 10 10 <title type="text"><?php 11 if ( is_single() || is_page()) {11 if ( is_singular() ) 12 12 printf(__('Comments on: %s'), get_the_title_rss()); 13 } else { 14 printf(__('Comments for %s'), get_bloginfo_rss('name')); 15 } 13 elseif ( is_search() ) 14 printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars['s'])); 15 else 16 printf(__('Comments for %s'), get_bloginfo_rss( 'name' ) . get_wp_title_rss()); 16 17 ?></title> 17 18 <subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle> … … 25 26 26 27 <?php 27 $i = 0; 28 if (have_posts()) : 29 while (have_posts()) : the_post(); 30 if ($i < 1) { 31 $i++; 32 } 33 34 if (is_single() || is_page()) { 35 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 36 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 37 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 38 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '" . get_the_ID() . "' 39 AND $wpdb->comments.comment_approved = '1' AND $wpdb->posts.post_status = 'publish' 40 AND post_date_gmt < '" . gmdate("Y-m-d H:i:59") . "' 41 ORDER BY comment_date_gmt ASC" ); 42 } else { // if no post id passed in, we'll just use the last posts_per_rss comments. 43 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 44 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 45 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 46 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE $wpdb->posts.post_status = 'publish' 47 AND $wpdb->comments.comment_approved = '1' AND post_date_gmt < '" . gmdate("Y-m-d H:i:s") . "' 48 ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss') ); 49 } 50 51 if ($comments) { 52 foreach ($comments as $comment) { 53 $GLOBALS['comment'] =& $comment; 54 get_post_custom($comment->comment_post_ID); 28 if ( have_comments() ) : while ( have_comments() ) : the_comment(); 29 $comment_post = get_post($comment->comment_post_ID); 30 get_post_custom($comment_post->ID); 55 31 ?> 56 32 <entry> 57 33 <title><?php 58 if ( !(is_single() || is_page())) {59 $title = get_the_title($comment ->comment_post_ID);34 if ( !is_singular() ) { 35 $title = get_the_title($comment_post->ID); 60 36 $title = apply_filters('the_title', $title); 61 37 $title = apply_filters('the_title_rss', $title); … … 70 46 <name><?php comment_author_rss(); ?></name> 71 47 <?php if (get_comment_author_url()) echo '<uri>' . get_comment_author_url() . '</uri>'; ?> 48 72 49 </author> 73 50 … … 75 52 <updated><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></updated> 76 53 <published><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></published> 77 78 <?php if (!empty($comment->post_password) && $_COOKIE['wp-postpass'] != $comment->post_password) { ?> 54 <?php if (!empty($comment_post->post_password) && $_COOKIE['wp-postpass'] != $comment_post->post_password) : ?> 79 55 <content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php echo get_the_password_form(); ?>]]></content> 80 <?php } else {?>56 <?php else : // post pass ?> 81 57 <content type="html" xml:base="<?php comment_link(); ?>"><![CDATA[<?php comment_text(); ?>]]></content> 82 <?php } ?> 58 <?php endif; // post pass 59 do_action('comment_atom_entry', $comment->comment_ID, $comment_post->ID); 60 ?> 83 61 </entry> 84 <?php 85 } 86 } 87 88 endwhile; 89 endif; 90 ?> 62 <?php endwhile; endif; ?> 91 63 </feed> -
trunk/wp-includes/feed-rss2-comments.php
r4927 r4934 8 8 xmlns:content="http://purl.org/rss/1.0/modules/content/"> 9 9 <channel> 10 <?php11 $i = 0; 12 if (have_posts()) : 13 while (have_posts()) : the_post(); 14 if ($i < 1) {15 $i++;16 ?> 17 <title><?php if (is_single() || is_page() ) { printf(__('Comments on: %s'), get_the_title_rss()); } else { printf(__('Comments for %s'), get_bloginfo_rss("name")); }?></title>10 <title><?php 11 if ( is_singular() ) 12 printf(__('Comments on: %s'), get_the_title_rss()); 13 elseif ( is_search() ) 14 printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars['s'])); 15 else 16 printf(__('Comments for %s'), get_bloginfo_rss( 'name' ) . get_wp_title_rss()); 17 ?></title> 18 18 <link><?php (is_single()) ? permalink_single_rss() : bloginfo_rss("url") ?></link> 19 19 <description><?php bloginfo_rss("description") ?></description> … … 22 22 23 23 <?php 24 if (is_single() || is_page()) { 25 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 26 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 27 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 28 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE comment_post_ID = '" . get_the_ID() . "' 29 AND $wpdb->comments.comment_approved = '1' AND $wpdb->posts.post_status = 'publish' 30 AND post_date_gmt < '" . gmdate("Y-m-d H:i:59") . "' 31 ORDER BY comment_date_gmt ASC" ); 32 } else { // if no post id passed in, we'll just ue the last 10 comments. 33 $comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_author_email, 34 comment_author_url, comment_date, comment_date_gmt, comment_content, comment_post_ID, 35 $wpdb->posts.ID, $wpdb->posts.post_password FROM $wpdb->comments 36 LEFT JOIN $wpdb->posts ON comment_post_id = id WHERE $wpdb->posts.post_status = 'publish' 37 AND $wpdb->comments.comment_approved = '1' AND post_date_gmt < '" . gmdate("Y-m-d H:i:s") . "' 38 ORDER BY comment_date_gmt DESC LIMIT " . get_option('posts_per_rss') ); 39 } 40 // this line is WordPress' motor, do not delete it. 41 if ($comments) { 42 foreach ($comments as $comment) { 43 $GLOBALS['comment'] =& $comment; 44 // Some plugins may need to know the metadata 45 // associated with this comment's post: 46 get_post_custom($comment->comment_post_ID); 24 if ( have_comments() ) : while ( have_comments() ) : the_comment(); 25 $comment_post = get_post($comment->comment_post_ID); 26 get_post_custom($comment_post->ID); 47 27 ?> 48 28 <item> 49 <title><?php if ( ! (is_single() || is_page()) ) { 50 $title = get_the_title($comment->comment_post_ID); 51 $title = apply_filters('the_title', $title); 52 $title = apply_filters('the_title_rss', $title); 53 printf(__('Comment on %1$s by %2$s'), $title, get_comment_author_rss()); 54 } else { 55 printf(__('By: %s'), get_comment_author_rss()); 56 } ?></title> 29 <title><?php 30 if ( !is_singular() ) { 31 $title = get_the_title($comment_post->ID); 32 $title = apply_filters('the_title', $title); 33 $title = apply_filters('the_title_rss', $title); 34 printf(__('Comment on %1$s by %2$s'), $title, get_comment_author_rss()); 35 } else { 36 printf(__('By: %s'), get_comment_author_rss()); 37 } 38 ?></title> 57 39 <link><?php comment_link() ?></link> 58 40 <author><?php echo get_comment_author_rss() ?></author> 59 41 <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_comment_time('Y-m-d H:i:s', true), false); ?></pubDate> 60 42 <guid><?php comment_link() ?></guid> 61 <?php 62 if (!empty($comment->post_password) && $_COOKIE['wp-postpass'] != $comment->post_password) { 63 ?> 43 <?php if (!empty($comment_post->post_password) && $_COOKIE['wp-postpass'] != $comment_post->post_password) : ?> 64 44 <description><?php _e('Protected Comments: Please enter your password to view comments.'); ?></description> 65 45 <content:encoded><![CDATA[<?php echo get_the_password_form() ?>]]></content:encoded> 66 <?php 67 } else { 68 ?> 46 <?php else : // post pass ?> 69 47 <description><?php comment_text_rss() ?></description> 70 48 <content:encoded><![CDATA[<?php comment_text() ?>]]></content:encoded> 71 <?php 72 } // close check for password 73 do_action('commentrss2_item', $comment->comment_ID, $comment->comment_post_ID); 74 ?> 49 <?php endif; // post pass 50 do_action('commentrss2_item', $comment->comment_ID, $comment_post->ID); 51 ?> 75 52 </item> 76 <?php 77 } 78 } 79 } 80 endwhile; endif; 81 ?> 53 <?php endwhile; endif; ?> 82 54 </channel> 83 55 </rss> -
trunk/wp-includes/feed.php
r4933 r4934 11 11 } 12 12 13 function get_wp_title_rss($sep = '»') { 14 $title = wp_title($sep, false); 15 $title = apply_filters('get_wp_title_rss', $title); 16 return $title; 17 } 13 18 14 19 function get_the_title_rss() { -
trunk/wp-includes/functions.php
r4928 r4934 940 940 941 941 function do_feed() { 942 global $wp_query; 943 942 944 $feed = get_query_var('feed'); 943 945 … … 946 948 947 949 if ( $feed == '' || $feed == 'feed' ) 948 $feed = 'rss2'; 949 950 $for_comments = false; 951 952 if ( is_singular() || get_query_var('withcomments') == 1 ) 953 $for_comments = true; 954 955 if ( false !== strpos($feed, 'comments-') ) { 956 $for_comments = true; 957 $feed = str_replace('comments-', '', $feed); 958 } 959 960 if ( get_query_var('withoutcomments') == 1 ) 961 $for_comments = false; 950 $feed = 'rss2'; 962 951 963 952 $hook = 'do_feed_' . $feed; 964 do_action($hook, $ for_comments);953 do_action($hook, $wp_query->is_comment_feed); 965 954 } 966 955 -
trunk/wp-includes/query.php
r4911 r4934 9 9 10 10 return $wp_query->get($var); 11 } 12 13 function set_query_var($var, $value) { 14 global $wp_query; 15 16 return $wp_query->set($var, $value); 11 17 } 12 18 … … 249 255 $wp_query->the_post(); 250 256 } 257 258 /* 259 * Comments loop. 260 */ 261 262 function have_comments() { 263 global $wp_query; 264 return $wp_query->have_comments(); 265 } 266 267 function the_comment() { 268 global $wp_query; 269 return $wp_query->the_comment(); 270 } 251 271 252 272 /* … … 266 286 var $in_the_loop = false; 267 287 var $post; 288 289 var $comments; 290 var $comment_count = 0; 291 var $current_comment = -1; 292 var $comment; 268 293 269 294 var $found_posts = 0; … … 283 308 var $is_search = false; 284 309 var $is_feed = false; 310 var $is_comment_feed = false; 285 311 var $is_trackback = false; 286 312 var $is_home = false; … … 306 332 $this->is_search = false; 307 333 $this->is_feed = false; 334 $this->is_comment_feed = false; 308 335 $this->is_trackback = false; 309 336 $this->is_home = false; … … 538 565 $this->is_singular = true; 539 566 567 if ( false !== strpos($qv['feed'], 'comments-') ) { 568 $this->query_vars['feed'] = $qv['feed'] = str_replace('comments-', '', $qv['feed']); 569 $qv['withcomments'] = 1; 570 } 571 572 if ( $this->is_feed && (!empty($qv['withcomments']) || ( empty($qv['withoutcomments']) && $this->is_singular ) ) ) 573 $this->is_comment_feed = true; 574 540 575 if ( ! ($this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_comments_popup)) { 541 576 $this->is_home = true; … … 967 1002 } 968 1003 } 1004 1005 // Comments feeds 1006 if ( $this->is_comment_feed && ( $this->is_archive || $this->is_search || !$this->is_singular ) ) { 1007 if ( $this->is_archive || $this->is_search ) { 1008 $cjoin = "LEFT JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join "; 1009 $cwhere = "WHERE comment_approved = '1' $where"; 1010 $cgroupby = "GROUP BY $wpdb->comments.comment_id"; 1011 } else { // Other non singular e.g. front 1012 $cjoin = "LEFT JOIN $wpdb->posts ON ( $wpdb->comments.comment_post_ID = $wpdb->posts.ID )"; 1013 $cwhere = "WHERE post_status = 'publish' AND comment_approved = '1'"; 1014 $cgroupby = ''; 1015 } 1016 1017 $cjoin = apply_filters('comment_feed_join', $cjoin); 1018 $cwhere = apply_filters('comment_feed_where', $cwhere); 1019 $cgroupby = apply_filters('comment_feed_groupby', $cgroupby); 1020 1021 $this->comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby ORDER BY comment_date_gmt DESC LIMIT " . get_settings('posts_per_rss')); 1022 $this->comment_count = count($this->comments); 1023 1024 $post_ids = array(); 1025 1026 foreach ($this->comments as $comment) 1027 $post_ids[] = (int) $comment->comment_post_ID; 1028 1029 $post_ids = join(',', $post_ids); 1030 $join = ''; 1031 if ( $post_ids ) 1032 $where = "AND $wpdb->posts.ID IN ($post_ids) "; 1033 else 1034 $where = "AND 0"; 1035 } 969 1036 970 1037 // Apply post-paging filters on where and join. Only plugins that … … 987 1054 988 1055 $this->posts = $wpdb->get_results($this->request); 1056 1057 if ( $this->is_comment_feed && $this->is_singular ) { 1058 $cjoin = apply_filters('comment_feed_join', ''); 1059 $cwhere = apply_filters('comment_feed_where', "WHERE comment_post_ID = {$this->posts[0]->ID} AND comment_approved = '1'"); 1060 $comments_request = "SELECT $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere ORDER BY comment_date_gmt DESC LIMIT " . get_settings('posts_per_rss'); 1061 $this->comments = $wpdb->get_results($comments_request); 1062 $this->comment_count = count($this->comments); 1063 } 1064 989 1065 if ( !empty($limits) ) { 990 1066 $found_posts_query = apply_filters( 'found_posts_query', 'SELECT FOUND_ROWS()' ); … … 993 1069 $this->max_num_pages = ceil($this->found_posts / $q['posts_per_page']); 994 1070 } 1071 995 1072 // Check post status to determine if post should be displayed. 996 1073 if ( !empty($this->posts) && ($this->is_single || $this->is_page) ) { … … 1072 1149 } 1073 1150 } 1151 1152 function next_comment() { 1153 $this->current_comment++; 1154 1155 $this->comment = $this->comments[$this->current_comment]; 1156 return $this->comment; 1157 } 1158 1159 function the_comment() { 1160 global $comment; 1161 1162 $comment = $this->next_comment(); 1163 1164 if ($this->current_comment == 0) { 1165 do_action('comment_loop_start'); 1166 } 1167 } 1168 1169 function have_comments() { 1170 if ($this->current_comment + 1 < $this->comment_count) { 1171 return true; 1172 } elseif ($this->current_comment + 1 == $this->comment_count) { 1173 $this->rewind_comments(); 1174 } 1175 1176 return false; 1177 } 1178 1179 function rewind_comments() { 1180 $this->current_comment = -1; 1181 if ($this->comment_count > 0) { 1182 $this->comment = $this->comments[0]; 1183 } 1184 } 1074 1185 1075 1186 function &query($query) {
Note: See TracChangeset
for help on using the changeset viewer.