bbp_get_author_link( array $args = array() )
Return the author link of the post
Description Description
Parameters Parameters
- $args
-
(Optional) If an integer, it is used as reply id.
Default value: array()
Return Return
(string) Author link of reply
Source Source
File: includes/users/template.php
function bbp_get_author_link( $args = array() ) {
$post_id = is_numeric( $args ) ? (int) $args : 0;
// Parse arguments against default values
$r = bbp_parse_args( $args, array(
'post_id' => $post_id,
'link_title' => '',
'type' => 'both',
'size' => 80,
'sep' => ''
), 'get_author_link' );
// Confirmed topic
if ( bbp_is_topic( $r['post_id'] ) ) {
return bbp_get_topic_author_link( $r );
// Confirmed reply
} elseif ( bbp_is_reply( $r['post_id'] ) ) {
return bbp_get_reply_author_link( $r );
}
// Default return value
$author_link = '';
// Neither a reply nor a topic, so could be a revision
if ( ! empty( $r['post_id'] ) ) {
// Get some useful reply information
$user_id = get_post_field( 'post_author', $r['post_id'] );
$author_url = bbp_get_user_profile_url( $user_id );
$anonymous = bbp_is_reply_anonymous( $r['post_id'] );
// Generate title with the display name of the author
if ( empty( $r['link_title'] ) ) {
$author = get_the_author_meta( 'display_name', $user_id );
$title = empty( $anonymous )
? esc_attr__( "View %s's profile", 'bbpress' )
: esc_attr__( "Visit %s's website", 'bbpress' );
$r['link_title'] = sprintf( $title, $author );
}
// Setup title and author_links array
$author_links = array();
$link_title = ! empty( $r['link_title'] )
? ' title="' . esc_attr( $r['link_title'] ) . '"'
: '';
// Get avatar (unescaped, because HTML)
if ( ( 'avatar' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
$author_links['avatar'] = get_avatar( $user_id, $r['size'] );
}
// Get display name (escaped, because never HTML)
if ( ( 'name' === $r['type'] ) || ( 'both' === $r['type'] ) ) {
$author_links['name'] = esc_html( get_the_author_meta( 'display_name', $user_id ) );
}
// Empty array
$links = array();
$sprint = '<span %1$s>%2$s</span>';
// Wrap each link
foreach ( $author_links as $link => $link_text ) {
$link_class = ' class="bbp-author-' . esc_attr( $link ) . '"';
$links[] = sprintf( $sprint, $link_class, $link_text );
}
// Juggle
$author_links = $links;
unset( $links );
// Filter sections
$sections = apply_filters( 'bbp_get_author_links', $author_links, $r, $args );
// Assemble sections into author link
$author_link = implode( $r['sep'], $sections );
// Only wrap in link if profile exists
if ( empty( $anonymous ) && bbp_user_has_profile( $user_id ) ) {
$author_link = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $author_url ), $link_title, ' class="bbp-author-link"', $author_link );
}
}
// Filter & return
return apply_filters( 'bbp_get_author_link', $author_link, $r, $args );
}
Changelog Changelog
| Version | Description |
|---|---|
| 2.0.0 | Introduced. |