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('astrid-large-thumb', 700);
add_image_size('astrid-medium-thumb', 520);
add_image_size('astrid-small-thumb', 360);
add_image_size('astrid-project-thumb', 500, 310, true);
add_image_size('astrid-client-thumb', 250);
add_image_size('astrid-testimonial-thumb', 100);
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => esc_html__( 'Primary', 'astrid' ),
'footer' => esc_html__( 'Footer', 'astrid' ),
) );
/*
* 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',
) );
/*
* Enable support for Post Formats.
* See https://developer.wordpress.org/themes/functionality/post-formats/
*/
add_theme_support( 'post-formats', array(
'aside',
'image',
'video',
'quote',
'link',
) );
// Set up the WordPress core custom background feature.
add_theme_support( 'custom-background', apply_filters( 'astrid_custom_background_args', array(
'default-color' => 'f5f9f8',
'default-image' => '',
) ) );
add_theme_support( 'custom-logo', array(
'height' => 80,
'width' => 200,
'flex-height' => true,
) );
}
endif;
add_action( 'after_setup_theme', 'astrid_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 astrid_content_width() {
$GLOBALS['content_width'] = apply_filters( 'astrid_content_width', 640 );
}
add_action( 'after_setup_theme', 'astrid_content_width', 0 );
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function astrid_widgets_init() {
register_sidebar( array(
'name' => esc_html__( 'Sidebar', 'astrid' ),
'id' => 'sidebar-1',
'description' => '',
'before_widget' => '',
'before_title' => '
',
) );
//Register widget areas for the Widgetized page template
$pages = get_pages(array(
'meta_key' => '_wp_page_template',
'meta_value' => 'page-templates/page_widgetized.php',
));
foreach($pages as $page){
register_sidebar( array(
'name' => esc_html__( 'Page - ', 'astrid' ) . $page->post_title,
'id' => 'widget-area-' . strtolower($page->post_name),
'description' => esc_html__( 'Use this widget area to build content for the page: ', 'astrid' ) . $page->post_title,
'before_widget' => '',
'before_title' => '',
) );
}
//Footer widget areas
$widget_areas = get_theme_mod('footer_widget_areas', '3');
for ($i=1; $i<=$widget_areas; $i++) {
register_sidebar( array(
'name' => __( 'Footer ', 'astrid' ) . $i,
'id' => 'footer-' . $i,
'description' => '',
'before_widget' => '',
'before_title' => '',
) );
}
register_widget( 'Atframework_Services' );
register_widget( 'Atframework_Skills' );
register_widget( 'Atframework_Facts' );
register_widget( 'Atframework_Employees' );
register_widget( 'Atframework_Projects' );
register_widget( 'Atframework_Testimonials' );
register_widget( 'Atframework_Clients' );
register_widget( 'Atframework_Posts' );
register_widget( 'Atframework_Video' );
register_widget( 'Atframework_Recent_Posts' );
register_widget( 'Atframework_Social' );
}
add_action( 'widgets_init', 'astrid_widgets_init' );
//Homepage widgets
$astrid_widgets = array('services', 'skills', 'facts', 'employees', 'projects', 'testimonials', 'clients', 'posts');
foreach ( $astrid_widgets as $astrid_widget) {
locate_template( '/inc/framework/widgets/front-' . $astrid_widget . '.php', true, false );
}
//Sidebar widgets
require get_template_directory() . "/inc/framework/widgets/video-widget.php";
require get_template_directory() . "/inc/framework/widgets/posts-widget.php";
require get_template_directory() . "/inc/framework/widgets/social-widget.php";
/**
* Enqueue scripts and styles.
*/
function astrid_scripts() {
wp_enqueue_style( 'astrid-style', get_stylesheet_uri() );
$body_font = get_theme_mod('body_font_name', '//fonts.googleapis.com/css?family=Open+Sans:300,300italic,600,600italic');
$headings_font = get_theme_mod('headings_font_name', '//fonts.googleapis.com/css?family=Josefin+Sans:300italic,300');
$remove = array("", "https:", "http:");
$body_url = str_replace($remove, '', $body_font);
$headings_url = str_replace($remove, '', $headings_font);
wp_enqueue_style( 'astrid-body-fonts', esc_url($body_url) );
wp_enqueue_style( 'astrid-headings-fonts', esc_url($headings_url) );
wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/fonts/font-awesome.min.css' );
wp_enqueue_script( 'astrid-main', get_template_directory_uri() . '/js/main.js', array('jquery'), '', true );
wp_enqueue_script( 'astrid-scripts', get_template_directory_uri() . '/js/scripts.min.js', array('jquery'), '20210510', true );
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
if ( astrid_blog_layout() == 'masonry-layout' && (is_home() || is_archive()) ) {
wp_enqueue_script( 'astrid-masonry-init', get_template_directory_uri() . '/js/masonry-init.js', array('masonry'), '', true );
}
wp_enqueue_script( 'astrid-html5shiv', get_template_directory_uri() . '/js/html5shiv.js', array(), '', true );
wp_script_add_data( 'astrid-html5shiv', 'conditional', 'lt IE 9' );
}
add_action( 'wp_enqueue_scripts', 'astrid_scripts' );
/**
* Enqueue Bootstrap
*/
function astrid_enqueue_bootstrap() {
wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap/bootstrap.min.css', array(), true );
}
add_action( 'wp_enqueue_scripts', 'astrid_enqueue_bootstrap', 9 );
/**
* Customizer styles
*/
function astrid_customizer_styles($hook) {
if ( ( 'customize.php' != $hook ) && ( 'widgets.php' != $hook ) ) {
return;
}
wp_enqueue_style( 'astrid-customizer-styles', get_template_directory_uri() . '/inc/framework/css/customizer.css' );
}
add_action( 'admin_enqueue_scripts', 'astrid_customizer_styles' );
/**
* Blog layout
*/
function astrid_blog_layout() {
$layout = get_theme_mod('blog_layout','list');
return $layout;
}
/**
* Remove archives labels
*/
function astrid_category_label($title) {
if ( is_category() ) {
$title = '' . single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = '' . single_tag_title( '', false );
} elseif ( is_author() ) {
$title = '' . get_the_author() . '';
}
return $title;
}
add_filter('get_the_archive_title', 'astrid_category_label');
/**
* Header image check
*/
function astrid_has_header() {
$front_header = get_theme_mod('front_header_type' ,'image');
$site_header = get_theme_mod('site_header_type', 'nothing');
global $post;
if ( !is_404() || !is_search() ) {
$single_toggle = get_post_meta( $post->ID, '_astrid_single_header_shortcode', true );
} else {
$single_toggle = false;
}
if ($single_toggle != '') {
return 'has-single';
} else {
if ( get_header_image() && ( $front_header == 'image' && is_front_page() ) || ( $site_header == 'image' && !is_front_page() ) ) {
return 'has-header';
} elseif ( ($front_header == 'shortcode' && is_front_page()) || ($site_header == 'shortcode' && !is_front_page()) ) {
return 'has-shortcode';
} elseif ( ($front_header == 'video' && is_front_page()) || ($site_header == 'video' && !is_front_page()) ) {
return 'has-video';
}
}
}
/**
* Full width single posts
*/
function astrid_fullwidth_singles($classes) {
if ( function_exists('is_woocommerce') ) {
$woocommerce = is_woocommerce();
} else {
$woocommerce = false;
}
$single_layout = get_theme_mod('fullwidth_single', 0);
if ( is_single() && !$woocommerce && $single_layout ) {
$classes[] = 'fullwidth-single';
}
return $classes;
}
add_filter('body_class', 'astrid_fullwidth_singles');
/**
* Polylang compatibility
*/
if ( function_exists('pll_register_string') ) :
function astrid_polylang() {
pll_register_string('Header text', get_theme_mod('header_text'), 'Astrid');
pll_register_string('Header subtext', get_theme_mod('header_subtext'), 'Astrid');
pll_register_string('Header button', get_theme_mod('header_button'), 'Astrid');
}
add_action( 'admin_init', 'astrid_polylang' );
endif;
/**
* Header text
*/
function astrid_header_text() {
if ( !function_exists('pll_register_string') ) {
$header_text = get_theme_mod('header_text');
$header_subtext = get_theme_mod('header_subtext');
$header_button = get_theme_mod('header_button');
} else {
$header_text = pll__(get_theme_mod('header_text'));
$header_subtext = pll__(get_theme_mod('header_subtext'));
$header_button = pll__(get_theme_mod('header_button'));
}
$header_button_url = get_theme_mod('header_button_url');
echo '';
}
/**
* Site branding
*/
if ( ! function_exists( 'astrid_branding' ) ) :
function astrid_branding() {
$site_logo = get_theme_mod('site_logo');
if ( function_exists( 'the_custom_logo' ) && has_custom_logo() ) {
the_custom_logo();
} elseif ( $site_logo ) {
echo '
';
} else {
if ( is_front_page() && is_home() ) {
echo '';
} else {
echo '' . esc_html(get_bloginfo('name')) . '
';
}
echo '' . esc_html(get_bloginfo( 'description' )) . '
';
}
}
endif;
/**
* Footer site branding
*/
if ( ! function_exists( 'astrid_footer_branding' ) ) :
function astrid_footer_branding() {
$footer_logo = get_theme_mod('footer_logo');
echo '';
}
endif;
/**
* Footer contact
*/
if ( ! function_exists( 'astrid_footer_contact' ) ) :
function astrid_footer_contact() {
$footer_contact_address = get_theme_mod('footer_contact_address');
$footer_contact_email = antispambot(get_theme_mod('footer_contact_email'));
$footer_contact_phone = get_theme_mod('footer_contact_phone');
echo '';
}
endif;
/**
* Clearfix posts
*/
function astrid_clearfix_posts( $classes ) {
$classes[] = 'clearfix';
return $classes;
}
add_filter( 'post_class', 'astrid_clearfix_posts' );
/**
* Excerpt length
*/
function astrid_excerpt_length( $length ) {
$excerpt = get_theme_mod('exc_length', '40');
return absint($excerpt);
}
add_filter( 'excerpt_length', 'astrid_excerpt_length', 99 );
/**
* Footer credits
*/
function astrid_footer_credits() {
echo '';
printf( __( 'Powered by %s', 'astrid' ), 'WordPress' );
echo '';
echo ' | ';
printf( __( 'Theme: %2$s by %1$s.', 'astrid' ), 'aThemes', 'Astrid' );
}
add_action( 'astrid_footer', 'astrid_footer_credits' );
function astrid_remove_page_template() {
if ( !function_exists('astrid_pro_load_widgets') ) {
global $pagenow;
if ( in_array( $pagenow, array( 'post-new.php', 'post.php') ) && get_post_type() == 'page' ) { ?>
", "https:", "http:");
$body_url = str_replace($remove, '', $body_font);
$headings_url = str_replace($remove, '', $headings_font);
wp_enqueue_style( 'astrid-body-fonts', esc_url($body_url) );
wp_enqueue_style( 'astrid-headings-fonts', esc_url($headings_url) );
//Dynamic styles
$custom = '';
//Fonts
$body_fonts = get_theme_mod('body_font_family');
$headings_fonts = get_theme_mod('headings_font_family');
if ( $body_fonts !='' ) {
$custom .= ".editor-block-list__layout, .editor-block-list__layout .editor-block-list__block { font-family:" . $body_fonts . ";}"."\n";
}
if ( $headings_fonts !='' ) {
$custom .= ".editor-post-title__block .editor-post-title__input, .editor-block-list__layout .editor-post-title__input, .editor-block-list__layout h1, .editor-block-list__layout h2, .editor-block-list__layout h3, .editor-block-list__layout h4, .editor-block-list__layout h5, .editor-block-list__layout h6 { font-family:" . $headings_fonts . ";}"."\n";
}
//H1 size
$h1_size = get_theme_mod( 'h1_size','36' );
if ($h1_size) {
$custom .= ".editor-block-list__layout h1 { font-size:" . intval($h1_size) . "px; }"."\n";
}
//H2 size
$h2_size = get_theme_mod( 'h2_size','30' );
if ($h2_size) {
$custom .= ".editor-block-list__layout h2 { font-size:" . intval($h2_size) . "px; }"."\n";
}
//H3 size
$h3_size = get_theme_mod( 'h3_size','24' );
if ($h3_size) {
$custom .= ".editor-block-list__layout h3 { font-size:" . intval($h3_size) . "px; }"."\n";
}
//H4 size
$h4_size = get_theme_mod( 'h4_size','16' );
if ($h4_size) {
$custom .= ".editor-block-list__layout h4 { font-size:" . intval($h4_size) . "px; }"."\n";
}
//H5 size
$h5_size = get_theme_mod( 'h5_size','14' );
if ($h5_size) {
$custom .= ".editor-block-list__layout h5 { font-size:" . intval($h5_size) . "px; }"."\n";
}
//H6 size
$h6_size = get_theme_mod( 'h6_size','12' );
if ($h6_size) {
$custom .= ".editor-block-list__layout h6 { font-size:" . intval($h6_size) . "px; }"."\n";
}
//Body size
$body_size = get_theme_mod( 'body_size', '14' );
if ($body_size) {
$custom .= ".editor-block-list__block, .editor-block-list__block p { font-size:" . intval($body_size) . "px; }"."\n";
}
//Body
$body_text = get_theme_mod( 'body_text_color', '#656D6D' );
$custom .= ".editor-block-list__layout, .editor-block-list__layout .editor-block-list__block { color:" . esc_attr($body_text) . "}"."\n";
//Small screens font sizes
$custom .= "@media only screen and (max-width: 780px) {
h1 { font-size: 32px;}
h2 { font-size: 28px;}
h3 { font-size: 22px;}
h4 { font-size: 18px;}
h5 { font-size: 16px;}
h6 { font-size: 14px;}
}" . "\n";
//Output all the styles
wp_add_inline_style( 'astrid-block-editor-styles', $custom );
}
add_action( 'enqueue_block_editor_assets', 'astrid_editor_styles' );
/**
* Review notice
*/
require get_template_directory() . '/inc/notices/class-airi-review.php';