X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/849f15aeed7a5e39314057bdc0064d8edd60dd7d..e0feb3b2e5b436a06bbb04fbc838d1cd6ec95399:/wp-includes/comment-template.php diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index 4e75e7bc..78635778 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -63,8 +63,7 @@ function comment_author( $comment_ID = 0 ) { * @param string $author The comment author's username. * @param int $comment_ID The comment ID. */ - $author = apply_filters( 'comment_author', $author, $comment_ID ); - echo $author; + echo apply_filters( 'comment_author', $author, $comment_ID ); } /** @@ -157,6 +156,7 @@ function comment_author_email_link( $linktext = '', $before = '', $after = '' ) * Default empty. * @param string $before Optional. Text or HTML to display before the email link. Default empty. * @param string $after Optional. Text or HTML to display after the email link. Default empty. + * @return string */ function get_comment_author_email_link( $linktext = '', $before = '', $after = '' ) { global $comment; @@ -225,8 +225,6 @@ function get_comment_author_link( $comment_ID = 0 ) { * * @since 0.71 * - * @see get_comment_author_link() Echoes result - * * @param int $comment_ID ID of the comment for which to print the author's * link. Default current comment. */ @@ -390,6 +388,7 @@ function comment_author_url_link( $linktext = '', $before = '', $after = '' ) { * @param int|WP_Post $post_id Post ID or WP_Post object. Default current post. * @param bool $echo Optional. Whether to cho or return the output. * Default true. + * @return string|void */ function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) { // Separates classes with a single space, collates classes for comment DIV @@ -405,6 +404,10 @@ function comment_class( $class = '', $comment_id = null, $post_id = null, $echo * * @since 2.7.0 * + * @global int $comment_alt + * @global int $comment_depth + * @global int $comment_thread_alt + * * @param string|array $class Optional. One or more classes to add to the class list. Default empty. * @param int $comment_id Comment ID. Default current comment. * @param int|WP_Post $post_id Post ID or WP_Post object. Default current post. @@ -420,15 +423,15 @@ function get_comment_class( $class = '', $comment_id = null, $post_id = null ) { // Get the comment type (comment, trackback), $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type; - // If the comment author has an id (registered), then print the log in name - if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) { - // For all registered users, 'byuser' + // Add classes for comment authors that are registered users. + if ( $comment->user_id > 0 && $user = get_userdata( $comment->user_id ) ) { $classes[] = 'byuser'; - $classes[] = 'comment-author-' . sanitize_html_class($user->user_nicename, $comment->user_id); + $classes[] = 'comment-author-' . sanitize_html_class( $user->user_nicename, $comment->user_id ); // For comment authors who are the author of the post if ( $post = get_post($post_id) ) { - if ( $comment->user_id === $post->post_author ) + if ( $comment->user_id === $post->post_author ) { $classes[] = 'bypostauthor'; + } } } @@ -595,6 +598,8 @@ function comment_excerpt( $comment_ID = 0 ) { * * @since 1.5.0 * + * @global object $comment + * * @return int The comment ID. */ function get_comment_ID() { @@ -628,6 +633,9 @@ function comment_ID() { * * @see get_page_of_comment() * + * @global WP_Rewrite $wp_rewrite + * @global bool $in_comment_loop + * * @param mixed $comment Comment to retrieve. Default current comment. * @param array $args Optional. An array of arguments to override the defaults. * @return string The permalink to the given comment. @@ -658,7 +666,7 @@ function get_comment_link( $comment = null, $args = array() ) { $args['page'] = ( !empty($in_comment_loop) ) ? get_query_var('cpage') : get_page_of_comment( $comment->comment_ID, $args ); if ( $wp_rewrite->using_permalinks() ) - $link = user_trailingslashit( trailingslashit( get_permalink( $comment->comment_post_ID ) ) . 'comment-page-' . $args['page'], 'comment' ); + $link = user_trailingslashit( trailingslashit( get_permalink( $comment->comment_post_ID ) ) . $wp_rewrite->comments_pagination_base . '-' . $args['page'], 'comment' ); else $link = add_query_arg( 'cpage', $args['page'], get_permalink( $comment->comment_post_ID ) ); } else { @@ -857,6 +865,8 @@ function comment_text( $comment_ID = 0, $args = array() ) { * * @since 1.5.0 * + * @global object $comment + * * @param string $d Optional. The format of the time. Default user's settings. * @param bool $gmt Optional. Whether to use the GMT date. Default false. * @param bool $translate Optional. Whether to translate the time (for use in feeds). @@ -1115,15 +1125,23 @@ function wp_comment_form_unfiltered_html_nonce() { * default theme. If either does not exist, then the WordPress process will be * halted. It is advised for that reason, that the default theme is not deleted. * - * @todo Document globals * @uses $withcomments Will not try to get the comments if the post has none. * * @since 1.5.0 * + * @global WP_Query $wp_query + * @global WP_Post $post + * @global wpdb $wpdb + * @global int $id + * @global object $comment + * @global string $user_login + * @global int $user_ID + * @global string $user_identity + * @global bool $overridden_cpage + * * @param string $file Optional. The file to load. Default '/comments.php'. * @param bool $separate_comments Optional. Whether to separate the comments by comment type. * Default false. - * @return null Returns null if no comments appear. */ function comments_template( $file = '/comments.php', $separate_comments = false ) { global $wp_query, $withcomments, $post, $wpdb, $id, $comment, $user_login, $user_ID, $user_identity, $overridden_cpage; @@ -1138,7 +1156,6 @@ function comments_template( $file = '/comments.php', $separate_comments = false /* * Comment author information fetched from the comment cookies. - * Uuses wp_get_current_commenter(). */ $commenter = wp_get_current_commenter(); @@ -1168,7 +1185,7 @@ function comments_template( $file = '/comments.php', $separate_comments = false if ( $user_ID ) { $comment_args['include_unapproved'] = array( $user_ID ); - } else if ( ! empty( $comment_author_email ) ) { + } elseif ( ! empty( $comment_author_email ) ) { $comment_args['include_unapproved'] = array( $comment_author_email ); } @@ -1185,7 +1202,6 @@ function comments_template( $file = '/comments.php', $separate_comments = false $wp_query->comments = apply_filters( 'comments_array', $comments, $post->ID ); $comments = &$wp_query->comments; $wp_query->comment_count = count($wp_query->comments); - update_comment_cache($wp_query->comments); if ( $separate_comments ) { $wp_query->comments_by_type = separate_comments($comments); @@ -1269,19 +1285,34 @@ function comments_popup_script( $width = 400, $height = 400, $file = '' ) { * @param string $css_class Optional. CSS class to use for comments. Default empty. * @param string $none Optional. String to display when comments have been turned off. * Default false. - * @return null Returns null on single posts and pages. */ function comments_popup_link( $zero = false, $one = false, $more = false, $css_class = '', $none = false ) { global $wpcommentspopupfile, $wpcommentsjavascript; $id = get_the_ID(); + $title = get_the_title(); + $number = get_comments_number( $id ); - if ( false === $zero ) $zero = __( 'No Comments' ); - if ( false === $one ) $one = __( '1 Comment' ); - if ( false === $more ) $more = __( '% Comments' ); - if ( false === $none ) $none = __( 'Comments Off' ); + if ( false === $zero ) { + /* translators: %s: post title */ + $zero = sprintf( __( 'No Comments on %s' ), $title ); + } - $number = get_comments_number( $id ); + if ( false === $one ) { + /* translators: %s: post title */ + $one = sprintf( __( '1 Comment on %s' ), $title ); + } + + if ( false === $more ) { + /* translators: 1: Number of comments 2: post title */ + $more = _n( '%1$s Comment on %2$s', '%1$s Comments on %2$s', $number ); + $more = sprintf( $more, number_format_i18n( $number ), $title ); + } + + if ( false === $none ) { + /* translators: %s: post title */ + $none = sprintf( __( 'Comments Off on %s' ), $title ); + } if ( 0 == $number && !comments_open() && !pings_open() ) { echo '' . $none . ''; @@ -1289,7 +1320,7 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c } if ( post_password_required() ) { - echo __('Enter your password to view comments.'); + _e( 'Enter your password to view comments.' ); return; } @@ -1312,7 +1343,6 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c if ( !empty( $css_class ) ) { echo ' class="'.$css_class.'" '; } - $title = the_title_attribute( array('echo' => 0 ) ); $attributes = ''; /** @@ -1324,7 +1354,7 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c */ echo apply_filters( 'comments_popup_link_attributes', $attributes ); - echo ' title="' . esc_attr( sprintf( __('Comment on %s'), $title ) ) . '">'; + echo '>'; comments_number( $zero, $one, $more ); echo ''; } @@ -1353,10 +1383,9 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c * @param int $comment Comment being replied to. Default current comment. * @param int|WP_Post $post Post ID or WP_Post object the comment is going to be displayed on. * Default current post. - * @return null|false|string Link to show comment form, if successful. False, if comments are closed. + * @return void|false|string Link to show comment form, if successful. False, if comments are closed. */ function get_comment_reply_link( $args = array(), $comment = null, $post = null ) { - $defaults = array( 'add_below' => 'comment', 'respond_id' => 'respond', @@ -1408,8 +1437,8 @@ function get_comment_reply_link( $args = array(), $comment = null, $post = null $args['add_below'], $comment->comment_ID, $args['respond_id'], $post->ID ); - $link = sprintf( "%s", - esc_url( add_query_arg( 'replytocom', $comment->comment_ID ) ) . "#" . $args['respond_id'], + $link = sprintf( "%s", + esc_url( add_query_arg( 'replytocom', $comment->comment_ID, get_permalink( $post->ID ) ) ) . "#" . $args['respond_id'], $onclick, esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ), $args['reply_text'] @@ -1487,7 +1516,7 @@ function get_post_reply_link($args = array(), $post = null) { } if ( get_option('comment_registration') && ! is_user_logged_in() ) { - $link = sprintf( '%s', + $link = sprintf( '%s', wp_login_url( get_permalink() ), $args['login_text'] ); @@ -1536,6 +1565,7 @@ function post_reply_link($args = array(), $post = null) { * @since 2.7.0 * * @param string $text Optional. Text to display for cancel reply link. Default empty. + * @return string */ function get_cancel_comment_reply_link( $text = '' ) { if ( empty($text) ) @@ -1614,6 +1644,8 @@ function comment_id_fields( $id = 0 ) { * * @since 2.7.0 * + * @global object $comment + * * @param string $noreplytext Optional. Text to display when not replying to a comment. * Default false. * @param string $replytext Optional. Text to display when replying to a comment. @@ -1673,6 +1705,8 @@ class Walker_Comment extends Walker { * * @since 2.7.0 * + * @global int $comment_depth + * * @param string $output Passed by reference. Used to append additional content. * @param int $depth Depth of comment. * @param array $args Uses 'style' argument for type of HTML list. @@ -1700,6 +1734,8 @@ class Walker_Comment extends Walker { * * @since 2.7.0 * + * @global int $comment_depth + * * @param string $output Passed by reference. Used to append additional content. * @param int $depth Depth of comment. * @param array $args Will only append content if style argument value is 'ol' or 'ul'. @@ -1750,10 +1786,8 @@ class Walker_Comment extends Walker { * @param int $depth Depth of current element. * @param array $args An array of arguments. * @param string $output Passed by reference. Used to append additional content. - * @return null Null on failure with no changes to parameters. */ public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) { - if ( !$element ) return; @@ -1781,6 +1815,9 @@ class Walker_Comment extends Walker { * @see Walker::start_el() * @see wp_list_comments() * + * @global int $comment_depth + * @global object $comment + * * @param string $output Passed by reference. Used to append additional content. * @param object $comment Comment data object. * @param int $depth Depth of comment in reference to parents. @@ -1984,6 +2021,13 @@ class Walker_Comment extends Walker { * * @see WP_Query->comments * + * @global WP_Query $wp_query + * @global int $comment_alt + * @global int $comment_depth + * @global int $comment_thread_alt + * @global bool $overridden_cpage + * @global bool $in_comment_loop + * * @param string|array $args { * Optional. Formatting options. * @@ -2132,6 +2176,8 @@ function wp_list_comments( $args = array(), $comments = null ) { * in the array of fields. * * @since 3.0.0 + * @since 4.1.0 Introduced the 'class_submit' argument. + * @since 4.2.0 Introduced 'submit_button' and 'submit_fields' arguments. * * @param array $args { * Optional. Default arguments and form fields to override. @@ -2149,7 +2195,6 @@ function wp_list_comments( $args = array(), $comments = null ) { * @type string $comment_notes_before HTML element for a message displayed before the comment form. * Default 'Your email address will not be published.'. * @type string $comment_notes_after HTML element for a message displayed after the comment form. - * Default 'You may use these HTML tags and attributes ...'. * @type string $id_form The comment form element id attribute. Default 'commentform'. * @type string $id_submit The comment submit element id attribute. Default 'submit'. * @type string $class_submit The comment submit element class attribute. Default 'submit'. @@ -2159,6 +2204,11 @@ function wp_list_comments( $args = array(), $comments = null ) { * where %s is the author of the comment being replied to. * @type string $cancel_reply_link The translatable 'cancel reply' button label. Default 'Cancel reply'. * @type string $label_submit The translatable 'submit' button label. Default 'Post a comment'. + * @type string $submit_button HTML format for the Submit button. + * Default: ''. + * @type string $submit_field HTML format for the markup surrounding the Submit button and comment hidden + * fields. Default: '

%1$s %2$s', where %1$s is the + * submit button markup and %2$s is the comment hidden fields. * @type string $format The comment form format. Default 'xhtml'. Accepts 'xhtml', 'html5'. * } * @param int|WP_Post $post_id Post ID or WP_Post object to generate the form for. Default current post. @@ -2177,12 +2227,13 @@ function comment_form( $args = array(), $post_id = null ) { $req = get_option( 'require_name_email' ); $aria_req = ( $req ? " aria-required='true'" : '' ); + $html_req = ( $req ? " required='required'" : '' ); $html5 = 'html5' === $args['format']; $fields = array( 'author' => '

' . ' ' . - '

', + '

', 'email' => '

' . - '

', + '

', 'url' => '

' . '

', ); @@ -2199,13 +2250,13 @@ function comment_form( $args = array(), $post_id = null ) { $fields = apply_filters( 'comment_form_default_fields', $fields ); $defaults = array( 'fields' => $fields, - 'comment_field' => '

', + 'comment_field' => '

', /** This filter is documented in wp-includes/link-template.php */ 'must_log_in' => '

' . sprintf( __( 'You must be logged in to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '

', /** This filter is documented in wp-includes/link-template.php */ 'logged_in_as' => '

' . sprintf( __( 'Logged in as %2$s. Log out?' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '

', 'comment_notes_before' => '

' . __( 'Your email address will not be published.' ) . ''. ( $req ? $required_text : '' ) . '

', - 'comment_notes_after' => '

' . sprintf( __( 'You may use these HTML tags and attributes: %s' ), ' ' . allowed_tags() . '' ) . '

', + 'comment_notes_after' => '', 'id_form' => 'commentform', 'id_submit' => 'submit', 'class_submit' => 'submit', @@ -2214,6 +2265,8 @@ function comment_form( $args = array(), $post_id = null ) { 'title_reply_to' => __( 'Leave a Reply to %s' ), 'cancel_reply_link' => __( 'Cancel reply' ), 'label_submit' => __( 'Post Comment' ), + 'submit_button' => '', + 'submit_field' => '

%1$s %2$s

', 'format' => 'xhtml', ); @@ -2228,8 +2281,10 @@ function comment_form( $args = array(), $post_id = null ) { */ $args = wp_parse_args( $args, apply_filters( 'comment_form_defaults', $defaults ) ); - ?> - + // Ensure that the filtered args contain all required default values. + $args = array_merge( $defaults, $args ); + + if ( comments_open( $post_id ) ) : ?> -

- - -

+ tag. *