bbp_get_reply_url( int $reply_id, string $redirect_to = '' )
Return the paginated url to the reply in the reply loop
Description Description
Parameters Parameters
- $reply_id
-
(Optional) Reply id
- $redirect_to
-
(Optional) Pass a redirect value for use with shortcodes and other fun things.
Default value: ''
Return Return
(string) Link to reply relative to paginated topic
Source Source
File: includes/replies/template.php
function bbp_get_reply_url( $reply_id = 0, $redirect_to = '' ) {
// Set needed variables
$reply_id = bbp_get_reply_id( $reply_id );
// Juggle reply & topic IDs for unpretty URL formatting
if ( bbp_is_reply( $reply_id ) ) {
$topic_id = bbp_get_reply_topic_id( $reply_id );
$topic = bbp_get_topic( $topic_id );
} elseif ( bbp_is_topic( $reply_id ) ) {
$topic_id = bbp_get_topic_id( $reply_id );
$topic = bbp_get_topic( $topic_id );
$reply_id = $topic_id;
}
// Hierarchical reply page
if ( bbp_thread_replies() ) {
$reply_page = 1;
// Standard reply page
} else {
$reply_page = ceil( (int) bbp_get_reply_position( $reply_id, $topic_id ) / (int) bbp_get_replies_per_page() );
}
// Get links & URLS
$reply_hash = '#post-' . $reply_id;
$topic_link = bbp_get_topic_permalink( $topic_id, $redirect_to );
$topic_url = remove_query_arg( 'view', $topic_link );
// Get vars needed to support pending topics with unpretty links
$has_slug = ! empty( $topic ) ? $topic->post_name : '';
$pretty = bbp_use_pretty_urls();
$published = ! bbp_is_topic_pending( $topic_id );
// Don't include pagination if on first page
if ( 1 >= $reply_page ) {
// Pretty permalinks
if ( ! empty( $has_slug ) && ! empty( $pretty ) && ! empty( $published ) ) {
$url = user_trailingslashit( $topic_url ) . $reply_hash;
// Unpretty links
} else {
$url = $topic_url . $reply_hash;
}
// Include pagination
} else {
// Pretty permalinks
if ( ! empty( $has_slug ) && ! empty( $pretty ) && ! empty( $published ) ) {
$url = trailingslashit( $topic_url ) . trailingslashit( bbp_get_paged_slug() ) . $reply_page;
$url = user_trailingslashit( $url ) . $reply_hash;
// Unpretty links
} else {
$url = add_query_arg( 'paged', $reply_page, $topic_url ) . $reply_hash;
}
}
// Add topic view query arg back to end if it is set
if ( bbp_get_view_all() ) {
$url = bbp_add_view_all( $url );
}
// Filter & return
return apply_filters( 'bbp_get_reply_url', $url, $reply_id, $redirect_to );
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.0.0 | Introduced. |