File "functions.php"
Full Path: /websites/hqoliveoil/site/wp-content/themes/fairy/functions.php
File size: 13.05 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* fairy functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package fairy
*/
if (!defined('_S_VERSION')) {
// Replace the version number of the theme on each release.
define('_S_VERSION', '1.4.2');
}
if (!function_exists('fairy_setup')) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*/
function fairy_setup()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on fairy, use a find and replace
* to change 'fairy' to the name of your theme in all the template files.
*/
load_theme_textdomain('fairy');
// Add default posts and comments RSS feed links to head.
add_theme_support('automatic-feed-links');
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded <title> tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support('title-tag');
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
*/
add_theme_support('post-thumbnails');
add_image_size('fairy-large', 1170, 606, true);
add_image_size('fairy-medium', 800, 600, true);
// This theme uses wp_nav_menu() in one location.
register_nav_menus(
array(
'menu-1' => esc_html__('Primary Menu', 'fairy'),
'top-menu' => esc_html__('Top Menu', 'fairy'),
'social-menu' => esc_html__('Social Menu', 'fairy'),
)
);
/*
* Switch default core markup for search form, comment form, and comments
* to output valid HTML5.
*/
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
)
);
// Set up the WordPress core custom background feature.
add_theme_support(
'custom-background',
apply_filters(
'fairy_custom_background_args',
array(
'default-color' => 'e5ece9',
'default-image' => '',
)
)
);
// Add theme support for selective refresh for widgets.
add_theme_support('customize-selective-refresh-widgets');
// Add support for responsive embedded content.
add_theme_support('responsive-embeds');
// Add support for default block styles.
add_theme_support('wp-block-styles');
/*
* Add support custom font sizes.
*
* Add the line below to disable the custom color picker in the editor.
* add_theme_support( 'disable-custom-font-sizes' );
*/
add_theme_support(
'editor-font-sizes',
array(
array(
'name' => __('Small', 'fairy'),
'shortName' => __('S', 'fairy'),
'size' => 16,
'slug' => 'small',
),
array(
'name' => __('Medium', 'fairy'),
'shortName' => __('M', 'fairy'),
'size' => 20,
'slug' => 'medium',
),
array(
'name' => __('Large', 'fairy'),
'shortName' => __('L', 'fairy'),
'size' => 25,
'slug' => 'large',
),
array(
'name' => __('Larger', 'fairy'),
'shortName' => __('XL', 'fairy'),
'size' => 35,
'slug' => 'larger',
),
)
);
/**
* Add support for core custom logo.
*
* @link https://codex.wordpress.org/Theme_Logo
*/
add_theme_support(
'custom-logo',
array(
'height' => 250,
'width' => 250,
'flex-width' => true,
'flex-height' => true,
)
);
add_theme_support('woocommerce');
add_theme_support('wc-product-gallery-zoom');
add_theme_support('wc-product-gallery-slider');
// Add support for Yoast SEO Breadcrumbs.
add_theme_support('yoast-seo-breadcrumbs');
// Add support for Rank Math Breadcrumbs.
add_theme_support('rank-math-breadcrumbs');
}
endif;
add_action('after_setup_theme', 'fairy_setup');
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $content_width
*/
function fairy_content_width()
{
$GLOBALS['content_width'] = apply_filters('fairy_content_width', 640);
}
add_action('after_setup_theme', 'fairy_content_width', 0);
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function fairy_widgets_init()
{
register_sidebar(
array(
'name' => esc_html__('Sidebar', 'fairy'),
'id' => 'sidebar-1',
'description' => esc_html__('Add widgets here.', 'fairy'),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__('Shop Sidebar', 'fairy'),
'id' => 'sidebar-shop',
'description' => esc_html__('Add widgets here.', 'fairy'),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__('Footer 1', 'fairy'),
'id' => 'footer-1',
'description' => esc_html__('Add widgets here.', 'fairy'),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__('Footer 2', 'fairy'),
'id' => 'footer-2',
'description' => esc_html__('Add widgets here.', 'fairy'),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__('Footer 3', 'fairy'),
'id' => 'footer-3',
'description' => esc_html__('Add widgets here.', 'fairy'),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
}
add_action('widgets_init', 'fairy_widgets_init');
/**
* Load Font Family.
*/
if (!function_exists('fairy_fonts_url')) {
/**
* Register custom fonts.
* Credits:
* Twenty Seventeen WordPress Theme, Copyright 2016 WordPress.org
* Twenty Seventeen is distributed under the terms of the GNU GPL
*/
function fairy_fonts_url()
{
$fonts_url = '';
$font_families = array();
global $fairy_theme_options;
$fairy_theme_options = fairy_get_options_value();
$font_families[] = $fairy_theme_options['fairy-font-family-url'];
$font_families[] = $fairy_theme_options['fairy-font-heading-family-url'];
$font_families = array_unique($font_families);
$query_args = array(
'family' => rawurlencode(implode('|', $font_families)),
'subset' => rawurlencode('latin,latin-ext'),
);
$fonts_url = add_query_arg($query_args, 'https://fonts.googleapis.com/css');
return esc_url_raw($fonts_url);
}
}
/**
* Add preconnect for Google Fonts.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed.
* @return array $urls URLs to print for resource hints.
*/
function fairy_resource_hints($urls, $relation_type)
{
if (wp_style_is('fairy-fonts', 'queue') && 'preconnect' === $relation_type) {
$urls[] = array(
'href' => 'https://fonts.gstatic.com',
'crossorigin',
);
}
return $urls;
}
add_filter('wp_resource_hints', 'fairy_resource_hints', 10, 2);
/**
* Enqueue scripts and styles.
*/
function fairy_scripts()
{
/*google font */
global $fairy_theme_options;
$fairy_google_fonts_name = fairy_google_fonts();
$fairy_body_fonts = '';
$fairy_heading_fonts = '';
if (!empty($fairy_theme_options['fairy-font-family-url'])) {
$fairy_body_fonts = esc_attr($fairy_theme_options['fairy-font-family-url']);
}
if (!empty($fairy_theme_options['fairy-font-heading-family-url'])) {
$fairy_heading_fonts = esc_attr($fairy_theme_options['fairy-font-heading-family-url']);
}
$fairy_google_fonts_enqueue = array(
$fairy_body_fonts,
$fairy_heading_fonts,
);
$fairy_google_fonts_enqueue_uniques = array_unique($fairy_google_fonts_enqueue);
foreach ($fairy_google_fonts_enqueue_uniques as $fairy_google_fonts_enqueue_unique) {
wp_enqueue_style(
$fairy_google_fonts_enqueue_unique,
'//fonts.googleapis.com/css?family=' . $fairy_google_fonts_enqueue_unique . '',
array(),
''
);
}
$fairy_fontawesome = !empty($fairy_theme_options['fairy-font-awesome-version-loading']) ? esc_attr($fairy_theme_options['fairy-font-awesome-version-loading']) : 'version-6';
if ($fairy_fontawesome == 'version-4') {
/*Font-Awesome-master*/
wp_enqueue_style('font-awesome-4', get_template_directory_uri() . '/candidthemes/assets/framework/Font-Awesome/css/font-awesome.min.css', array(), _S_VERSION);
} else {
wp_enqueue_style('font-awesome-6', get_template_directory_uri() . '/candidthemes/assets/framework/font-awesome-6/css/all.min.css', array(), _S_VERSION);
/*Font-Awesome-master*/
}
wp_enqueue_style('slick', get_template_directory_uri() . '/candidthemes/assets/framework/slick/slick.css', array(), _S_VERSION);
wp_enqueue_style('slick-theme', get_template_directory_uri() . '/candidthemes/assets/framework/slick/slick-theme.css', array(), _S_VERSION);
wp_enqueue_style('fairy-style', get_stylesheet_uri(), array(), _S_VERSION);
wp_style_add_data('fairy-style', 'rtl', 'replace');
wp_enqueue_script('fairy-navigation', get_template_directory_uri() . '/js/navigation.js', array(), _S_VERSION, true);
if (!empty($fairy_theme_options['fairy-enable-sticky-sidebar']) && 1 == absint($fairy_theme_options['fairy-enable-sticky-sidebar'])) {
wp_enqueue_script('theia-sticky-sidebar', get_template_directory_uri() . '/candidthemes/assets/custom/js/theia-sticky-sidebar.js', array('jquery'), _S_VERSION, true);
}
wp_enqueue_script('slick', get_template_directory_uri() . '/candidthemes/assets/framework/slick/slick.js', array('jquery'), _S_VERSION, true);
wp_enqueue_script('masonry');
wp_enqueue_script('fairy-custom-js', get_template_directory_uri() . '/candidthemes/assets/custom/js/custom.js', array('jquery'), _S_VERSION, true);
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
if (!empty($fairy_theme_options['fairy-pagination-options'])) {
$fairy_pagination_option = $fairy_theme_options['fairy-pagination-options'];
if ($fairy_pagination_option == 'ajax') {
wp_enqueue_script('fairy-custom-pagination', get_template_directory_uri() . '/candidthemes/assets/custom/js/custom-infinte-pagination.js', array('jquery'), _S_VERSION, true);
global $wp_query;
$paged = (get_query_var('paged') > 1) ? get_query_var('paged') : 1;
$max_num_pages = $wp_query->max_num_pages;
wp_localize_script('fairy-custom-pagination', 'fairy_ajax', array(
'ajaxurl' => esc_url(admin_url('admin-ajax.php')),
'paged' => absint($paged),
'max_num_pages' => absint($max_num_pages),
'next_posts' => next_posts(absint($max_num_pages), false),
'show_more' => __('Load More', 'fairy'),
'no_more_posts' => __('No More', 'fairy'),
'pagination_option' => $fairy_pagination_option
));
}
}
}
add_action('wp_enqueue_scripts', 'fairy_scripts');
/**
* Implement the Custom Header feature.
*/
require get_template_directory() . '/inc/custom-header.php';
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/inc/template-tags.php';
/**
* Functions which enhance the theme by hooking into WordPress.
*/
require get_template_directory() . '/inc/template-functions.php';
/**
* Customizer additions.
*/
require get_template_directory() . '/inc/customizer.php';
/**
* Load Jetpack compatibility file.
*/
if (defined('JETPACK__VERSION')) {
require get_template_directory() . '/inc/jetpack.php';
}
/**
* Load Core File
*/
require get_template_directory() . '/candidthemes/core.php';
/**
* Load breadcrumb_trail File
*/
if (!function_exists('breadcrumb_trail')) {
require get_template_directory() . '/candidthemes/assets/framework/breadcrumbs/breadcrumbs.php';
}
/**
* For Admin Page
*/
if (is_admin()) {
require get_template_directory() . '/candidthemes/notice/admin-notice.php';
require get_template_directory() . '/candidthemes/about/about.php';
}