File: /home/slfopp7cb1df/www/shaneconrad.me/wp-content/themes/doctors-profile/functions.php
<?php
/**
* Doctors Profile functions and definitions
*
* @link https://developer.wordpress.org/themes/basics/theme-functions/
*
* @package Doctors Profile
*/
if (!defined('DOCTORS_PROFILE_VERSION')) {
$doctors_profile_theme = wp_get_theme();
define('DOCTORS_PROFILE_VERSION', $doctors_profile_theme->get('Version'));
}
if (!function_exists('doctors_profile_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 doctors_profile_setup()
{
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory.
* If you're building a theme based on Doctors Profile, use a find and replace
* to change 'doctors-profile' to the name of your theme in all the template files.
*/
load_theme_textdomain('doctors-profile', get_template_directory() . '/languages');
// 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');
add_theme_support('editor-styles');
add_theme_support('custom-spacing');
add_theme_support('custom-line-height');
/*
* 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');
// This theme uses wp_nav_menu() in one location.
register_nav_menus(
array(
'main-menu' => esc_html__('Main Menu', 'doctors-profile'),
)
);
/*
* 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(
'doctors_profile_custom_background_args',
array(
'default-color' => 'ffffff',
'default-image' => '',
)
)
);
// Add theme support for selective refresh for widgets.
add_theme_support('customize-selective-refresh-widgets');
// Modern Block Editor Support
add_theme_support('wp-block-styles');
add_theme_support('align-wide');
add_theme_support('responsive-embeds');
// Block Patterns Support
add_theme_support('core-block-patterns');
// Appearance Tools (enables global styles UI)
add_theme_support('appearance-tools');
// Border support
add_theme_support('border');
// Link color support
add_theme_support('link-color');
// Custom spacing support
add_theme_support('custom-spacing');
// Custom units support (px, em, rem, vh, vw)
add_theme_support('custom-units');
// Enhanced editor styles
add_theme_support('editor-styles');
// Dark editor style support
add_theme_support('dark-editor-style');
/**
* 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,
)
);
// Custom Color Palette for Block Editor
add_theme_support('editor-color-palette', array(
array(
'name' => esc_html__('Primary Blue', 'doctors-profile'),
'slug' => 'primary-blue',
'color' => '#2c5aa0',
),
array(
'name' => esc_html__('Medical Green', 'doctors-profile'),
'slug' => 'medical-green',
'color' => '#28a745',
),
array(
'name' => esc_html__('Trust Blue', 'doctors-profile'),
'slug' => 'trust-blue',
'color' => '#007cba',
),
array(
'name' => esc_html__('Soft Gray', 'doctors-profile'),
'slug' => 'soft-gray',
'color' => '#f8f9fa',
),
array(
'name' => esc_html__('Dark Text', 'doctors-profile'),
'slug' => 'dark-text',
'color' => '#212529',
),
array(
'name' => esc_html__('Accent Orange', 'doctors-profile'),
'slug' => 'accent-orange',
'color' => '#fd7e14',
),
));
// Custom Font Sizes for Block Editor
add_theme_support('editor-font-sizes', array(
array(
'name' => esc_html__('Small', 'doctors-profile'),
'size' => 14,
'slug' => 'small'
),
array(
'name' => esc_html__('Normal', 'doctors-profile'),
'size' => 16,
'slug' => 'normal'
),
array(
'name' => esc_html__('Medium', 'doctors-profile'),
'size' => 20,
'slug' => 'medium'
),
array(
'name' => esc_html__('Large', 'doctors-profile'),
'size' => 28,
'slug' => 'large'
),
array(
'name' => esc_html__('Extra Large', 'doctors-profile'),
'size' => 36,
'slug' => 'extra-large'
),
));
// Disable custom colors and font sizes to use theme defaults
add_theme_support('disable-custom-colors');
add_theme_support('disable-custom-font-sizes');
// Enable editor gradient presets
add_theme_support('editor-gradient-presets', array(
array(
'name' => esc_html__('Medical Gradient', 'doctors-profile'),
'gradient' => 'linear-gradient(135deg, #2c5aa0 0%, #28a745 100%)',
'slug' => 'medical-gradient'
),
array(
'name' => esc_html__('Trust Gradient', 'doctors-profile'),
'gradient' => 'linear-gradient(135deg, #007cba 0%, #2c5aa0 100%)',
'slug' => 'trust-gradient'
),
));
// Add support for custom line height
add_theme_support('custom-line-height');
// Add support for experimental features
add_theme_support('experimental-link-color');
add_theme_support('experimental-custom-spacing');
add_editor_style(array(doctors_profile_fonts_url()));
}
endif;
add_action('after_setup_theme', 'doctors_profile_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 doctors_profile_content_width()
{
$GLOBALS['content_width'] = apply_filters('doctors_profile_content_width', 1170);
}
add_action('after_setup_theme', 'doctors_profile_content_width', 0);
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function doctors_profile_widgets_init()
{
register_sidebar(
array(
'name' => esc_html__('Sidebar', 'doctors-profile'),
'id' => 'sidebar-1',
'description' => esc_html__('Add widgets here.', 'doctors-profile'),
'before_widget' => '<section id="%1$s" class="widget shadow-sm mb-4 p-3 %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
}
add_action('widgets_init', 'doctors_profile_widgets_init');
/**
* Register custom fonts.
*/
function doctors_profile_fonts_url()
{
$fonts_url = '';
$font_families = array();
$font_families[] = 'Saira:400,400i,700,700i,900,900i';
$font_families[] = 'Poppins:400,400i,500,600,700,700i';
$query_args = array(
'family' => urlencode(implode('|', $font_families)),
'subset' => urlencode('latin,latin-ext'),
);
$fonts_url = add_query_arg($query_args, 'https://fonts.googleapis.com/css');
return esc_url_raw($fonts_url);
}
/**
* Enqueue scripts and styles.
*/
// In your doctors_profile_scripts function:
function doctors_profile_scripts()
{
wp_enqueue_style('doctors-profile-google-font', doctors_profile_fonts_url(), array(), null);
wp_enqueue_style('bootstrap', get_template_directory_uri() . '/assets/css/bootstrap.css', array(), '5.0.1', 'all');
wp_enqueue_style('fontawesome', get_template_directory_uri() . '/assets/css/all.css', array(), '5.15.3');
wp_enqueue_style('doctors-profile-default-style', get_template_directory_uri() . '/assets/css/default-style.css', array(), DOCTORS_PROFILE_VERSION);
wp_enqueue_style('doctors-profile-main-style', get_template_directory_uri() . '/assets/css/main.css', array(), DOCTORS_PROFILE_VERSION);
wp_enqueue_style('doctors-profile-style', get_stylesheet_uri(), array(), DOCTORS_PROFILE_VERSION);
wp_enqueue_style('doctors-profile-responsive-style', get_template_directory_uri() . '/assets/css/responsive.css', array(), DOCTORS_PROFILE_VERSION);
wp_enqueue_script('masonry');
wp_enqueue_script('doctors-profile-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array(), DOCTORS_PROFILE_VERSION, true);
wp_enqueue_script('mobile-menu', get_template_directory_uri() . '/assets/js/mobile-menu.js', array('jquery'), '1.0.10', true);
wp_enqueue_script('doctors-profile-scripts', get_template_directory_uri() . '/assets/js/scripts.js', array('jquery'), DOCTORS_PROFILE_VERSION, true);
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
// Add integrity checks for external scripts when possible
wp_enqueue_script('bootstrap', get_template_directory_uri() . '/assets/js/bootstrap.js', array('jquery'), '5.0.1', true);
}
add_action('wp_enqueue_scripts', 'doctors_profile_scripts');
function doctors_profile_gb_block_style()
{
wp_enqueue_style('doctors-profile-admin-google-font', doctors_profile_fonts_url(), array(), null);
}
add_action('enqueue_block_assets', 'doctors_profile_gb_block_style');
/**
* Implement the Custom Header feature.
*/
require get_template_directory() . '/inc/custom-header.php';
// Load all actions file
require get_template_directory() . '/actions/header-actions.php';
require get_template_directory() . '/actions/home-intro.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';
}
// web fonts loader
require get_template_directory() . '/inc/wptt-webfont-loader.php';
/*
* Customizer pro info .
*/
require get_template_directory() . '/inc/info/class-customize.php';
if (is_admin()) {
require_once trailingslashit(get_template_directory()) . 'inc/about/about.php';
}
/**
* Add tem plugin Recomended
*/
require get_template_directory() . '/inc/class-tgm-plugin-activation.php';
require get_template_directory() . '/inc/recomended-plugin.php';
// Disable XML-RPC
/**
* Load Block Editor Support and Patterns
*/
require get_template_directory() . '/inc/block-patterns.php';
/**
* Filter the except length to 20 words.
*
* @param int $length Excerpt length.
* @return int (Maybe) modified excerpt length.
*/
function doctors_profile_excerpt_length($length)
{
if (is_admin()) {
return $length;
}
return 20;
}
add_filter('excerpt_length', 'doctors_profile_excerpt_length', 999);
function doctors_profile_exerpt_empty_string($more)
{
if (is_admin()) {
return $more;
}
return '';
}
add_filter('excerpt_more', 'doctors_profile_exerpt_empty_string', 999);
// Disable XML-RPC
add_filter('xmlrpc_enabled', '__return_false');