@@ -551,36 +551,54 @@ function osi_handle_supporter_form_flamingo_spam_status_change( string $new_stat
551551}
552552add_action ( 'transition_post_status ' , 'osi_handle_supporter_form_flamingo_spam_status_change ' , 10 , 3 );
553553
554- function enqueue_ai_template_assets () {
555- // Only load on AI template page
556- if (is_page_template ('templates/ai-fse.php ' )) {
557- // FontAwesome
558- wp_enqueue_style ('fontawesome ' , 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css ' , array (), null );
559-
560- // Other CSS files
561- wp_enqueue_style ('swiper ' , 'https://opensourceorg.github.io/ai/assets/css/plugins/swiper.css ' , array (), null );
562- wp_enqueue_style ('unicons ' , 'https://opensourceorg.github.io/ai/assets/css/plugins/unicons.css ' , array (), null );
563- wp_enqueue_style ('metismenu ' , 'https://opensourceorg.github.io/ai/assets/css/plugins/metismenu.css ' , array (), null );
564- wp_enqueue_style ('animate ' , 'https://opensourceorg.github.io/ai/assets/css/vendor/animate.css ' , array (), null );
565- wp_enqueue_style ('bootstrap ' , 'https://opensourceorg.github.io/ai/assets/css/vendor/bootstrap.min.css ' , array (), null );
566- wp_enqueue_style ('ai-custom ' , 'https://opensourceorg.github.io/ai/assets/css/style.css ' , array (), null );
567-
568- // JavaScript files
569- wp_enqueue_script ('jquery ' ); // WordPress core jQuery
570- wp_enqueue_script ('jqueryui ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/jqueryui.js ' , array ('jquery ' ), null , true );
571- wp_enqueue_script ('counter-up ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/counter-up.js ' , array ('jquery ' ), null , true );
572- wp_enqueue_script ('swiper-js ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/swiper.js ' , array ('jquery ' ), null , true );
573- wp_enqueue_script ('metismenu-js ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/metismenu.js ' , array ('jquery ' ), null , true );
574- wp_enqueue_script ('waypoint ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/waypoint.js ' , array ('jquery ' ), null , true );
575- wp_enqueue_script ('waw ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/waw.js ' , array ('jquery ' ), null , true );
576- wp_enqueue_script ('gsap ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/gsap.min.js ' , array (), null , true );
577- wp_enqueue_script ('scrolltrigger ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/scrolltigger.js ' , array ('gsap ' ), null , true );
578- wp_enqueue_script ('split-text ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/split-text.js ' , array ('gsap ' ), null , true );
579- wp_enqueue_script ('contact-form ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/contact.form.js ' , array ('jquery ' ), null , true );
580- wp_enqueue_script ('split-type ' , 'https://opensourceorg.github.io/ai/assets/js/vendor/split-type.js ' , array (), null , true );
581- wp_enqueue_script ('jquery-timepicker ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/jquery-timepicker.js ' , array ('jquery ' ), null , true );
582- wp_enqueue_script ('bootstrap-js ' , 'https://opensourceorg.github.io/ai/assets/js/plugins/bootstrap.min.js ' , array ('jquery ' ), null , true );
583- wp_enqueue_script ('ai-main ' , 'https://opensourceorg.github.io/ai/assets/js/main.js ' , array ('jquery ' ), null , true );
554+ /**
555+ * Allow Font Awesome icons in Gutenberg blocks
556+ */
557+ function allow_font_awesome_icons ($ allowed_html ) {
558+ // If the allowed_html array doesn't exist, create it
559+ if (!is_array ($ allowed_html )) {
560+ $ allowed_html = array ();
584561 }
562+
563+ // Add specific Font Awesome support
564+ $ allowed_html ['i ' ] = array (
565+ 'class ' => true ,
566+ 'style ' => true ,
567+ 'aria-hidden ' => true ,
568+ );
569+
570+ // Add support for div containers
571+ $ allowed_html ['div ' ] = array (
572+ 'class ' => true ,
573+ 'style ' => true ,
574+ );
575+
576+ return $ allowed_html ;
577+ }
578+ add_filter ('wp_kses_allowed_html ' , 'allow_font_awesome_icons ' , 99 , 1 );
579+
580+ /**
581+ * Allow Font Awesome classes in Gutenberg blocks
582+ */
583+ function allow_fa_classes_in_blocks ($ block_content , $ block ) {
584+ // Remove wp_kses filtering for blocks that might contain Font Awesome icons
585+ if (isset ($ block ['blockName ' ]) && (
586+ strpos ($ block ['blockName ' ], 'core/html ' ) !== false ||
587+ strpos ($ block ['blockName ' ], 'core/paragraph ' ) !== false ||
588+ strpos ($ block ['blockName ' ], 'core/group ' ) !== false
589+ )) {
590+ remove_filter ('the_content ' , 'wp_kses_post ' );
591+ }
592+
593+ return $ block_content ;
594+ }
595+ add_filter ('render_block ' , 'allow_fa_classes_in_blocks ' , 10 , 2 );
596+
597+ /**
598+ * Add Font Awesome to allowed protocols
599+ */
600+ function add_fa_to_allowed_protocols ($ protocols ) {
601+ $ protocols [] = 'data-fa ' ;
602+ return $ protocols ;
585603}
586- add_action ( ' wp_enqueue_scripts ' , 'enqueue_ai_template_assets ' );
604+ add_filter ( ' kses_allowed_protocols ' , 'add_fa_to_allowed_protocols ' );
0 commit comments