bbp_form_slug_conflict_check( string $slug, string $default )

Used to check if a Forums slug conflicts with an existing known slug.

Description

Parameters

$slug

(string) (Required)

$default

(string) (Required)

Source

File: bp-forums/admin/settings.php

function bbp_form_slug_conflict_check( $slug, $default ) {

	// Only set the slugs once ver page load
	static $the_core_slugs = array();

	// Get the form value
	$this_slug = bbp_get_form_option( $slug, $default, true );

	if ( empty( $the_core_slugs ) ) {

		// Slugs to check
		$core_slugs = apply_filters( 'bbp_slug_conflict_check', array(

			/** WordPress Core ****************************************************/

			// Core Post Types
			'post_base'       => array( 'name' => __( 'Posts',         'buddyboss' ), 'default' => 'post',          'context' => 'WordPress' ),
			'page_base'       => array( 'name' => __( 'Pages',         'buddyboss' ), 'default' => 'page',          'context' => 'WordPress' ),
			'revision_base'   => array( 'name' => __( 'Revisions',     'buddyboss' ), 'default' => 'revision',      'context' => 'WordPress' ),
			'attachment_base' => array( 'name' => __( 'Attachments',   'buddyboss' ), 'default' => 'attachment',    'context' => 'WordPress' ),
			'nav_menu_base'   => array( 'name' => __( 'Menus',         'buddyboss' ), 'default' => 'nav_menu_item', 'context' => 'WordPress' ),

			// Post Tags
			'tag_base'        => array( 'name' => __( 'Tag base',      'buddyboss' ), 'default' => 'tag',           'context' => 'WordPress' ),

			// Post Categories
			'category_base'   => array( 'name' => __( 'Category base', 'buddyboss' ), 'default' => 'category',      'context' => 'WordPress' ),

			/** Forums Core ******************************************************/

			// Forum archive slug
			'_bbp_root_slug'          => array( 'name' => __( 'Forums base', 'buddyboss' ), 'default' => 'forums', 'context' => 'Forums' ),

			// Topic archive slug
			'_bbp_topic_archive_slug' => array( 'name' => __( 'Discussions base', 'buddyboss' ), 'default' => 'discussions', 'context' => 'Forums' ),

			// Forum slug
			'_bbp_forum_slug'         => array( 'name' => __( 'Forum slug',  'buddyboss' ), 'default' => 'forum',  'context' => 'Forums' ),

			// Topic slug
			'_bbp_topic_slug'         => array( 'name' => __( 'Discussion slug',  'buddyboss' ), 'default' => 'discussion',  'context' => 'Forums' ),

			// Reply slug
			'_bbp_reply_slug'         => array( 'name' => __( 'Reply slug',  'buddyboss' ), 'default' => 'reply',  'context' => 'Forums' ),

			// User profile slug
			'_bbp_user_slug'          => array( 'name' => __( 'User base',   'buddyboss' ), 'default' => 'users',  'context' => 'Forums' ),

			// View slug
			'_bbp_view_slug'          => array( 'name' => __( 'View base',   'buddyboss' ), 'default' => 'view',   'context' => 'Forums' ),

			// Topic tag slug
			'_bbp_topic_tag_slug'     => array( 'name' => __( 'Discussion tag slug', 'buddyboss' ), 'default' => 'discussion-tag', 'context' => 'Forums' ),
		) );

		/** BuddyBoss Core *******************************************************/

		if ( defined( 'BP_VERSION' ) ) {
			$bp = buddypress();

			// Loop through root slugs and check for conflict
			if ( !empty( $bp->pages ) ) {
				foreach ( $bp->pages as $page => $page_data ) {
					$page_base    = $page . '_base';
					$page_title   = sprintf( __( '%s page', 'buddyboss' ), $page_data->title );
					$core_slugs[$page_base] = array( 'name' => $page_title, 'default' => $page_data->slug, 'context' => 'BuddyPress' );
				}
			}
		}

		// Set the static
		$the_core_slugs = apply_filters( 'bbp_slug_conflict', $core_slugs );
	}

	// Loop through slugs to check
	foreach ( $the_core_slugs as $key => $value ) {

		// Get the slug
		$slug_check = bbp_get_form_option( $key, $value['default'], true );

		// Compare
		if ( ( $slug !== $key ) && ( $slug_check === $this_slug ) ) : ?>

			<span class="attention"><?php printf( esc_html__( 'Possible %1$s conflict: %2$s', 'buddyboss' ), $value['context'], '<strong>' . $value['name'] . '</strong>' ); ?></span>

		<?php endif;
	}
}

Changelog

Changelog
Version Description
bbPress (r3306) 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.