@@ -54,10 +54,8 @@ class SiteGen {
54
54
* Function to check capabilities
55
55
*/
56
56
private static function check_capabilities () {
57
- $ capability = new SiteCapabilities ();
58
-
57
+ $ capability = new SiteCapabilities ();
59
58
$ sitegen_enabled = $ capability ->get ( 'hasAISiteGen ' );
60
-
61
59
return $ sitegen_enabled ;
62
60
}
63
61
@@ -426,8 +424,15 @@ public static function get_home_pages( $site_description, $content_style, $targe
426
424
}
427
425
$ parsed_response = json_decode ( wp_remote_retrieve_body ( $ response ), true );
428
426
$ generated_content_structures = $ parsed_response ['contentStructures ' ];
429
- $ generated_patterns = $ parsed_response ['generatedPatterns ' ];
430
- $ generated_homepages = $ parsed_response ['pages ' ];
427
+ // Ensure all content structures should have hero
428
+ foreach ( $ generated_content_structures as $ home_slug => $ structure ) {
429
+ if ( ! in_array ( 'hero ' , $ structure , true ) ) {
430
+ array_splice ( $ structure , 1 , 0 , 'hero ' );
431
+ $ generated_content_structures [ $ home_slug ] = $ structure ;
432
+ }
433
+ }
434
+ $ generated_patterns = $ parsed_response ['generatedPatterns ' ];
435
+ $ generated_homepages = $ parsed_response ['pages ' ];
431
436
self ::cache_sitegen_response ( 'contentStructures ' , $ generated_content_structures );
432
437
self ::cache_sitegen_response ( 'generatedPatterns ' , $ generated_patterns );
433
438
self ::cache_sitegen_response ( 'homepages ' , $ generated_homepages );
@@ -437,6 +442,7 @@ public static function get_home_pages( $site_description, $content_style, $targe
437
442
$ generated_homepages = array ();
438
443
$ generated_patterns = self ::get_sitegen_from_cache ( 'generatedPatterns ' );
439
444
445
+ $ dalle_used = false ;
440
446
$ categories_to_separate = array ( 'header ' , 'footer ' );
441
447
// Choose random categories for the generated patterns and return
442
448
foreach ( $ random_homepages as $ homepage_index => $ slug ) {
@@ -452,6 +458,16 @@ public static function get_home_pages( $site_description, $content_style, $targe
452
458
$ pattern_index = ( $ regenerate ) ? array_rand ( $ generated_patterns [ $ pattern_category ] ) : $ homepage_index ;
453
459
$ random_pattern = $ generated_patterns [ $ pattern_category ][ $ pattern_index ];
454
460
461
+ // Check if this is a hero pattern and we are at end of homepages without ever using dalle
462
+ if ( ! $ dalle_used && count ( $ random_homepages ) === $ homepage_index && 'hero ' === $ pattern_category ) {
463
+ // Chose the dalle hero only
464
+ foreach ( $ generated_patterns [ $ pattern_category ] as $ gen_hero ) {
465
+ if ( ! empty ( $ gen_hero ['dalleImages ' ] ) ) {
466
+ $ random_pattern = $ gen_hero ;
467
+ }
468
+ }
469
+ }
470
+
455
471
if ( in_array ( $ pattern_category , $ categories_to_separate , true ) ) {
456
472
$ homepage_patterns [ $ pattern_category ] = $ random_pattern ['replacedPattern ' ];
457
473
} else {
@@ -460,6 +476,7 @@ public static function get_home_pages( $site_description, $content_style, $targe
460
476
461
477
if ( ! empty ( $ random_pattern ['dalleImages ' ] ) ) {
462
478
$ homepage_patterns ['generatedImages ' ] = $ random_pattern ['dalleImages ' ];
479
+ $ dalle_used = true ;
463
480
}
464
481
}
465
482
$ generated_homepages [ $ slug ] = $ homepage_patterns ;
0 commit comments