WordPress Version: 5.9
/**
* For backward compatibility reasons,
* block themes might be using block-templates or block-template-parts,
* this function ensures we fallback to these folders properly.
*
* @since 5.9.0
*
* @param string $theme_stylesheet The stylesheet. Default is to leverage the main theme root.
*
* @return string[] {
* Folder names used by block themes.
*
* @type string $wp_template Theme-relative directory name for block templates.
* @type string $wp_template_part Theme-relative directory name for block template parts.
* }
*/
function get_block_theme_folders($theme_stylesheet = null)
{
$theme_name = (null === $theme_stylesheet) ? get_stylesheet() : $theme_stylesheet;
$root_dir = get_theme_root($theme_name);
$theme_dir = "{$root_dir}/{$theme_name}";
if (file_exists($theme_dir . '/block-templates') || file_exists($theme_dir . '/block-template-parts')) {
return array('wp_template' => 'block-templates', 'wp_template_part' => 'block-template-parts');
}
return array('wp_template' => 'templates', 'wp_template_part' => 'parts');
}