Make WordPress Core


Ignore:
Timestamp:
10/27/2008 04:31:26 PM (16 years ago)
Author:
ryan
Message:

Make get_comment_link() paging aware. Props Viper007Bond. see #7956

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/comment.php

    r9335 r9367  
    521521
    522522/**
     523 * Calculate what page number a comment will appear on for comment paging.
     524 *
     525 * @since 2.7.0
     526 *
     527 * @param int $comment_ID Comment ID.
     528 * @param int $per_page Optional comments per page.
     529 * @return int|null Comment page number or null on error.
     530 */
     531function get_page_of_comment( $comment_ID, $per_page = null, $threaded = null ) {
     532    if ( !$comment = get_comment( $comment_ID ) )
     533        return;
     534
     535    if ( !get_option('page_comments') )
     536        return 1;
     537
     538    $comments = array_reverse( get_comments( $comment->comment_post_ID ) );
     539
     540    if ( null === $per_page )
     541        $per_page = get_option('comments_per_page');
     542
     543    if ( null === $threaded )
     544        $threaded = get_option('thread_comments');
     545
     546    // Find this comment's top level parent
     547    if ( $threaded ) {
     548        while ( 0 != $comment->comment_parent )
     549            $comment = get_comment( $comment->comment_parent );
     550    }
     551
     552    // Start going through the comments until we find what page number the above top level comment is on
     553    $page = 1;
     554    $comthispage = 0;
     555    foreach ( $comments as $com ) {
     556        if ( $threaded && 0 != $com->comment_parent )
     557            continue;
     558
     559        if ( $com->comment_ID == $comment->comment_ID )
     560            return $page;
     561
     562        $comthispage++;
     563
     564        if ( $comthispage >= $per_page ) {
     565            $page++;
     566            $comthispage = 0;
     567        }
     568    }
     569}
     570
     571/**
    523572 * Does comment contain blacklisted characters or words.
    524573 *
Note: See TracChangeset for help on using the changeset viewer.