bbp_get_reply_ancestors( int $reply_id )
Get all ancestors to a reply
Description Description
Because settings can be changed, this function does not care if hierarchical replies are active or to what depth.
Parameters Parameters
- $reply_id
-
(Required)
Return Return
(array)
Source Source
File: includes/replies/functions.php
function bbp_get_reply_ancestors( $reply_id = 0 ) {
// Validation
$reply_id = bbp_get_reply_id( $reply_id );
$ancestors = array();
// Reply id is valid
if ( ! empty( $reply_id ) ) {
// Try to get reply parent
$reply_to = bbp_get_reply_to( $reply_id );
// Reply has a hierarchical parent
if ( ! empty( $reply_to ) ) {
// Setup the current ID and current post as an ancestor
$id = $reply_to;
$ancestors = array( $reply_to );
// Get parent reply
while ( $ancestor = bbp_get_reply( $id ) ) {
// Does parent have a parent?
$grampy_id = bbp_get_reply_to( $ancestor->ID );
// Loop detection: If the ancestor has been seen before, break.
if ( empty( $ancestor->post_parent ) || ( $grampy_id === $reply_id ) || in_array( $grampy_id, $ancestors, true ) ) {
break;
}
$id = $ancestors[] = $grampy_id;
}
}
}
// Filter & return
return (array) apply_filters( 'bbp_get_reply_ancestors', $ancestors, $reply_id );
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.6.0 | Introduced. |