Using WordPress ‘default_wp_template_part_areas’ PHP filter

The default_wp_template_part_areas WordPress PHP filter allows you to modify the list of allowed template part area values.

Usage

add_filter('default_wp_template_part_areas', 'my_custom_template_part_areas');
function my_custom_template_part_areas($default_area_definitions) {
    // your custom code here
    return $default_area_definitions;
}

Parameters

  • $default_area_definitions (array): An array of supported area objects.

More information

See WordPress Developer Resources: default_wp_template_part_areas

Examples

Add a new template part area

Add a new custom template part area called ‘banner’.

add_filter('default_wp_template_part_areas', 'add_banner_template_part_area');
function add_banner_template_part_area($default_area_definitions) {
    $default_area_definitions[] = array(
        'area' => 'banner',
        'label' => __('Banner', 'textdomain'),
    );
    return $default_area_definitions;
}

Remove an existing template part area

Remove the ‘header’ template part area.

add_filter('default_wp_template_part_areas', 'remove_header_template_part_area');
function remove_header_template_part_area($default_area_definitions) {
    foreach ($default_area_definitions as $key => $area) {
        if ($area['area'] === 'header') {
            unset($default_area_definitions[$key]);
        }
    }
    return $default_area_definitions;
}

Change the label of a template part area

Change the label of the ‘footer’ template part area to ‘Website Footer’.

add_filter('default_wp_template_part_areas', 'change_footer_label');
function change_footer_label($default_area_definitions) {
    foreach ($default_area_definitions as &$area) {
        if ($area['area'] === 'footer') {
            $area['label'] = __('Website Footer', 'textdomain');
        }
    }
    return $default_area_definitions;
}

Sort template part areas alphabetically

Sort the template part areas by their labels in alphabetical order.

add_filter('default_wp_template_part_areas', 'sort_template_part_areas_alphabetically');
function sort_template_part_areas_alphabetically($default_area_definitions) {
    usort($default_area_definitions, function($a, $b) {
        return strcmp($a['label'], $b['label']);
    });
    return $default_area_definitions;
}

Make all template part area labels uppercase

Change all template part area labels to uppercase.

add_filter('default_wp_template_part_areas', 'uppercase_template_part_area_labels');
function uppercase_template_part_area_labels($default_area_definitions) {
    foreach ($default_area_definitions as &$area) {
        $area['label'] = strtoupper($area['label']);
    }
    return $default_area_definitions;
}