Make WordPress Core


Ignore:
Timestamp:
10/27/2008 04:31:26 PM (18 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.