BP_Component::includes( array $includes = array() )

Include required files.


Description Description

Please note that, by default, this method is fired on the bp_include hook, with priority 8. This is necessary so that core components are loaded in time to be available to third-party plugins. However, this load order means that third-party plugins whose main files are loaded at bp_include with priority 10 (as recommended), will not be loaded in time for their includes() method to fire automatically.

For this reason, it is recommended that your plugin has its own method or function for requiring necessary files. If you must use this method, you will have to call it manually in your constructor class, ie $this->includes();

Note that when you pass an array value like ‘actions’ to includes, it looks for the following three files (assuming your component is called ‘my_component’):

  • ./actions
  • ./bp-my_component/actions
  • ./bp-my_component/bp-my_component-actions.php

Top ↑

Parameters Parameters

$includes

(array) (Optional) An array of file names, or file name chunks, to be parsed and then included.

Default value: array()


Source Source

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

	public function includes( $includes = array() ) {

		// Bail if no files to include.
		if ( ! empty( $includes ) ) {
			$slashed_path = trailingslashit( $this->path );

			// Loop through files to be included.
			foreach ( (array) $includes as $file ) {

				$paths = array(

					// Passed with no extension.
					'bp-' . $this->id . '/bp-' . $this->id . '-' . $file  . '.php',
					'bp-' . $this->id . '-' . $file . '.php',
					'bp-' . $this->id . '/' . $file . '.php',

					// Passed with extension.
					$file,
					'bp-' . $this->id . '-' . $file,
					'bp-' . $this->id . '/' . $file,
				);

				foreach ( $paths as $path ) {
					if ( @is_file( $slashed_path . $path ) ) {
						require( $slashed_path . $path );
						break;
					}
				}
			}
		}

		/**
		 * Fires at the end of the includes method inside BP_Component.
		 *
		 * This is a dynamic hook that is based on the component string ID.
		 *
		 * @since 1.5.0
		 */
		do_action( 'bp_' . $this->id . '_includes' );
	}


Top ↑

Changelog Changelog

Changelog
Version Description
1.5.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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