blocksy-tainacan/tainacan-blocksy/utils.php

83 lines
2.9 KiB
PHP

<?php
/**
* Checks if the current activate theme is either blocksy, a child theme of blocksy or one of them in a customizer preview
*/
if ( !function_exists('tainacan_blocksy_is_blocksy_activated') ) {
function tainacan_blocksy_is_blocksy_activated() {
$theme = wp_get_theme();
$is_correct_theme = strpos( $theme->get_stylesheet(), 'blocksy' ) !== false;
$is_child_theme_of_blocksy = false;
if ($theme->parent() !== false)
$is_child_theme_of_blocksy = strpos( $theme->get_template(), 'blocksy' ) !== false;
if ( isset($_SERVER['REQUEST_URI']) && strpos( $_SERVER['REQUEST_URI'], 'customize' ) !== false ) {
$preview_theme_slug = isset( $_REQUEST['theme'] ) ? strtolower($_REQUEST['theme']) : ( isset( $_REQUEST['customize_theme'] ) ? strtolower($_REQUEST['customize_theme']) : '');
$preview_theme = wp_get_theme($preview_theme_slug);
$is_correct_theme = strpos( $preview_theme->get_stylesheet(), 'blocksy' ) !== false;
$is_child_theme_of_blocksy = false;
if ($preview_theme->parent() !== false)
$is_child_theme_of_blocksy = strpos( $preview_theme->get_template(), 'blocksy' ) !== false;
}
return $is_correct_theme || $is_child_theme_of_blocksy;
}
}
/**
* Gets version of current theme
*/
if ( !function_exists('tainacan_blocksy_get_theme_version') ) {
function tainacan_blocksy_get_theme_version() {
if ( tainacan_blocksy_is_blocksy_activated() ) {
$theme = wp_get_theme();
$is_child_theme_of_blocksy = FALSE;
if ($theme->parent() !== false)
$is_child_theme_of_blocksy = strpos( $theme->get_template(), 'blocksy' ) !== false;
return $is_child_theme_of_blocksy ? $theme->parent()->get('Version') : $theme->get('Version');
} else {
return NULL;
}
}
}
/**
* Gets plugin or theme directory URL
*/
if ( !function_exists('tainacan_blocksy_get_plugin_dir_url') ) {
function tainacan_blocksy_get_plugin_dir_url() {
return !TAINACAN_BLOCKSY_IS_CHILD_THEME ? plugin_dir_url(__FILE__) : get_stylesheet_directory_uri();
}
}
/**
* Gets plugin or theme directory path
*/
if ( !function_exists('tainacan_blocksy_get_plugin_dir_path') ) {
function tainacan_blocksy_get_plugin_dir_path() {
return !TAINACAN_BLOCKSY_IS_CHILD_THEME ? plugin_dir_path(__FILE__) : get_stylesheet_directory();
}
}
/**
* Manages correct template location in plugin
*/
if ( !function_exists('tainacan_blocksy_get_template_part') ) {
function tainacan_blocksy_get_template_part($path) {
if (!TAINACAN_BLOCKSY_IS_CHILD_THEME) {
include(TAINACAN_BLOCKSY_PLUGIN_DIR_PATH . '/' . $path . '.php');
return; // Should not return this, as include contains boolean
} else
return get_template_part($path);
}
}