Created
May 31, 2016 13:02
-
-
Save slobich/d182d6abe614bb43074f1594b91a4a86 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Retrieves a template part | |
| * | |
| * @since v1.5 | |
| * | |
| * Taken from bbPress | |
| * | |
| * @param string $slug | |
| * @param string $name Optional. Default null | |
| * | |
| * @uses rcp_locate_template() | |
| * @uses load_template() | |
| * @uses get_template_part() | |
| */ | |
| function rcp_get_template_part( $slug, $name = null, $load = true ) { | |
| // Execute code for this part | |
| do_action( 'get_template_part_' . $slug, $slug, $name ); | |
| // Setup possible parts | |
| $templates = array(); | |
| if ( isset( $name ) ) | |
| $templates[] = $slug . '-' . $name . '.php'; | |
| $templates[] = $slug . '.php'; | |
| // Allow template parts to be filtered | |
| $templates = apply_filters( 'rcp_get_template_part', $templates, $slug, $name ); | |
| // Return the part that is found | |
| return rcp_locate_template( $templates, $load, false ); | |
| } | |
| /** | |
| * Retrieve the name of the highest priority template file that exists. | |
| * | |
| * Searches in the STYLESHEETPATH before TEMPLATEPATH 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. | |
| * | |
| * Taken from bbPress | |
| * | |
| * @since v1.5 | |
| * | |
| * @param string|array $template_names Template file(s) to search for, in order. | |
| * @param bool $load If true the template file will be loaded if it is found. | |
| * @param bool $require_once Whether to require_once or require. Default true. | |
| * Has no effect if $load is false. | |
| * @return string The template filename if one is located. | |
| */ | |
| function rcp_locate_template( $template_names, $load = false, $require_once = true ) { | |
| // No file found yet | |
| $located = false; | |
| // 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, '/' ); | |
| // Check child theme first | |
| if ( file_exists( trailingslashit( get_stylesheet_directory() ) . 'rcp/' . $template_name ) ) { | |
| $located = trailingslashit( get_stylesheet_directory() ) . 'rcp/' . $template_name; | |
| break; | |
| // Check parent theme next | |
| } elseif ( file_exists( trailingslashit( get_template_directory() ) . 'rcp/' . $template_name ) ) { | |
| $located = trailingslashit( get_template_directory() ) . 'rcp/' . $template_name; | |
| break; | |
| // Check theme compatibility last | |
| } elseif ( file_exists( trailingslashit( rcp_get_templates_dir() ) . $template_name ) ) { | |
| $located = trailingslashit( rcp_get_templates_dir() ) . $template_name; | |
| break; | |
| } | |
| } | |
| if ( ( true == $load ) && ! empty( $located ) ) | |
| load_template( $located, $require_once ); | |
| return $located; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment