array('title'=>'Home','content'=> $basecraft_dummy_text,'option_page'=>'home'), 'about-us'=>array('title'=>'About Us','content'=> $basecraft_dummy_text,'option_page'=>'about_us'), 'contact-us'=>array('title'=>'Contact Us','content'=>$basecraft_dummy_text,'option_page'=>'contact_us'), ); foreach($basecraft_pages as $basecraft_key => $basecraft_page_value) { if(null === $wpdb->get_row( "SELECT post_name FROM {$wpdb->prefix}posts WHERE post_name = '".$basecraft_key."'")) { $basecraft_current_user = wp_get_current_user(); // CREATE POST OBJECT $basecraft_page = array( 'post_title' => $basecraft_page_value['title'], 'post_status' => 'publish', 'post_content'=> $basecraft_page_value['content'], 'post_author' => $basecraft_current_user->ID, 'post_type' => 'page', ); // CHECK IF PAGE NOT EXISTS if(!get_page_by_path( $basecraft_page_value['title'], OBJECT, 'page')) { // INSERT THE POST INTO THE DATABASE $basecraft_post_id = wp_insert_post( $basecraft_page ); update_option($basecraft_page_value['option_page'],$basecraft_post_id); } } } //END - CREATE PAGES BY CODE //CREATE CATEGORY BY CODE if(file_exists (ABSPATH.'/wp-admin/includes/taxonomy.php')) { require_once (ABSPATH.'/wp-admin/includes/taxonomy.php'); if(! get_cat_ID( 'Blog')) { wp_create_category( 'Blog' ); } $basecraft_blog_category_id = get_cat_ID( 'Blog' ); } //END - CREATE CATEGORY BY CODE // CREATE, POST BY CODE $basecraft_default_posts = array( 'lorem_ipsum_1' => array('title' => 'Lorem Ipsum 1', 'content' => $basecraft_dummy_text), 'lorem_ipsum_2' => array('title' => 'Lorem Ipsum 2', 'content' => $basecraft_dummy_text), 'lorem_ipsum_3' => array('title' => 'Lorem Ipsum 3', 'content' => $basecraft_dummy_text), 'lorem_ipsum_4' => array('title' => 'Lorem Ipsum 4', 'content' => $basecraft_dummy_text), 'lorem_ipsum_5' => array('title' => 'Lorem Ipsum 5', 'content' => $basecraft_dummy_text), 'lorem_ipsum_6' => array('title' => 'Lorem Ipsum 6', 'content' => $basecraft_dummy_text), ); // CHECK IF THE PLACEHOLDER IMAGE HAS BEEN UPLOADED $basecraft_attachment_id = get_transient('basecraft_uploaded_image_placeholder'); if (!$basecraft_attachment_id) { $basecraft_placeholder_image = get_template_directory() . '/assets/images/basecraft-placeholder-image.webp'; $basecraft_image_data = file_get_contents($basecraft_placeholder_image); $basecraft_upload_dir = wp_upload_dir(); $basecraft_filename = basename($basecraft_placeholder_image); $basecraft_upload_file = wp_upload_bits($basecraft_filename, null, $basecraft_image_data); if (!$basecraft_upload_file['error']) { $basecraft_attachment = array( 'guid' => $basecraft_upload_file['url'], 'post_mime_type' => 'image/webp', 'post_title' => 'Placeholder Image', 'post_content' => '', 'post_status' => 'inherit' ); $basecraft_attachment_id = wp_insert_attachment($basecraft_attachment, $basecraft_upload_file['file']); // METADATA FOR THE ATTACHMENT require_once(ABSPATH . 'wp-admin/includes/image.php'); $basecraft_attachment_data = wp_generate_attachment_metadata($basecraft_attachment_id, $basecraft_upload_file['file']); wp_update_attachment_metadata($basecraft_attachment_id, $basecraft_attachment_data); // STORE THE IMAGE ID set_transient( 'basecraft_uploaded_image_placeholder', $basecraft_attachment_id, 0 ); } } foreach ($basecraft_default_posts as $basecraft_key => $basecraft_post_value) { if (null === $wpdb->get_row("SELECT post_name FROM {$wpdb->prefix}posts WHERE post_name = '" . $basecraft_key . "'")) { $basecraft_current_user = wp_get_current_user(); $basecraft_dummy_post_add = array( 'post_title' => $basecraft_post_value['title'], 'post_status' => 'publish', 'post_content' => $basecraft_post_value['content'], 'post_category' => array($basecraft_blog_category_id), 'post_author' => $basecraft_current_user->ID, 'post_type' => 'post' ); if (!get_page_by_path($basecraft_post_value['title'], OBJECT, 'post')) { $basecraft_post_id = wp_insert_post($basecraft_dummy_post_add); if ($basecraft_post_id && !has_post_thumbnail($basecraft_post_id)) { set_post_thumbnail($basecraft_post_id, $basecraft_attachment_id); } } } } // END, CREATE POST CODE // CREATE HEADER AND FOOTER MENUS $basecraft_locations = get_theme_mod('nav_menu_locations'); // DEFINE MENU LOCATION // GET THE PAGE IDS $basecraft_home_page = get_page_by_title('Home'); $basecraft_home_id = $basecraft_home_page ? $basecraft_home_page->ID : 0; $basecraft_about_us_id = get_option('about_us'); $basecraft_contact_us_id = get_option('contact_us'); // FUNCTION TO GET OR CREATE A MENU function basecraft_get_or_create_menu($basecraft_menu_name) { $basecraft_menu_exists = wp_get_nav_menu_object($basecraft_menu_name); if ($basecraft_menu_exists) { return $basecraft_menu_exists->term_id; } return wp_create_nav_menu($basecraft_menu_name); } // GET OR CREATE HEADER AND FOOTER MENUS $basecraft_header_menu_id = basecraft_get_or_create_menu('Header Menu'); $basecraft_footer_menu_id = basecraft_get_or_create_menu('Footer Menu'); // FUNCTION TO ADD A MENU ITEM IF IT DOES NOT ALREADY EXISTS function basecraft_add_menu_item_if_not_exists($basecraft_menu_id, $basecraft_menu_item_title, $basecraft_menu_item_object_id) { if (!$basecraft_menu_item_object_id) return; $basecraft_menu_items = wp_get_nav_menu_items($basecraft_menu_id); $basecraft_exists = false; if ($basecraft_menu_items) { foreach ($basecraft_menu_items as $basecraft_menu_item) { if ($basecraft_menu_item->object_id == $basecraft_menu_item_object_id) { $basecraft_exists = true; break; } } } if (!$basecraft_exists) { wp_update_nav_menu_item($basecraft_menu_id, 0, array( 'menu-item-title' => $basecraft_menu_item_title, 'menu-item-object-id' => $basecraft_menu_item_object_id, 'menu-item-object' => 'page', 'menu-item-type' => 'post_type', 'menu-item-status' => 'publish' )); } } // ADD MENU ITEMS IF THEY DON'T ALREADY EXISTS basecraft_add_menu_item_if_not_exists($basecraft_header_menu_id, 'Home', $basecraft_home_id); basecraft_add_menu_item_if_not_exists($basecraft_header_menu_id, 'About Us', $basecraft_about_us_id); basecraft_add_menu_item_if_not_exists($basecraft_header_menu_id, 'Contact Us', $basecraft_contact_us_id); basecraft_add_menu_item_if_not_exists($basecraft_footer_menu_id, 'Home', $basecraft_home_id); basecraft_add_menu_item_if_not_exists($basecraft_footer_menu_id, 'About Us', $basecraft_about_us_id); basecraft_add_menu_item_if_not_exists($basecraft_footer_menu_id, 'Contact Us', $basecraft_contact_us_id); // ASSIGN MENU TO THEME LOCATIONS $basecraft_locations['primary'] = $basecraft_header_menu_id; $basecraft_locations['footer'] = $basecraft_footer_menu_id; set_theme_mod('nav_menu_locations', $basecraft_locations); // END, CREATE HEADER AND FOOTER MENUS // START - UPLOAD FACEBOOK, INSTAGRAM AND TWIITER IMAGE ON THEME ACTIVATION $basecraft_facebook_icon = get_transient('basecraft_uploaded_image_facebook'); if (!$basecraft_facebook_icon) { $basecraft_facebook_image = get_template_directory_uri() . '/assets/images/basecraft-facebook.svg'; $basecraft_image_data = file_get_contents($basecraft_facebook_image); $basecraft_upload_dir = wp_upload_dir(); $basecraft_filename = basename($basecraft_facebook_image); $basecraft_upload_file = wp_upload_bits($basecraft_filename, null, $basecraft_image_data); if (!$basecraft_upload_file['error']) { $basecraft_attachment = array( 'guid' => $basecraft_upload_file['url'], 'post_mime_type' => 'image/svg+xml', 'post_title' => 'Facebook', 'post_content' => '', 'post_status' => 'inherit' ); $basecraft_facebook_icon = wp_insert_attachment($basecraft_attachment, $basecraft_upload_file['file']); // METADATA FOR THE ATTACHMENT require_once(ABSPATH . 'wp-admin/includes/image.php'); $basecraft_attachment_data = wp_generate_attachment_metadata($basecraft_facebook_icon, $basecraft_upload_file['file']); wp_update_attachment_metadata($basecraft_facebook_icon, $basecraft_attachment_data); // STORE THE IMAGE ID set_transient( 'basecraft_uploaded_image_facebook', $basecraft_facebook_icon, 0 ); } } $basecraft_instagram_icon = get_transient('basecraft_uploaded_image_instagram'); if (!$basecraft_instagram_icon) { $basecraft_instagram_image = get_template_directory_uri() . '/assets/images/basecraft-instagram.svg'; $basecraft_image_data = file_get_contents($basecraft_instagram_image); $basecraft_upload_dir = wp_upload_dir(); $basecraft_filename = basename($basecraft_instagram_image); $basecraft_upload_file = wp_upload_bits($basecraft_filename, null, $basecraft_image_data); if (!$basecraft_upload_file['error']) { $basecraft_attachment = array( 'guid' => $basecraft_upload_file['url'], 'post_mime_type' => 'image/svg+xml', 'post_title' => 'Instagram', 'post_content' => '', 'post_status' => 'inherit' ); $basecraft_instagram_icon = wp_insert_attachment($basecraft_attachment, $basecraft_upload_file['file']); // METADATA FOR THE ATTACHMENT require_once(ABSPATH . 'wp-admin/includes/image.php'); $basecraft_attachment_data = wp_generate_attachment_metadata($basecraft_instagram_icon, $basecraft_upload_file['file']); wp_update_attachment_metadata($basecraft_instagram_icon, $basecraft_attachment_data); // STORE THE IMAGE ID set_transient( 'basecraft_uploaded_image_instagram', $basecraft_instagram_icon, 0 ); } } $basecraft_twitter_icon = get_transient('basecraft_uploaded_image_twitter'); if (!$basecraft_twitter_icon) { $basecraft_twitter_image = get_template_directory_uri() . '/assets/images/basecraft-twitter.svg'; $basecraft_image_data = file_get_contents($basecraft_twitter_image); $basecraft_upload_dir = wp_upload_dir(); $basecraft_filename = basename($basecraft_twitter_image); $basecraft_upload_file = wp_upload_bits($basecraft_filename, null, $basecraft_image_data); if (!$basecraft_upload_file['error']) { $basecraft_attachment = array( 'guid' => $basecraft_upload_file['url'], 'post_mime_type' => 'image/svg+xml', 'post_title' => 'Twitter', 'post_content' => '', 'post_status' => 'inherit' ); $basecraft_twitter_icon = wp_insert_attachment($basecraft_attachment, $basecraft_upload_file['file']); // METADATA FOR THE ATTACHMENT require_once(ABSPATH . 'wp-admin/includes/image.php'); $basecraft_attachment_data = wp_generate_attachment_metadata($basecraft_twitter_icon, $basecraft_upload_file['file']); wp_update_attachment_metadata($basecraft_twitter_icon, $basecraft_attachment_data); // STORE THE IMAGE ID set_transient( 'basecraft_uploaded_image_twitter', $basecraft_twitter_icon, 0 ); } } // END - UPLOAD FACEBOOK, INSTAGRAM AND TWIITER IMAGE ON THEME ACTIVATION // ADD DEFAULT PLACEHOLDER IMAGE AND TEXT FOR THEME SETTINGS $basecraft_favicon = get_template_directory_uri() . '/assets/images/basecraft-fevicon.ico'; $basecraft_dummy_logo = get_template_directory_uri() . '/assets/images/basecraft-dummy-logo.svg'; $basecraft_banner_image = get_template_directory_uri() . '/assets/images/basecraft-placeholder-image.webp'; 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'); } } } } } else { $basecraft_facebook_url = wp_get_attachment_url(get_transient('basecraft_uploaded_image_facebook')); $basecraft_instagram_url = wp_get_attachment_url(get_transient('basecraft_uploaded_image_instagram')); $basecraft_twitter_url = wp_get_attachment_url(get_transient('basecraft_uploaded_image_twitter')); $basecraft_social_links = [ [ 'basecraft_link' => 'https://www.facebook.com/', 'basecraft_logo' => $basecraft_facebook_url ], [ 'basecraft_link' => 'https://www.instagram.com/', 'basecraft_logo' => $basecraft_instagram_url ], [ 'basecraft_link' => 'https://x.com/', 'basecraft_logo' => $basecraft_twitter_url ], ]; $basecraft_meta_fields = [ 'basecraft_site_favicon' => $basecraft_favicon, 'basecraft_site_header_logo' => $basecraft_dummy_logo, 'basecraft_site_footer_logo' => $basecraft_dummy_logo, 'basecraft_social_media' => $basecraft_social_links, 'basecraft_copyright_text' => '© Lorem Ipsum', 'basecraft_banner_image' => $basecraft_banner_image, 'basecraft_main_title' => 'Sorry, Not Found', 'basecraft_notfound_text' => '404', 'basecraft_button_url' => home_url(), 'basecraft_button_text' => 'Home', ]; foreach ($basecraft_meta_fields as $basecraft_field => $basecraft_default_value) { if (!get_option($basecraft_field)) { update_option($basecraft_field, $basecraft_default_value); } } } // END, ADD DEFAULT PLACEHOLDER IMAGE AND TEXT FOR THEME SETTINGS // SET DEFAULT COLOR OPTIONS $basecraft_default_colors = array( 'basecraft_primary_color' => '#ffffff', 'basecraft_secondary_color' => '#000000', 'basecraft_body_text_color' => '#000000', 'basecraft_button_background_color' => '#000000', 'basecraft_button_hover_background_color' => '#ffffff', ); foreach ($basecraft_default_colors as $basecraft_option_name => $basecraft_default_value) { if (!get_option($basecraft_option_name)) { update_option($basecraft_option_name, $basecraft_default_value); } } // END, SET DEFAULT COLOR OPTIONS // START - UPLOAD LOGO IMAGE ON THEME ACTIVATION $basecraft_logo_attachment_id = get_transient('basecraft_uploaded_image_id_logo'); if (!$basecraft_logo_attachment_id) { $basecraft_image_data = file_get_contents($basecraft_dummy_logo); $basecraft_upload_dir = wp_upload_dir(); $basecraft_filename = basename($basecraft_dummy_logo); $basecraft_upload_file = wp_upload_bits($basecraft_filename, null, $basecraft_image_data); if (!$basecraft_upload_file['error']) { $basecraft_attachment = array( 'guid' => $basecraft_upload_file['url'], 'post_mime_type' => 'image/svg+xml', 'post_title' => 'Dummy Logo', 'post_content' => '', 'post_status' => 'inherit', ); $basecraft_logo_attachment_id = wp_insert_attachment($basecraft_attachment, $basecraft_upload_file['file']); if ($basecraft_logo_attachment_id) { require_once(ABSPATH . 'wp-admin/includes/image.php'); $basecraft_attachment_data = wp_generate_attachment_metadata($basecraft_logo_attachment_id, $basecraft_upload_file['file']); wp_update_attachment_metadata($basecraft_logo_attachment_id, $basecraft_attachment_data); set_transient('basecraft_uploaded_image_id_logo', $basecraft_logo_attachment_id, 0 ); } } } // END - UPLOAD LOGO IMAGE ON THEME ACTIVATION // START - SET POST NAME AS A PERMALINK global $wp_rewrite; $wp_rewrite->set_permalink_structure('/%postname%/'); update_option( "rewrite_rules", FALSE ); $wp_rewrite->flush_rules( true ); // END - SET POST NAME AS A PERMALINK// CREATE PAGES BY CODE