bp_core_get_directory_page_ids( string $status = 'active' )

Fetch a list of BP directory pages from the appropriate meta table.

Description

Parameters

$status

(Optional) 'active' to return only pages associated with active components, 'all' to return all saved pages. When running save routines, use 'all' to avoid removing data related to inactive components. Default: 'active'.

Default value: 'active'

Return

(array|string) An array of page IDs, keyed by component names, or an empty string if the list is not found.

Source

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

507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
function bp_core_get_directory_page_ids( $status = 'active' ) {
    $page_ids = bp_get_option( 'bp-pages', array() );
 
    // Loop through pages
    foreach ( $page_ids as $component_name => $page_id ) {
 
        // Ensure that empty indexes are unset. Should only matter in edge cases.
        if ( empty( $component_name ) || empty( $page_id ) ) {
            unset( $page_ids[ $component_name ] );
        }
 
        // Trashed pages should never appear in results.
        if ( 'trash' == get_post_status( $page_id ) ) {
            unset( $page_ids[ $component_name ] );
        }
 
        // 'register', 'activate', 'terms' and 'privacy' do not have components, but should be whitelisted.
        if ( in_array( $component_name, array( 'register', 'activate', 'terms', 'privacy', 'profile_dashboard', 'new_forums_page' ), true ) ) {
            continue;
        }
 
        // Remove inactive component pages.
        if ( ( 'active' === $status ) && ! bp_is_active( $component_name ) ) {
            unset( $page_ids[ $component_name ] );
        }
    }
 
    /**
     * Filters the list of BP directory pages from the appropriate meta table.
     *
     * @since BuddyPress 1.5.0
     * @since BuddyPress 2.9.0 Add $status parameter
     *
     * @param array  $page_ids Array of directory pages.
     * @param string $status   Page status to limit results to
     */
    return (array) apply_filters( 'bp_core_get_directory_page_ids', $page_ids, $status );
}

Changelog

Changelog
Version Description
BuddyPress 1.5.0 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.