diff --git a/wp-includes/comment.php b/wp-includes/comment.php index e19540f841..f71c2c975f 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -73,16 +73,20 @@ function get_approved_comments($post_id) { function &get_comment(&$comment, $output = OBJECT) { global $comment_cache, $wpdb; - if ( empty($comment) ) - return null; - - if ( is_object($comment) ) { + if ( empty($comment) ) { + if ( isset($GLOBALS['comment']) ) + $_comment = & $GLOBALS['comment']; + else + $_comment = null; + } elseif ( is_object($comment) ) { if ( !isset($comment_cache[$comment->comment_ID]) ) $comment_cache[$comment->comment_ID] = &$comment; $_comment = & $comment_cache[$comment->comment_ID]; } else { $comment = (int) $comment; - if ( !isset($comment_cache[$comment]) ) { + if ( isset($GLOBALS['comment']) && ($GLOBALS['comment']->id == $comment) ) { + $_comment = & $GLOBALS['comment']; + } elseif ( !isset($comment_cache[$comment]) ) { $_comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID = '$comment' LIMIT 1"); $comment_cache[$comment->comment_ID] = & $_comment; } else { diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index 0b45c7a422..7275825107 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -296,7 +296,21 @@ function get_edit_post_link( $id = 0 ) { function edit_post_link( $link = 'Edit This', $before = '', $after = '' ) { global $post; - + + if ( $post->post_type == 'attachment' ) + return; + elseif ( $post->post_type == 'page' ) { + if ( !current_user_can( 'edit_page', $post->ID ) ) + return; + + $file = 'page'; + } else { + if ( !current_user_can( 'edit_post', $post->ID ) ) + return; + + $file = 'post'; + } + $link = '' . $link . ''; echo $before . apply_filters( 'edit_post_link', $link, $post->ID ) . $after; } @@ -319,8 +333,17 @@ function get_edit_comment_link( $comment_id = 0 ) { } function edit_comment_link( $link = 'Edit This', $before = '', $after = '' ) { - global $comment; - + global $comment, $post; + + if ( $post->post_type == 'attachment' ) + return; + elseif ( $post->post_type == 'page' ) + if ( !current_user_can( 'edit_page', $post->ID ) ) + return; + else + if ( !current_user_can( 'edit_post', $post->ID ) ) + return; + $link = '' . $link . ''; echo $before . apply_filters( 'edit_comment_link', $link, $comment->comment_ID ) . $after; }