Я даже пытался использовать «isset», но, к сожалению, он не работает.

function pageBanner($args=NULL){ if(!$args['title']){ $args['title']=get_the_title(); } if (!$args['subtitle']){ $args['subtitle'] = get_field('page_banner_subtitle'); } if (!$args['photo']){ if (get_field('page_banner_background_image')){ $args['photo'] = get_field('page_banner_background_image')['sizes']['pageBanner']; } else { $args['photo']=get_theme_file_uri('images/pages.jpg'); } }?{amp}gt; 

Я не знал о проблеме с моим if(!$args['title']){ $args['title']=get_the_title(); это работает, но субтитры и фото имеют неопределенный индекс.

Попробуйте что-то вроде этого:

 function pageBanner($args = null) { if ($args === null) { $args = []; } if (!isset($args['title'])) { $args['title'] = get_the_title(); } if (!isset($args['subtitle'])) { $args['subtitle'] = get_field('page_banner_subtitle'); } if (!isset($args['photo'])) { $field = get_field('page_banner_background_image'); if ($field {amp}amp;{amp}amp; isset($field['sizes']['pageBanner'])) { $args['photo'] = $field['sizes']['pageBanner']; } else { $args['photo'] = get_theme_file_uri('images/pages.jpg'); } } }