bp_get_title_parts( string $seplocation = 'right' )

Get the title parts of the BuddyPress displayed page

Description

Parameters

$seplocation

(string) (Optional) Location for the separator.

Default value: 'right'

Return

(array) the title parts

Source

File: bp-core/bp-core-template.php

function bp_get_title_parts( $seplocation = 'right' ) {
	$bp = buddypress();

	// Defaults to an empty array.
	$bp_title_parts = array();

	// If this is not a BP page, return the empty array.
	if ( bp_is_blog_page() ) {
		return $bp_title_parts;
	}

	// If this is a 404, return the empty array.
	if ( is_404() ) {
		return $bp_title_parts;
	}

	// If this is the front page of the site, return the empty array.
	if ( is_front_page() || is_home() ) {
		return $bp_title_parts;
	}

	// Return the empty array if not a BuddyPress page.
	if ( ! is_buddypress() ) {
		return $bp_title_parts;
	}

	// Now we can build the BP Title Parts
	// Is there a displayed user, and do they have a name?
	$displayed_user_name = bp_get_displayed_user_fullname();

	// Displayed user.
	if ( ! empty( $displayed_user_name ) && ! is_404() ) {

		// Get the component's ID to try and get its name.
		$component_id = $component_name = bp_current_component();

		// Set empty subnav name.
		$component_subnav_name = '';

		if ( ! empty( $bp->members->nav ) ) {
			$primary_nav_item = $bp->members->nav->get_primary( array( 'slug' => $component_id ), false );
			$primary_nav_item = reset( $primary_nav_item );
		}

		// Use the component nav name.
		if ( ! empty( $primary_nav_item->name ) ) {
			$component_name = _bp_strip_spans_from_title( $primary_nav_item->name );

		// Fall back on the component ID.
		} elseif ( ! empty( $bp->{$component_id}->id ) ) {
			$component_name = ucwords( $bp->{$component_id}->id );
		}

		if ( ! empty( $bp->members->nav ) ) {
			$secondary_nav_item = $bp->members->nav->get_secondary( array(
				'parent_slug' => $component_id,
				'slug'        => bp_current_action()
			), false );

			if ( $secondary_nav_item ) {
				$secondary_nav_item = reset( $secondary_nav_item );
			}
		}

		// Append action name if we're on a member component sub-page.
		if ( ! empty( $secondary_nav_item->name ) && ! empty( $bp->canonical_stack['action'] ) ) {
			$component_subnav_name = $secondary_nav_item->name;
		}

		// If on the user profile's landing page, just use the fullname.
		if ( bp_is_current_component( $bp->default_component ) && ( bp_get_requested_url() === bp_displayed_user_domain() ) ) {
			$bp_title_parts[] = $displayed_user_name;

		// Use component name on member pages.
		} else {
			$bp_title_parts = array_merge( $bp_title_parts, array_map( 'strip_tags', array(
				$displayed_user_name,
				$component_name,
			) ) );

			// If we have a subnav name, add it separately for localization.
			if ( ! empty( $component_subnav_name ) ) {
				$bp_title_parts[] = strip_tags( $component_subnav_name );
			}
		}

	// A single item from a component other than Members.
	} elseif ( bp_is_single_item() ) {
		$component_id = bp_current_component();

		if ( ! empty( $bp->{$component_id}->nav ) ) {
			$secondary_nav_item = $bp->{$component_id}->nav->get_secondary( array(
				'parent_slug' => bp_current_item(),
				'slug'        => bp_current_action()
			), false );

			if ( $secondary_nav_item ) {
				$secondary_nav_item = reset( $secondary_nav_item );
			}
		}

		$single_item_subnav = '';

		if ( ! empty( $secondary_nav_item->name ) ) {
			$single_item_subnav = $secondary_nav_item->name;
		}

		$bp_title_parts = array( $bp->bp_options_title, $single_item_subnav );

	// An index or directory.
	} elseif ( bp_is_directory() ) {
		$current_component = bp_current_component();

		// No current component (when does this happen?).
		$bp_title_parts = array( __( 'Directory', 'buddyboss' ) );

		if ( ! empty( $current_component ) ) {
			$bp_title_parts = array( bp_get_directory_title( $current_component ) );
		}

	// Sign up page.
	} elseif ( bp_is_register_page() ) {
		$bp_title_parts = array( __( 'Create an Account', 'buddyboss' ) );

	// Activation page.
	} elseif ( bp_is_activation_page() ) {
		$bp_title_parts = array( __( 'Activate Your Account', 'buddyboss' ) );

	// Group creation page.
	} elseif ( bp_is_group_create() ) {
		$bp_title_parts = array( __( 'Create a Group', 'buddyboss' ) );

	// Blog creation page.
	} elseif ( bp_is_create_blog() ) {
		$bp_title_parts = array( __( 'Create a Site', 'buddyboss' ) );
	}

	// Strip spans.
	$bp_title_parts = array_map( '_bp_strip_spans_from_title', $bp_title_parts );

	// Sep on right, so reverse the order.
	if ( 'right' === $seplocation ) {
		$bp_title_parts = array_reverse( $bp_title_parts );
	}

	/**
	 * Filter BuddyPress title parts before joining.
	 *
	 * @since BuddyPress 2.4.3
	 *
	 * @param array $bp_title_parts Current BuddyPress title parts.
	 * @return array
	 */
	return (array) apply_filters( 'bp_get_title_parts', $bp_title_parts );
}

Changelog

Changelog
Version Description
BuddyPress 2.4.3 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.