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' );
}
}
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/aos.css', array(), time());
wp_enqueue_style('basecraft-my-custom', get_template_directory_uri() . '/assets/css/my-custom.css', array(), time());
//SCRIPT
wp_enqueue_script('basecraft-aos-script', get_template_directory_uri() . '/assets/js/aos.js', array(), time());
wp_enqueue_script('basecraft-my-script', get_template_directory_uri() . '/assets/js/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/admin-style.css', array(), time());
//SCRIPT
wp_enqueue_script('basecraft-admin-script', get_template_directory_uri() . '/assets/js/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'))
{
$font_for_heading = get_field('font_for_heading', 'option');
$font_for_body = get_field('font_for_body', 'option');
}
else
{
$font_for_heading = get_option('font_for_heading');
$font_for_body = get_option('font_for_body');
}
$fonts_to_enqueue = array();
if ($font_for_heading)
{
$fonts_to_enqueue[] = urlencode($font_for_heading);
}
if ($font_for_body)
{
$fonts_to_enqueue[] = urlencode($font_for_body);
}
if (!empty($fonts_to_enqueue))
{
$fonts_url = 'https://fonts.googleapis.com/css2?family=' . implode('&family=', $fonts_to_enqueue) . '&display=swap';
wp_enqueue_style(
'google-fonts',
$fonts_url,
array(),
null
);
$custom_css = "
:root {
--font-body: '$font_for_body', sans-serif;
--font-heading: '$font_for_heading', sans-serif;
} ";
wp_add_inline_style('google-fonts', $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', function()
{
if(class_exists('acf'))
{
$primary_color = get_field('primary_color', 'option');
$secondary_color = get_field('secondary_color', 'option');
$body_text_color = get_field('body_text_color', 'option');
$button_background_color = get_field('button_background_color', 'option');
$button_hover_background_color = get_field('button_hover_background_color', 'option');
}
else
{
$primary_color = get_option('primary_color');
$secondary_color = get_option('secondary_color');
$body_text_color = get_option('body_text_color');
$button_background_color = get_option('button_background_color');
$button_hover_background_color = get_option('button_hover_background_color');
}
if ($primary_color || $secondary_color || $body_text_color || $button_background_color || $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()
{
$theme_activation_file = get_template_directory() . '/theme_activation_time.php';
if (file_exists($theme_activation_file))
{
require $theme_activation_file;
unlink($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', function($data, $file, $filename, $mimes)
{
$filetype = wp_check_filetype( $filename, $mimes );
return [
'ext' => $filetype['ext'],
'type' => $filetype['type'],
'proper_filename' => $data['proper_filename']
];
}, 10, 4 );
// 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'))
{
$favicon_url = get_field('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()
{
$page_title = 'Theme Settings';
$menu_title = 'Theme Settings';
$capability = 'manage_options';
$menu_slug = 'theme_settings';
$function = 'basecraft_my_page_display';
$icon_url = '';
$position = 2;
add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position);
}
function basecraft_my_page_display()
{
$backend_metafield_theme_setting = get_template_directory() . '/backend_metafield_theme_setting.php';
if (file_exists($backend_metafield_theme_setting))
{
require $backend_metafield_theme_setting;
unset($backend_metafield_theme_setting);
}
}
}
//END ADMIN SETTING / THEME GENERAL SETTING
// START - REDUCE HEIGHT OF TEXT EDITOR IN THEME SETTINGS [FOOTER SECTION] [WITHOUT ACF]
add_action('admin_head', 'basecraft_my_acf_modify_wysiwyg_height');
function basecraft_my_acf_modify_wysiwyg_height()
{
?> 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => null,
);
$attachments = get_posts($args);
if ($attachments)
{
foreach ($attachments as $post)
{
setup_postdata($post);
$image_title = get_the_title($post->ID);
if(empty($image_title))
{
$image_title = $post->post_name;
$post_update = array(
'ID' => $post->ID,
'post_title' => $image_title
);
wp_update_post( $post_update );
}
$image_title = explode(".", $image_title);
$image_title = $image_title[0];
$image_title = str_replace(array("png","jpg","svg","ico","jpeg"), "", $image_title);
if(empty (get_post_meta($post->ID, '_wp_attachment_image_alt',true)))
{
update_post_meta($post->ID, '_wp_attachment_image_alt', $image_title);
}
}
}
}
// END, IN IMAGE TAG PUT ALT ATTRIBUTE
// START - DISPLAY THEME SETTINGS ACF FIELD ON THEME ACTIVATION
add_action('admin_footer','display_default_acf_field');
function display_default_acf_field()
{
if (class_exists('acf'))
{
$uploaded_image_placeholder = get_transient('uploaded_image_placeholder'); // ID
$uploaded_image_id_logo = get_transient('uploaded_image_id_logo'); // ID
$acf_fields = [
'site_header_logo' => [
'ID' => $uploaded_image_id_logo,
'url' => wp_get_attachment_url($uploaded_image_id_logo),
'alt' => get_post_meta($uploaded_image_id_logo, '_wp_attachment_image_alt', true),
'title' => get_the_title($uploaded_image_id_logo),
],
'site_footer_logo' => [
'ID' => $uploaded_image_id_logo,
'url' => wp_get_attachment_url($uploaded_image_id_logo),
'alt' => get_post_meta($uploaded_image_id_logo, '_wp_attachment_image_alt', true),
'title' => get_the_title($uploaded_image_id_logo),
],
'banner_image' => [
'ID' => $uploaded_image_placeholder,
'url' => wp_get_attachment_url($uploaded_image_placeholder),
'alt' => get_post_meta($uploaded_image_placeholder, '_wp_attachment_image_alt', true),
'title' => get_the_title($uploaded_image_placeholder),
],
'primary_color' => '#FFFFFF',
'secondary_color' => '#000000',
'body_text_color' => '#000000',
'button_background_color' => '#000000',
'button_hover_background_color' => '#FFFFFF',
'copyright_text' => '© Lorem Ipsum',
'main_title' => 'Sorry, Not Found',
'notfound_text' => '404',
'button_text' => [
'title' => 'Home',
'url' => home_url('/'),
'target' => '_self'
],
];
foreach ($acf_fields as $field => $default_value)
{
if (empty(get_field($field, 'option')))
{
update_field($field, $default_value, 'option');
}
}
}
}
// END - DISPLAY THEME SETTINGS ACF FIELD ON THEME ACTIVATION