????JFIF??x?x????'
| Server IP : 104.21.30.238 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/./tempvsty/pontiacques.org/wp-content/themes/layerswp/core/helpers/ |
Upload File : |
<?php /**
* Extension helper funtions
*
* This file is used to add functionality related to extensions, for example adding templates, registering extensions, etc.
*
* @package Layers
* @since Layers 1.0.0
*/
/**
* Get template file locations
*
* Provides a way for extention developers to add their own template files, for example for WooCommerce, adding single-product.php inside of an extension as opposed to a child theme
*
*/
if ( !function_exists('layers_add_template_locations') ) {
function layers_get_template_locations(){
$template_locations = array();
return apply_filters( 'layers_template_locations' , $template_locations );
}
} // layers_add_template_locations
/**
* Load Template Files
*
* This function filters load_template() and fetchs the relevant Layers template from which ever plugin has specified it
*
* @param string $template template file to search for
*/
if ( !function_exists( 'layers_load_templates' ) ) {
function layers_load_template( $template ){
// Get registered template locations
$template_locations = layers_get_template_locations();
// Get the base name of the file to look for
$template_slug = basename( $template );
// Set the default file
$file = $template;
// Check if a custom template exists in the theme folder, if not, load the plugin template file
if( !empty( $template_locations ) ) {
// Loop through the registered template locations
foreach( $template_locations as $location ){
// Piece together the ful url
$extension_file = $location . '/' . $template_slug;
// If this template file exists, we're game
if( file_exists( $extension_file ) ) {
$file = $extension_file;
break;
}
}
} elseif ( $theme_file = locate_template( $template_slug ) ) {
$file = $theme_file;
}
return apply_filters( 'layers_template_' . $template, $file );
}
} // layers_add_template_locations
add_filter( 'template_include', 'layers_load_template', 99 );
/**
* Locate Plugin Templates
*
* We fire this on the single_template && taxonomy_template filters, why? So that we can make sure that the plugin you are running has its templates added to the load_template() search
*
* @param array $template Array of templates we are looking for (eg. single.php)
* @param boolean $load Whether or not to load the template file right away
* @param boolean $require_once Trigger require once
*/
if ( !function_exists( 'layers_locate_plugin_templates' ) ) {
function layers_locate_plugin_templates( $template_names, $load = false, $require_once = true ) {
if ( !is_array($template_names) )
return '';
$located = '';
// Get registered template locations
$template_locations = layers_get_template_locations();
foreach ( $template_names as $template_name ) {
if ( !$template_name )
continue;
if ( file_exists( get_stylesheet_directory() . '/' . $template_name)) {
$located = get_stylesheet_directory() . '/' . $template_name;
break;
} else if ( file_exists( get_template_directory() . '/' . $template_name) ) {
$located = get_template_directory() . '/' . $template_name;
break;
} elseif( !empty( $template_locations ) ) {
// Loop through the registered template locations
foreach( $template_locations as $location ){
// Piece together the ful url
$extension_file = $location . '/' . $template_name;
// If this template file exists, we're game
if( file_exists( $extension_file ) ) {
$located = $extension_file;
return $located;
}
}
}
}
if ( $load && '' != $located )
load_template( $located, $require_once );
return $located;
}
} // layers_locate_plugin_templates
/**
* Get Custom Author Template
*
* This force-adds our custom post type templates to the list of templates to search for, eg. author-portfolio.php
*
* @param string $template Name of the template file we're looking for
*/
if ( !function_exists( 'layers_get_custom_author_template' ) ) {
function layers_get_custom_author_template($template) {
global $wp_query;
$object = $wp_query->get_queried_object();
if ( !in_array( $object->name, layers_get_standard_wp_post_types() ) ) {
$templates = array( 'author.php');
$template = layers_locate_plugin_templates($templates);
}
// return apply_filters('author_template', $template);
return $template;
}
} // layers_get_custom_author_template
add_filter( 'author_template', 'layers_get_custom_author_template' );
/**
* Get Custom Archive Template
*
* This force-adds our custom post type templates to the list of templates to search for, eg. archive-portfolio.php
*
* @param string $template Name of the template file we're looking for
*/
if ( !function_exists( 'layers_get_custom_archive_template' ) ) {
function layers_get_custom_archive_template($template) {
global $wp_query;
$object = $wp_query->get_queried_object();
if ( is_object( $object ) && !in_array( $object->name, layers_get_standard_wp_post_types() ) ) {
$templates = array('archive-' . $object->name . '.php', 'archive.php');
$template = layers_locate_plugin_templates($templates);
}
// return apply_filters('archive_template', $template);
return $template;
}
} // layers_get_custom_archive_template
add_filter( 'archive_template', 'layers_get_custom_archive_template' );
/**
* Get Custom Single Template
*
* This force-adds our custom post type templates to the list of templates to search for, eg. single-portfolio.php
*
* @param string $template Name of the template file we're looking for
*/
if ( !function_exists( 'layers_get_custom_single_template' ) ) {
function layers_get_custom_single_template($template) {
global $wp_query;
$object = $wp_query->get_queried_object();
if ( !in_array( $object->post_type, layers_get_standard_wp_post_types() ) ) {
$templates = array('single-' . $object->post_type . '.php', 'single.php');
$template = layers_locate_plugin_templates($templates);
}
// return apply_filters('single_template', $template);
return $template;
}
} // layers_get_custom_single_template
add_filter( 'single_template', 'layers_get_custom_single_template' );
/**
* Get Custom Taxonomy Template
*
* This force-adds our custom taxonomy templates to the list of templates to search for, eg. taxonomy-portfolio-categry.php
*
* @param string $template Name of the template file we're looking for
*/
if ( !function_exists( 'layers_get_custom_taxonomy_template' ) ) {
function layers_get_custom_taxonomy_template($template) {
// Setup the taxonomy we're looking for
$taxonomy = get_query_var('taxonomy');
if ( !in_array( $taxonomy, layers_get_standard_wp_taxonomies() ) ) {
$term = get_query_var('term');
$templates = array();
if ( $taxonomy && $term )
$templates[] = "taxonomy-$taxonomy-$term.php";
if ( $taxonomy )
$templates[] = "taxonomy-$taxonomy.php";
$templates[] = "taxonomy.php";
$template = layers_locate_plugin_templates($templates);
}
// return apply_filters('taxonomy_template', $template);
return $template;
}
} // layers_get_custom_taxonomy_template
add_filter( 'taxonomy_template', 'layers_get_custom_taxonomy_template' );
//@TODO: Cleanup this code
if( !function_exists( 'layers_get_plugins') ) {
function layers_get_plugins(){
$active_plugins = wp_get_active_and_valid_plugins();
$layers_plugins = array();
foreach ( (array) $active_plugins as $plugin_key ) {
$plugin_data = get_plugin_data( $plugin_key );
if( isset( $plugin_data[ 'Layers Plugin' ] ) && 'true' == strtolower( $plugin_data[ 'Layers Plugin' ] ) ){
$layers_plugins[ $plugin_key ] = $plugin_data;
}
}
return $layers_plugins;
}
} // layers_get_plugins
if( !function_exists( 'layers_plugin_headers') ) {
function layers_plugin_headers( $extra_headers ) {
$extra_headers[] = 'Layers Plugin';
$extra_headers[] = 'Layers Required Version';
return $extra_headers;
}
} // layers_get_plugins
add_filter( 'extra_plugin_headers', 'layers_plugin_headers' );