X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/48ab98cb1779cf2088c1351ac3dd3d0da6fb31d3..a7cd4c052013b423c6301153f68c7fdbaa2a447b:/wp-includes/comment-template.php?ds=sidebyside diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index 0d44376b..4e75e7bc 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -35,10 +35,13 @@ function get_comment_author( $comment_ID = 0 ) { * Filter the returned comment author name. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * - * @param string $author The comment author's username. + * @param string $author The comment author's username. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_author', $author ); + return apply_filters( 'get_comment_author', $author, $comment_ID, $comment ); } /** @@ -50,14 +53,17 @@ function get_comment_author( $comment_ID = 0 ) { */ function comment_author( $comment_ID = 0 ) { $author = get_comment_author( $comment_ID ); + /** * Filter the comment author's name for display. * * @since 1.2.0 + * @since 4.1.0 The `$comment_ID` parameter was added. * - * @param string $author The comment author's username. + * @param string $author The comment author's username. + * @param int $comment_ID The comment ID. */ - $author = apply_filters( 'comment_author', $author ); + $author = apply_filters( 'comment_author', $author, $comment_ID ); echo $author; } @@ -71,14 +77,18 @@ function comment_author( $comment_ID = 0 ) { */ function get_comment_author_email( $comment_ID = 0 ) { $comment = get_comment( $comment_ID ); + /** * Filter the comment author's returned email address. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * * @param string $comment_author_email The comment author's email address. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_author_email', $comment->comment_author_email ); + return apply_filters( 'get_comment_author_email', $comment->comment_author_email, $comment_ID, $comment ); } /** @@ -96,14 +106,17 @@ function get_comment_author_email( $comment_ID = 0 ) { */ function comment_author_email( $comment_ID = 0 ) { $author_email = get_comment_author_email( $comment_ID ); + /** * Filter the comment author's email for display. * * @since 1.2.0 + * @since 4.1.0 The `$comment_ID` parameter was added. * * @param string $author_email The comment author's email address. + * @param int $comment_ID The comment ID. */ - echo apply_filters( 'author_email', $author_email ); + echo apply_filters( 'author_email', $author_email, $comment_ID ); } /** @@ -147,17 +160,20 @@ function comment_author_email_link( $linktext = '', $before = '', $after = '' ) */ function get_comment_author_email_link( $linktext = '', $before = '', $after = '' ) { global $comment; + /** * Filter the comment author's email for display. * * Care should be taken to protect the email address and assure that email - * harvesters do not capture your commenters' email address. + * harvesters do not capture your commenter's email address. * * @since 1.2.0 + * @since 4.1.0 The `$comment` parameter was added. * * @param string $comment_author_email The comment author's email address. + * @param object $comment The comment object. */ - $email = apply_filters( 'comment_email', $comment->comment_author_email ); + $email = apply_filters( 'comment_email', $comment->comment_author_email, $comment ); if ((!empty($email)) && ($email != '@')) { $display = ($linktext != '') ? $linktext : $email; $return = $before; @@ -194,11 +210,14 @@ function get_comment_author_link( $comment_ID = 0 ) { * Filter the comment author's link for display. * * @since 1.5.0 + * @since 4.1.0 The `$author` and `$comment_ID` parameters were added. * - * @param string $return The HTML-formatted comment author link. - * Empty for an invalid URL. + * @param string $return The HTML-formatted comment author link. + * Empty for an invalid URL. + * @param string $author The comment author's username. + * @param int $comment_ID The comment ID. */ - return apply_filters( 'get_comment_author_link', $return ); + return apply_filters( 'get_comment_author_link', $return, $author, $comment_ID ); } /** @@ -231,10 +250,13 @@ function get_comment_author_IP( $comment_ID = 0 ) { * Filter the comment author's returned IP address. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * * @param string $comment_author_IP The comment author's IP address. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_author_IP', $comment->comment_author_IP ); + return apply_filters( 'get_comment_author_IP', $comment->comment_author_IP, $comment_ID, $comment ); } /** @@ -262,14 +284,18 @@ function get_comment_author_url( $comment_ID = 0 ) { $comment = get_comment( $comment_ID ); $url = ('http://' == $comment->comment_author_url) ? '' : $comment->comment_author_url; $url = esc_url( $url, array('http', 'https') ); + /** * Filter the comment author's URL. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * - * @param string $url The comment author's URL. + * @param string $url The comment author's URL. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_author_url', $url ); + return apply_filters( 'get_comment_author_url', $url, $comment_ID, $comment ); } /** @@ -282,14 +308,17 @@ function get_comment_author_url( $comment_ID = 0 ) { */ function comment_author_url( $comment_ID = 0 ) { $author_url = get_comment_author_url( $comment_ID ); + /** * Filter the comment author's URL for display. * * @since 1.2.0 + * @since 4.1.0 The `$comment_ID` parameter was added. * * @param string $author_url The comment author's URL. + * @param int $comment_ID The comment ID. */ - echo apply_filters( 'comment_url', $author_url ); + echo apply_filters( 'comment_url', $author_url, $comment_ID ); } /** @@ -317,8 +346,11 @@ function get_comment_author_url_link( $linktext = '', $before = '', $after = '' $display = ($linktext != '') ? $linktext : $url; $display = str_replace( 'http://www.', '', $display ); $display = str_replace( 'http://', '', $display ); - if ( '/' == substr($display, -1) ) + + if ( '/' == substr($display, -1) ) { $display = substr($display, 0, -1); + } + $return = "$before$display$after"; /** @@ -445,9 +477,10 @@ function get_comment_class( $class = '', $comment_id = null, $post_id = null ) { * @param array $classes An array of comment classes. * @param string $class A comma-separated list of additional classes added to the list. * @param int $comment_id The comment id. + * @param object $comment The comment * @param int|WP_Post $post_id The post ID or WP_Post object. */ - return apply_filters( 'comment_class', $classes, $class, $comment_id, $post_id ); + return apply_filters( 'comment_class', $classes, $class, $comment_id, $comment, $post_id ); } /** @@ -506,6 +539,7 @@ function get_comment_excerpt( $comment_ID = 0 ) { $comment = get_comment( $comment_ID ); $comment_text = strip_tags($comment->comment_content); $blah = explode(' ', $comment_text); + if (count($blah) > 20) { $k = 20; $use_dotdotdot = 1; @@ -513,6 +547,7 @@ function get_comment_excerpt( $comment_ID = 0 ) { $k = count($blah); $use_dotdotdot = 0; } + $excerpt = ''; for ($i=0; $i<$k; $i++) { $excerpt .= $blah[$i] . ' '; @@ -523,10 +558,13 @@ function get_comment_excerpt( $comment_ID = 0 ) { * Filter the retrieved comment excerpt. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * - * @param string $excerpt The comment excerpt text. + * @param string $excerpt The comment excerpt text. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_excerpt', $excerpt ); + return apply_filters( 'get_comment_excerpt', $excerpt, $comment_ID, $comment ); } /** @@ -539,14 +577,17 @@ function get_comment_excerpt( $comment_ID = 0 ) { */ function comment_excerpt( $comment_ID = 0 ) { $comment_excerpt = get_comment_excerpt($comment_ID); + /** * Filter the comment excerpt for display. * * @since 1.2.0 + * @since 4.1.0 The `$comment_ID` parameter was added. * * @param string $comment_excerpt The comment excerpt text. + * @param int $comment_ID The comment ID. */ - echo apply_filters( 'comment_excerpt', $comment_excerpt ); + echo apply_filters( 'comment_excerpt', $comment_excerpt, $comment_ID ); } /** @@ -558,14 +599,17 @@ function comment_excerpt( $comment_ID = 0 ) { */ function get_comment_ID() { global $comment; + /** * Filter the returned comment ID. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` parameter was added. * - * @param int $comment_ID The current comment ID. + * @param int $comment_ID The current comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_ID', $comment->comment_ID ); + return apply_filters( 'get_comment_ID', $comment->comment_ID, $comment ); } /** @@ -663,7 +707,7 @@ function get_comments_link( $post_id = 0 ) { * @since 0.71 * * @param string $deprecated Not Used. - * @param bool $deprecated_2 Not Used. + * @param string $deprecated_2 Not Used. */ function comments_link( $deprecated = '', $deprecated_2 = '' ) { if ( !empty( $deprecated ) ) @@ -869,10 +913,13 @@ function get_comment_type( $comment_ID = 0 ) { * Filter the returned comment type. * * @since 1.5.0 + * @since 4.1.0 The `$comment_ID` and `$comment` parameters were added. * * @param string $comment_type The type of comment, such as 'comment', 'pingback', or 'trackback'. + * @param int $comment_ID The comment ID. + * @param object $comment The comment object. */ - return apply_filters( 'get_comment_type', $comment->comment_type ); + return apply_filters( 'get_comment_type', $comment->comment_type, $comment_ID, $comment ); } /** @@ -1112,15 +1159,21 @@ function comments_template( $file = '/comments.php', $separate_comments = false */ $comment_author_url = esc_url($commenter['comment_author_url']); - /** @todo Use API instead of SELECTs. */ - if ( $user_ID) { - $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) ) ORDER BY comment_date_gmt", $post->ID, $user_ID)); - } else if ( empty($comment_author) ) { - $comments = get_comments( array('post_id' => $post->ID, 'status' => 'approve', 'order' => 'ASC') ); - } else { - $comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date_gmt", $post->ID, wp_specialchars_decode($comment_author,ENT_QUOTES), $comment_author_email)); + $comment_args = array( + 'order' => 'ASC', + 'orderby' => 'comment_date_gmt', + 'status' => 'approve', + 'post_id' => $post->ID, + ); + + if ( $user_ID ) { + $comment_args['include_unapproved'] = array( $user_ID ); + } else if ( ! empty( $comment_author_email ) ) { + $comment_args['include_unapproved'] = array( $comment_author_email ); } + $comments = get_comments( $comment_args ); + /** * Filter the comments array. * @@ -1300,18 +1353,19 @@ 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 mixed Link to show comment form, if successful. False, if comments are closed. + * @return null|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', - 'reply_text' => __('Reply'), - 'login_text' => __('Log in to Reply'), - 'depth' => 0, - 'before' => '', - 'after' => '' + 'add_below' => 'comment', + 'respond_id' => 'respond', + 'reply_text' => __( 'Reply' ), + 'reply_to_text' => __( 'Reply to %s' ), + 'login_text' => __( 'Log in to Reply' ), + 'depth' => 0, + 'before' => '', + 'after' => '' ); $args = wp_parse_args( $args, $defaults ); @@ -1320,24 +1374,46 @@ function get_comment_reply_link( $args = array(), $comment = null, $post = null return; } - $add_below = $args['add_below']; - $respond_id = $args['respond_id']; - $reply_text = $args['reply_text']; - $comment = get_comment( $comment ); + if ( empty( $post ) ) { $post = $comment->comment_post_ID; } + $post = get_post( $post ); if ( ! comments_open( $post->ID ) ) { return false; } + /** + * Filter the comment reply link arguments. + * + * @since 4.1.0 + * + * @param array $args Comment reply link arguments. See {@see get_comment_reply_link()} + * for more information on accepted arguments. + * @param object $comment The object of the comment being replied to. + * @param WP_Post $post The {@see WP_Post} object. + */ + $args = apply_filters( 'comment_reply_link_args', $args, $comment, $post ); + if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) { - $link = '' . $args['login_text'] . ''; + $link = sprintf( '%s', + esc_url( wp_login_url( get_permalink() ) ), + $args['login_text'] + ); } else { - $link = "comment_ID ) ) . "#" . $respond_id . "' onclick='return addComment.moveForm(\"$add_below-$comment->comment_ID\", \"$comment->comment_ID\", \"$respond_id\", \"$post->ID\")'>$reply_text"; + $onclick = sprintf( 'return addComment.moveForm( "%1$s-%2$s", "%2$s", "%3$s", "%4$s" )', + $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'], + $onclick, + esc_attr( sprintf( $args['reply_to_text'], $comment->comment_author ) ), + $args['reply_text'] + ); } /** * Filter the comment reply link. @@ -1390,7 +1466,7 @@ function comment_reply_link($args = array(), $comment = null, $post = null) { * } * @param int|WP_Post $post Optional. Post ID or WP_Post object the comment is going to be displayed on. * Default current post. - * @return string|bool|null Link to show comment form, if successful. False, if comments are closed. + * @return false|null|string Link to show comment form, if successful. False, if comments are closed. */ function get_post_reply_link($args = array(), $post = null) { $defaults = array( @@ -1403,9 +1479,7 @@ function get_post_reply_link($args = array(), $post = null) { ); $args = wp_parse_args($args, $defaults); - $add_below = $args['add_below']; - $respond_id = $args['respond_id']; - $reply_text = $args['reply_text']; + $post = get_post($post); if ( ! comments_open( $post->ID ) ) { @@ -1413,9 +1487,20 @@ function get_post_reply_link($args = array(), $post = null) { } if ( get_option('comment_registration') && ! is_user_logged_in() ) { - $link = '' . $args['login_text'] . ''; + $link = sprintf( '%s', + wp_login_url( get_permalink() ), + $args['login_text'] + ); } else { - $link = "$reply_text"; + $onclick = sprintf( 'return addComment.moveForm( "%1$s-%2$s", "0", "%3$s", "%2$s" )', + $args['add_below'], $post->ID, $args['respond_id'] + ); + + $link = sprintf( "%s", + get_permalink( $post->ID ) . '#' . $args['respond_id'], + $onclick, + $args['reply_text'] + ); } $formatted_link = $args['before'] . $link . $args['after']; /** @@ -1525,7 +1610,7 @@ function comment_id_fields( $id = 0 ) { /** * Display text based on comment reply status. * - * Only affects users with Javascript disabled. + * Only affects users with JavaScript disabled. * * @since 2.7.0 * @@ -1819,9 +1904,16 @@ class Walker_Comment extends Walker { $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> -
- $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> -
+ $add_below, + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + 'before' => '
', + 'after' => '
' + ) ) ); + ?> + @@ -1869,9 +1961,15 @@ class Walker_Comment extends Walker { -
- 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?> -
+ 'div-comment', + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + 'before' => '
', + 'after' => '
' + ) ) ); + ?> ' message. + * @type string $logged_in_as HTML element for a 'logged in as [user]' message. * @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'. * @type string $name_submit The comment submit element name attribute. Default 'submit'. * @type string $title_reply The translatable 'reply' button label. Default 'Leave a Reply'. * @type string $title_reply_to The translatable 'reply-to' button label. Default 'Leave a Reply to %s', @@ -2083,7 +2182,7 @@ function comment_form( $args = array(), $post_id = null ) { 'author' => '

' . ' ' . '

', 'email' => '

' . - '

', + '

', 'url' => '

' . '

', ); @@ -2100,15 +2199,16 @@ 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_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() . '' ) . '

', 'id_form' => 'commentform', 'id_submit' => 'submit', + 'class_submit' => 'submit', 'name_submit' => 'submit', 'title_reply' => __( 'Leave a Reply' ), 'title_reply_to' => __( 'Leave a Reply to %s' ), @@ -2154,7 +2254,7 @@ function comment_form( $args = array(), $post_id = null ) {
> tag. + * Fires at the top of the comment form, inside the form tag. * * @since 3.0.0 */ @@ -2201,7 +2301,7 @@ function comment_form( $args = array(), $post_id = null ) { /** * Filter a comment form field for display. * - * The dynamic portion of the filter hook, $name, refers to the name + * The dynamic portion of the filter hook, `$name`, refers to the name * of the comment form field. Such as 'author', 'email', or 'url'. * * @since 3.0.0 @@ -2230,7 +2330,7 @@ function comment_form( $args = array(), $post_id = null ) { ?>

- +