bbp_locate_template( string|array $template_names, bool $load = false, bool $require_once = true )
Retrieve the name of the highest priority template file that exists.
Description
Searches in the child theme before parent theme so that themes which inherit from a parent theme can just overload one file. If the template is not found in either of those, it looks in the theme-compat folder last.
Parameters
- $template_names
-
(Required) Template file(s) to search for, in order.
- $load
-
(Optional) If true the template file will be loaded if it is found.
Default value: false
- $require_once
-
(Optional) Whether to require_once or require. Has no effect if $load is false.
Default value: true
Return
(string) The template filename if one is located.
Source
File: bp-forums/core/template-functions.php
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | function bbp_locate_template( $template_names , $load = false, $require_once = true ) { // No file found yet $located = false; $template_locations = bbp_get_template_stack(); // Try to find a template file foreach ( ( array ) $template_names as $template_name ) { // Continue if template is empty if ( empty ( $template_name ) ) { continue ; } // Trim off any slashes from the template name $template_name = ltrim( $template_name , '/' ); // Loop through template stack foreach ( ( array ) $template_locations as $template_location ) { // Continue if $template_location is empty if ( empty ( $template_location ) ) { continue ; } // Check child theme first if ( file_exists ( trailingslashit( $template_location ) . $template_name ) ) { $located = trailingslashit( $template_location ) . $template_name ; break 2; } } } /** * This action exists only to follow the standard Forums coding convention, * and should not be used to short-circuit any part of the template locator. * * If you want to override a specific template part, please either filter * 'bbp_get_template_part' or add a new location to the template stack. */ do_action( 'bbp_locate_template' , $located , $template_name , $template_names , $template_locations , $load , $require_once ); // Maybe load the template if one was located if ( ( true === $load ) && ! empty ( $located ) ) { load_template( $located , $require_once ); } return $located ; } |
Changelog
Version | Description |
---|---|
bbPress (r3618) | 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.