BP_Core_Nav::delete_nav( string $slug = '', string $parent_slug = '' )

Unset an item or a subitem of the nav.


Description Description


Parameters Parameters

$slug

(Optional) The slug of the main item.

Default value: ''

$parent_slug

(Optional) The slug of the sub item.

Default value: ''


Top ↑

Return Return

(false|callable|array) False on failure, the screen function(s) on success.


Top ↑

Source Source

File: bp-core/classes/class-bp-core-nav.php

	public function delete_nav( $slug = '', $parent_slug = '' ) {

		// Bail if slug is empty
		if ( empty( $slug ) ) {
			return false;
		}

		// We're deleting a child
		if ( ! empty( $parent_slug ) ) {

			// Validate the subnav
			$sub_items = $this->get_secondary( array( 'parent_slug' => $parent_slug, 'slug' => $slug ), false );

			if ( ! $sub_items ) {
				return false;
			}

			$sub_item = reset( $sub_items );

			if ( empty( $sub_item->slug ) ) {
				return false;
			}

			// Delete the child
			unset( $this->nav[ $this->object_id ][ $parent_slug . '/' . $slug ] );

			// Return the deleted item's screen function
			return array( $sub_item->screen_function );

		// We're deleting a parent
		} else {
			// Validate the nav
			$nav_items = $this->get_primary( array( 'slug' => $slug ), false );

			if ( ! $nav_items ) {
				return false;
			}

			$nav_item = reset( $nav_items );

			if ( empty( $nav_item->slug ) ) {
				return false;
			}

			$screen_functions = array( $nav_item->screen_function );

			// Life's unfair, children won't survive the parent :(
			$sub_items = $this->get_secondary( array( 'parent_slug' => $nav_item->slug ), false );

			if ( ! empty( $sub_items ) ) {
				foreach ( $sub_items as $sub_item ) {
					$screen_functions[] = $sub_item->screen_function;

					// Delete the child
					unset( $this->nav[ $this->object_id ][ $nav_item->slug . '/' . $sub_item->slug ] );
				}
			}

			// Delete the parent.
			unset( $this->nav[ $this->object_id ][ $nav_item->slug ] );

			// Return the deleted item's screen functions.
			return $screen_functions;
		}
	}

Top ↑

Changelog Changelog

Changelog
Version Description
2.6.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.