// One-time fix for duplicate H2s on city pages // Runs on admin_init, executes once, safe to deactivate after add_action( 'admin_init', function() { if ( get_option( 'wus_dup_h2_fixed_v1' ) ) return; // Map of page ID => array of [ duplicate_text, replacement_text ] $fixes = array( 1674 => array( array( "The Canadian Rockies' Preferred Live Band", "Why Banff Events Choose Wakeup Starlight" ), ), 1675 => array( array( "The Bow Valley's Live Entertainment Choice", "Canmore Event Entertainment You Can Trust" ), array( "Hire a Live Band in Canmore — Wake Up Starlight", "Book Your Canmore Entertainment Today" ), ), 1666 => array( array( "Southern Alberta's Live Entertainment Choice", "Lethbridge Events Deserve Great Live Music" ), ), 1667 => array( array( "Bring Award-Winning Entertainment to Victoria", "Victoria's Choice for Live Band Entertainment" ), array( "Hire a Live Band in Victoria — Wake Up Starlight", "Book Your Victoria Event Entertainment" ), array( "Award-winning live music for Victoria corporate events, galas, private celebrations & waterfront functions.", "Professional live entertainment for every Victoria occasion." ), ), 1670 => array( array( "Vancouver Island's Live Entertainment Choice", "Nanaimo Events Deserve Great Live Music" ), ), 1612 => array( array( "Bring the Best Live Band to Edmonton", "Edmonton's Top Pick for Live Event Music" ), ), ); foreach ( $fixes as $post_id => $replacements ) { // Fix _elementor_data $raw = get_post_meta( $post_id, '_elementor_data', true ); if ( ! empty( $raw ) ) { $changed = false; foreach ( $replacements as $pair ) { $old = $pair[0]; $new = $pair[1]; // Only replace the SECOND occurrence $pos1 = strpos( $raw, $old ); if ( $pos1 !== false ) { $pos2 = strpos( $raw, $old, $pos1 + strlen( $old ) ); if ( $pos2 !== false ) { $raw = substr_replace( $raw, $new, $pos2, strlen( $old ) ); $changed = true; } } } if ( $changed ) { update_post_meta( $post_id, '_elementor_data', wp_slash( $raw ) ); delete_post_meta( $post_id, '_elementor_css' ); } } // Fix post_content too $post = get_post( $post_id ); if ( $post ) { $content = $post->post_content; $c_changed = false; foreach ( $replacements as $pair ) { $old = $pair[0]; $new = $pair[1]; $pos1 = strpos( $content, $old ); if ( $pos1 !== false ) { $pos2 = strpos( $content, $old, $pos1 + strlen( $old ) ); if ( $pos2 !== false ) { $content = substr_replace( $content, $new, $pos2, strlen( $old ) ); $c_changed = true; } } } if ( $c_changed ) { wp_update_post( array( 'ID' => $post_id, 'post_content' => $content ) ); } } } update_option( 'wus_dup_h2_fixed_v1', 1 ); } );/** * FAQPage Schema - Auto-generates JSON-LD from page FAQ content * Supports Elementor accordions AND heading+text FAQ layouts * Filters out CTA headings and skips if fewer than 2 FAQs found */ add_action( 'wp_footer', 'wus_faqpage_schema', 99 ); function wus_faqpage_schema() { if ( ! is_singular() ) return; $post_id = get_the_ID(); $faq_items = array(); // Method 1: Check Elementor accordion/toggle widgets $elementor_data = get_post_meta( $post_id, '_elementor_data', true ); if ( ! empty( $elementor_data ) ) { $elements = json_decode( $elementor_data, true ); if ( is_array( $elements ) ) { wus_find_accordion_faqs( $elements, $faq_items ); } } // Method 2: Regex-based heading parsing (fallback) if ( empty( $faq_items ) ) { $content = apply_filters( 'the_content', get_post_field( 'post_content', $post_id ) ); if ( ! empty( $content ) ) { preg_match_all( '/]*>([^<]*\\?[^<]*)<\\/h[2-5]>/i', $content, $q_matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE ); foreach ( $q_matches as $match ) { $question = wp_strip_all_tags( $match[1][0] ); if ( strlen( $question ) < 10 ) continue; // Filter out CTA headings $skip_phrases = array( 'still have', 'contact us', 'get in touch', 'reach out', 'call us', 'ready to', 'get started', 'book now', 'schedule', 'free quote', 'book your', 'hire' ); $skip = false; foreach ( $skip_phrases as $phrase ) { if ( stripos( $question, $phrase ) !== false ) { $skip = true; break; } } if ( $skip ) continue; $after_pos = $match[0][1] + strlen( $match[0][0] ); $remaining = substr( $content, $after_pos, 2000 ); if ( preg_match( '/ 20 ) { $faq_items[] = array( 'question' => $question, 'answer' => $answer ); } } } } if ( count( $faq_items ) < 2 ) return; $schema = array( '@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => array(), ); foreach ( $faq_items as $item ) { $schema['mainEntity'][] = array( '@type' => 'Question', 'name' => html_entity_decode( $item['question'], ENT_QUOTES, 'UTF-8' ), 'acceptedAnswer' => array( '@type' => 'Answer', 'text' => html_entity_decode( $item['answer'], ENT_QUOTES, 'UTF-8' ), ), ); } echo '' . "\n"; } function wus_find_accordion_faqs( $elements, &$faq_items ) { foreach ( $elements as $element ) { if ( isset( $element['widgetType'] ) && in_array( $element['widgetType'], array( 'accordion', 'toggle' ) ) ) { if ( ! empty( $element['settings']['tabs'] ) ) { foreach ( $element['settings']['tabs'] as $tab ) { $q = isset( $tab['tab_title'] ) ? wp_strip_all_tags( $tab['tab_title'] ) : ''; $a = isset( $tab['tab_content'] ) ? wp_strip_all_tags( $tab['tab_content'] ) : ''; if ( strlen( $q ) > 5 && strlen( $a ) > 10 ) { $faq_items[] = array( 'question' => $q, 'answer' => $a ); } } } } if ( ! empty( $element['elements'] ) ) { wus_find_accordion_faqs( $element['elements'], $faq_items ); } } }/** * MusicGroup + LocalBusiness Schema for Wakeup Starlight * Outputs JSON-LD on homepage only */ add_action( 'wp_footer', 'wus_musicgroup_localbusiness_schema', 99 ); function wus_musicgroup_localbusiness_schema() { if ( ! is_front_page() ) return; $schema = array( '@context' => 'https://schema.org', '@graph' => array( array( '@type' => 'MusicGroup', '@id' => 'https://wakeupstarlight.com/#musicgroup', 'name' => 'Wakeup Starlight', 'url' => 'https://wakeupstarlight.com/', 'description' => 'Calgary\'s premier live band for hire. High-energy cover band performances for corporate events, weddings, Stampede parties, festivals, and private celebrations across Alberta and Western Canada.', 'genre' => array( 'Cover Band', 'Rock', 'Pop', 'Country', 'Dance', 'Top 40' ), 'image' => 'https://wakeupstarlight.com/wp-content/uploads/wakeup-starlight-og.jpg', 'sameAs' => array( 'https://www.facebook.com/wakeupstarlight', 'https://www.instagram.com/wakeupstarlight' ), 'areaServed' => array( array( '@type' => 'City', 'name' => 'Calgary', 'addressRegion' => 'AB', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Banff', 'addressRegion' => 'AB', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Edmonton', 'addressRegion' => 'AB', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Vancouver', 'addressRegion' => 'BC', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Kelowna', 'addressRegion' => 'BC', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Saskatoon', 'addressRegion' => 'SK', 'addressCountry' => 'CA' ), array( '@type' => 'City', 'name' => 'Winnipeg', 'addressRegion' => 'MB', 'addressCountry' => 'CA' ) ), 'makesOffer' => array( array( '@type' => 'Offer', 'itemOffered' => array( '@type' => 'Service', 'name' => 'Live Band Performance', 'description' => 'Professional live band entertainment for corporate events, weddings, Stampede parties, festivals, and private celebrations.' ), 'availableChannel' => array( '@type' => 'ServiceChannel', 'serviceUrl' => 'https://wakeupstarlight.com/bookings/' ) ) ) ), array( '@type' => 'LocalBusiness', '@id' => 'https://wakeupstarlight.com/#localbusiness', 'name' => 'Wakeup Starlight', 'url' => 'https://wakeupstarlight.com/', 'description' => 'Professional live band for hire in Calgary and across Western Canada.', 'image' => 'https://wakeupstarlight.com/wp-content/uploads/wakeup-starlight-og.jpg', 'address' => array( '@type' => 'PostalAddress', 'addressLocality' => 'Calgary', 'addressRegion' => 'AB', 'addressCountry' => 'CA' ), 'priceRange' => '$$' ) ) ); echo '' . "\n"; }

Nanaimo Live Band for Hire — Cover Band & Event Entertainment on Vancouver Island

Professional live music for Nanaimo corporate events, private parties, harbour celebrations & island festivals.

Hire a Live Band in Nanaimo — Wake Up Starlight

Nanaimo is Vancouver Island’s second-largest city and the gateway to some of British Columbia’s most stunning event venues — from harbourfront ballrooms to oceanside resorts and island wilderness retreats. Wake Up Starlight brings award-winning live cover band entertainment to Nanaimo events, delivering professional-grade performances that match the natural beauty of the island setting.

Whether you’re hosting a corporate retreat at a Nanaimo harbour hotel, a celebration at the Vancouver Island Conference Centre, a private party in Departure Bay, or an outdoor event in Parksville — Wake Up Starlight delivers high-energy, versatile live music that transforms your island event into something truly special.

Nanaimo Corporate & Business Events

Nanaimo’s business community includes marine industries, technology, healthcare, education through Vancouver Island University, and a growing tourism sector. Wake Up Starlight provides corporate entertainment for Nanaimo business events of every scale — from executive dinners at harbourfront restaurants to company-wide celebrations at the Vancouver Island Conference Centre, holiday parties at the Coast Bastion Hotel, and corporate retreats at Tigh-Na-Mara Seaside Spa Resort in Parksville.

Our corporate packages include acoustic duo and trio options for intimate receptions, full band performances for large-scale events, and DJ hybrid service for complete evening coverage. We bring all sound and lighting equipment, a custom setlist, and the professional polish that corporate clients expect.

Island Celebrations & Private Parties

Vancouver Island is one of the most beautiful places in Canada to celebrate, and Wake Up Starlight brings the soundtrack. From milestone birthdays overlooking the harbour to anniversary celebrations at island resorts, backyard parties in Lantzville to waterfront events in Qualicum Beach — we deliver concert-quality entertainment to private events across central Vancouver Island. Our three-hundred-song repertoire and flexible packages mean every celebration gets exactly the right music and energy.

Nanaimo Festivals & Outdoor Events

Nanaimo’s event calendar includes some iconic celebrations — from the Nanaimo Marine Festival and Bathtub Race weekend to Canada Day celebrations, summer concert series, and community festivals throughout the Harbour City. Wake Up Starlight delivers festival-ready performances with professional sound production and the stage presence to engage outdoor crowds of any size.

Serving Central Vancouver Island

Our Nanaimo service area extends across central Vancouver Island, including Nanaimo, Parksville, Qualicum Beach, Lantzville, Ladysmith, Chemainus, Duncan, and Gabriola Island. Whether your event is harbourside downtown or at an oceanfront resort, we bring the same exceptional entertainment to every island venue.

Travel & Booking

Wake Up Starlight travels to Nanaimo via flight and ferry from our Western Canada base. Our Nanaimo rates include all travel logistics with no hidden fees. Submit a booking inquiry with your event details and we’ll send a custom quote within 24 hours. Island dates during summer months book well in advance — early booking is recommended.

Vancouver Island's Live Entertainment Choice

From harbour galas to island festivals — Wake Up Starlight delivers unforgettable live entertainment across Nanaimo and central Vancouver Island.

Vancouver Island's Live Entertainment Choice

From harbour galas to island festivals — Wake Up Starlight delivers unforgettable live entertainment across Nanaimo and central Vancouver Island.