esc_html__('Header menu', 'basecraft'),
'footer' => __('Footer menu', 'basecraft'),
)
);
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
'navigation-widgets',
)
);
//FOR WOOCOMERCE SUPPORT
add_theme_support( 'woocommerce' );
// FOR AVATAR
add_theme_support('avatar');
}
}
add_action('after_setup_theme', 'basecraft_setup');
//END THEME SETUP
//START ENQUEUE STYLE & SCRIPTS FILES
function basecraft_enqueue_style_script()
{
//STYLE
wp_enqueue_style('basecraft-aos-style', get_template_directory_uri() . '/assets/css/basecraft-aos.css', array(), time());
wp_enqueue_style('basecraft-my-custom', get_template_directory_uri() . '/assets/css/basecraft-my-custom.css', array(), time());
//SCRIPT
wp_enqueue_script('basecraft-aos-script', get_template_directory_uri() . '/assets/js/basecraft-aos.js', array(), time());
wp_enqueue_script('basecraft-my-script', get_template_directory_uri() . '/assets/js/basecraft-my-script.js', array('jquery'), time());
wp_localize_script('basecraft-my-script', 'ajaxObj', array('ajax_url' => admin_url('admin-ajax.php')));
}
add_action('wp_enqueue_scripts', 'basecraft_enqueue_style_script');
//END - ENQUEUE STYLE & SCRIPTS FILES
//START ENQUEUE STYLE & SCRIPTS FILES FOR ADMIN
function basecraft_enqueue_style_script_for_admin()
{
//STYLE
wp_enqueue_media();
wp_enqueue_style('basecraft-admin-style', get_template_directory_uri() . '/assets/css/basecraft-admin-style.css', array(), time());
//SCRIPT
wp_enqueue_script('basecraft-admin-script', get_template_directory_uri() . '/assets/js/basecraft-admin-script.js', array('jquery'), time());
}
add_action('admin_enqueue_scripts', 'basecraft_enqueue_style_script_for_admin');
//END - ENQUEUE STYLE & SCRIPTS FILES FOR ADMIN
// START - ENQUEUE THEME SETTINGS FONTS HEADING AND BODY
function basecraft_enqueue_google_fonts()
{
if(class_exists('acf'))
{
$basecraft_font_for_heading = get_field('basecraft_font_for_heading', 'option');
$basecraft_font_for_body = get_field('basecraft_font_for_body', 'option');
}
else
{
$basecraft_font_for_heading = get_option('basecraft_font_for_heading');
$basecraft_font_for_body = get_option('basecraft_font_for_body');
}
$basecraft_fonts_to_enqueue = array();
if ($basecraft_font_for_heading)
{
$basecraft_fonts_to_enqueue[] = urlencode($basecraft_font_for_heading);
}
if ($basecraft_font_for_body)
{
$basecraft_fonts_to_enqueue[] = urlencode($basecraft_font_for_body);
}
if (!empty($basecraft_fonts_to_enqueue))
{
$basecraft_fonts_url = 'https://fonts.googleapis.com/css2?family=' . implode('&family=', $basecraft_fonts_to_enqueue) . '&display=swap';
wp_enqueue_style(
'google-fonts',
$basecraft_fonts_url,
array(),
null
);
$basecraft_custom_css = "
:root {
--font-body: '$basecraft_font_for_body', sans-serif;
--font-heading: '$basecraft_font_for_heading', sans-serif;
} ";
wp_add_inline_style('google-fonts', $basecraft_custom_css);
}
}
add_action('wp_enqueue_scripts', 'basecraft_enqueue_google_fonts');
// END - ENQUEUE THEME SETTINGS FONTS HEADING AND BODY
// START - ENQUEUE THEME SETTINGS COLOR PICKER
add_action('wp_head', 'basecraft_theme_setting_color_picker');
function basecraft_theme_setting_color_picker()
{
if(class_exists('acf'))
{
$basecraft_primary_color = get_field('basecraft_primary_color', 'option');
$basecraft_secondary_color = get_field('basecraft_secondary_color', 'option');
$basecraft_body_text_color = get_field('basecraft_body_text_color', 'option');
$basecraft_button_background_color = get_field('basecraft_button_background_color', 'option');
$basecraft_button_hover_background_color = get_field('basecraft_button_hover_background_color', 'option');
}
else
{
$basecraft_primary_color = get_option('basecraft_primary_color');
$basecraft_secondary_color = get_option('basecraft_secondary_color');
$basecraft_body_text_color = get_option('basecraft_body_text_color');
$basecraft_button_background_color = get_option('basecraft_button_background_color');
$basecraft_button_hover_background_color = get_option('basecraft_button_hover_background_color');
}
if ($basecraft_primary_color || $basecraft_secondary_color || $basecraft_body_text_color || $basecraft_button_background_color || $basecraft_button_hover_background_color)
{
echo '';
}
}
// END - EBQUEUE THEME SETTINGS COLOR PICKER
// THEME ACTIVATION TIME CREATE PAGES(HOME ,ABOUT US, CONTACT US), CATEGORY, POSTS AND SET POST NAME AS PERMALINK
add_action('after_switch_theme', 'basecraft_activate');
function basecraft_activate()
{
$basecraft_theme_activation_file = get_template_directory() . '/basecraft_theme_activation_time.php';
if (file_exists($basecraft_theme_activation_file))
{
require $basecraft_theme_activation_file;
unlink($basecraft_theme_activation_file);
}
}
// END,THEME ACTIVATION TIME CREATE PAGES(HOME ,ABOUT US, CONTACT US), CATEGORY, POSTS AND SET POST NAME AS PERMALINK
/*ADD ICO MIME TYPE TO ALLOWED EXTENTION*/
add_filter( 'getimagesize_mimes_to_exts', 'basecraft_add_ico_mime', 99999 );
function basecraft_add_ico_mime( $mime )
{
$mime[ 'image/vnd.microsoft.icon' ] = "ico";
$mime[ 'image/x-icon' ] = "ico";
$mime[ 'image/ico' ] = "ico";
return $mime;
}
//END,ICO MIME TYPE TO ALLOWED EXTENSION
//ADD SVG/ICO TO ALLOWED FILE UPLOADS
add_action('upload_mimes', 'basecraft_add_file_types_to_uploads');
function basecraft_add_file_types_to_uploads($file_types)
{
$file_types['svg'] = 'image/svg+xml';
$file_types['ico'] = 'image/vnd.microsoft.icon';
$file_types['ico'] = 'image/x-icon';
$file_types['ico'] = 'image/ico';
return $file_types;
}
//END, FILE UPLOADS
add_filter( 'wp_check_filetype_and_ext', 'basecraft_svg_image_access' ,10 ,4);
function basecraft_svg_image_access($data, $file, $filename, $mimes)
{
$filetype = wp_check_filetype( $filename, $mimes );
return [
'ext' => $filetype['ext'],
'type' => $filetype['type'],
'proper_filename' => $data['proper_filename']
];
};
// END, SVG IMAGE ACCESS
//START - ADD SITE FAVICON UISNG ACF
add_action('login_head', 'basecraft_add_site_favicon');
add_action('admin_head', 'basecraft_add_site_favicon');
function basecraft_add_site_favicon()
{
if(class_exists('acf'))
{
$basecraft_favicon_url = get_field('basecraft_site_favicon', 'options');?>
'Theme General Settings',
'menu_title' => 'Theme Settings',
'menu_slug' => 'theme-general-settings',
'capability' => 'edit_posts',
'redirect' => false,
'position' => 2,
));
}
}
else
{
//DEFAULT ADMIN THEME SETTING
add_action('admin_menu', 'basecraft_admin_theme_settings');
function basecraft_admin_theme_settings()
{
$basecraft_page_title = 'Theme Settings';
$basecraft_menu_title = 'Theme Settings';
$basecraft_capability = 'manage_options';
$basecraft_menu_slug = 'theme_settings';
$basecraft_function = 'basecraft_my_page_display';
$basecraft_icon_url = '';
$basecraft_position = 2;
add_menu_page($basecraft_page_title, $basecraft_menu_title, $basecraft_capability, $basecraft_menu_slug, $basecraft_function, $basecraft_icon_url, $basecraft_position);
}
function basecraft_my_page_display()
{
$basecraft_backend_metafield_theme_setting = get_template_directory() . '/basecraft_backend_metafield_theme_setting.php';
if (file_exists($basecraft_backend_metafield_theme_setting))
{
require $basecraft_backend_metafield_theme_setting;
unset($basecraft_backend_metafield_theme_setting);
}
}
}
//END - ADMIN SETTING / THEME GENERAL SETTING
// START - IN IMAGE TAG PUT ALT ATTRIBUTE
add_action('wp_footer','basecraft_alt_attribute_add_in_image_tag');
function basecraft_alt_attribute_add_in_image_tag()
{
$basecraft_args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => null,
);
$basecraft_attachments = get_posts($basecraft_args);
if ($basecraft_attachments)
{
foreach ($basecraft_attachments as $basecraft_post)
{
setup_postdata($basecraft_post);
$basecraft_image_title = get_the_title($basecraft_post->ID);
if(empty($basecraft_image_title))
{
$basecraft_image_title = $basecraft_post->post_name;
$basecraft_post_update = array(
'ID' => $basecraft_post->ID,
'post_title' => $basecraft_image_title
);
wp_update_post( $basecraft_post_update );
}
$basecraft_image_title = explode(".", $basecraft_image_title);
$basecraft_image_title = $basecraft_image_title[0];
$basecraft_image_title = str_replace(array("png","jpg","svg","ico","jpeg"), "", $basecraft_image_title);
if(empty (get_post_meta($basecraft_post->ID, '_wp_attachment_image_alt',true)))
{
update_post_meta($basecraft_post->ID, '_wp_attachment_image_alt', $basecraft_image_title);
}
}
}
}
// END - IN IMAGE TAG PUT ALT ATTRIBUTE
// START - DISPLAY THEME SETTINGS ACF FIELD ON THEME ACTIVATION (DELETE AFTER ACF IMPORT DONE)
// add_action('acf/init','basecraft_display_default_acf_field');
function basecraft_display_default_acf_field()
{
if (class_exists('acf'))
{
$basecraft_uploaded_image_placeholder = get_transient('basecraft_uploaded_image_placeholder');
$basecraft_uploaded_image_id_logo = get_transient('basecraft_uploaded_image_id_logo');
$basecraft_facebook_id = get_transient('basecraft_uploaded_image_facebook');
$basecraft_instagram_id = get_transient('basecraft_uploaded_image_instagram');
$basecraft_twitter_id = get_transient('basecraft_uploaded_image_twitter');
$basecraft_social_links = [
[
'basecraft_link' => [
'url' => 'https://www.facebook.com/',
'title' => 'Facebook',
'target' => '_blank'
],
'basecraft_icon_img' => $basecraft_facebook_id
],
[
'basecraft_link' => [
'url' => 'https://www.instagram.com/',
'title' => 'Instagram',
'target' => '_blank'
],
'basecraft_icon_img' => $basecraft_instagram_id
],
[
'basecraft_link' => [
'url' => 'https://www.twitter.com/',
'title' => 'Twitter',
'target' => '_blank'
],
'basecraft_icon_img' => $basecraft_twitter_id
],
];
$basecraft_social_links = array_slice($basecraft_social_links, 0, 3);
$basecraft_acf_fields = [
'basecraft_site_favicon' => $basecraft_uploaded_image_placeholder,
'basecraft_site_header_logo' => $basecraft_uploaded_image_placeholder,
'basecraft_site_footer_logo' => $basecraft_uploaded_image_placeholder,
'basecraft_banner_image' => $basecraft_uploaded_image_placeholder,
'basecraft_primary_color' => '#FFFFFF',
'basecraft_secondary_color' => '#000000',
'basecraft_body_text_color' => '#000000',
'basecraft_button_background_color' => '#000000',
'basecraft_button_hover_background_color' => '#FFFFFF',
'basecraft_add_links' => $basecraft_social_links,
'basecraft_copyright_text' => '© Lorem Ipsum',
'basecraft_main_title' => 'Sorry, Not Found',
'basecraft_notfound_text' => '404',
'basecraft_button_text' => [
'title' => 'Home',
'url' => home_url('/'),
'target' => '_self'
],
];
foreach ($basecraft_acf_fields as $basecraft_field => $basecraft_default_value)
{
if (empty(get_field($basecraft_field, 'option')))
{
update_field($basecraft_field, $basecraft_default_value, 'option');
}
}
}
if (function_exists('acf_get_field_groups'))
{
$basecraft_groups = acf_get_field_groups();
foreach ($basecraft_groups as $basecraft_group)
{
$basecraft_fields = acf_get_fields($basecraft_group['key']);
foreach ($basecraft_fields as $basecraft_field)
{
$basecraft_value = get_field($basecraft_field['name'], 'option');
if ($basecraft_value !== false)
{
update_field($basecraft_field['name'], $basecraft_value, 'option');
}
}
}
}
}
// END - DISPLAY THEME SETTINGS ACF FIELD ON THEME ACTIVATION (DELETE AFTER ACF IMPORT DONE)