render_block_core_categories

The timeline below displays how wordpress function render_block_core_categories has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.2

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    ++$block_id;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '', 'hide_empty' => empty($attributes['showEmpty']));
    if (!empty($attributes['showOnlyTopLevel']) && $attributes['showOnlyTopLevel']) {
        $args['parent'] = 0;
    }
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div %1$s><label class="screen-reader-text" for="' . esc_attr($id) . '">' . __('Categories') . '</label>%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            // Inject the dropdown script immediately after the select dropdown.
            $items_markup = preg_replace('#(?<=</select>)#', build_dropdown_script_block_core_categories($id), $items_markup, 1);
        }
    } else {
        $wrapper_markup = '<ul %1$s>%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => "wp-block-categories-{$type}"));
    return sprintf($wrapper_markup, $wrapper_attributes, $items_markup);
}

WordPress Version: 6.1

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '', 'hide_empty' => empty($attributes['showEmpty']));
    if (!empty($attributes['showOnlyTopLevel']) && $attributes['showOnlyTopLevel']) {
        $args['parent'] = 0;
    }
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div %1$s><label class="screen-reader-text" for="' . esc_attr($id) . '">' . __('Categories') . '</label>%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            // Inject the dropdown script immediately after the select dropdown.
            $items_markup = preg_replace('#(?<=</select>)#', build_dropdown_script_block_core_categories($id), $items_markup, 1);
        }
    } else {
        $wrapper_markup = '<ul %1$s>%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => "wp-block-categories-{$type}"));
    return sprintf($wrapper_markup, $wrapper_attributes, $items_markup);
}

WordPress Version: 5.9

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '');
    if (!empty($attributes['showOnlyTopLevel']) && $attributes['showOnlyTopLevel']) {
        $args['parent'] = 0;
    }
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div %1$s><label class="screen-reader-text" for="' . $id . '">' . __('Categories') . '</label>%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            // Inject the dropdown script immediately after the select dropdown.
            $items_markup = preg_replace('#(?<=</select>)#', build_dropdown_script_block_core_categories($id), $items_markup, 1);
        }
    } else {
        $wrapper_markup = '<ul %1$s>%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => "wp-block-categories-{$type}"));
    return sprintf($wrapper_markup, $wrapper_attributes, $items_markup);
}

WordPress Version: 5.8

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '');
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div %1$s><label class="screen-reader-text" for="' . $id . '">' . __('Categories') . '</label>%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            // Inject the dropdown script immediately after the select dropdown.
            $items_markup = preg_replace('#(?<=</select>)#', build_dropdown_script_block_core_categories($id), $items_markup, 1);
        }
    } else {
        $wrapper_markup = '<ul %1$s>%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => "wp-block-categories-{$type}"));
    return sprintf($wrapper_markup, $wrapper_attributes, $items_markup);
}

WordPress Version: 5.6

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '');
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div %1$s>%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            // Inject the dropdown script immediately after the select dropdown.
            $items_markup = preg_replace('#(?<=</select>)#', build_dropdown_script_block_core_categories($id), $items_markup, 1);
        }
    } else {
        $wrapper_markup = '<ul %1$s>%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $wrapper_attributes = get_block_wrapper_attributes(array('class' => "wp-block-categories-{$type}"));
    return sprintf($wrapper_markup, $wrapper_attributes, $items_markup);
}

WordPress Version: 5.3

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '');
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div class="%1$s">%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            $wrapper_markup .= build_dropdown_script_block_core_categories($id);
        }
    } else {
        $wrapper_markup = '<ul class="%1$s">%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $class = "wp-block-categories wp-block-categories-{$type}";
    if (isset($attributes['align'])) {
        $class .= " align{$attributes['align']}";
    }
    if (isset($attributes['className'])) {
        $class .= " {$attributes['className']}";
    }
    return sprintf($wrapper_markup, esc_attr($class), $items_markup);
}

WordPress Version: 5.0

/**
 * Server-side rendering of the `core/categories` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/categories` block on server.
 *
 * @param array $attributes The block attributes.
 *
 * @return string Returns the categories list/dropdown markup.
 */
function render_block_core_categories($attributes)
{
    static $block_id = 0;
    $block_id++;
    $args = array('echo' => false, 'hierarchical' => !empty($attributes['showHierarchy']), 'orderby' => 'name', 'show_count' => !empty($attributes['showPostCounts']), 'title_li' => '');
    if (!empty($attributes['displayAsDropdown'])) {
        $id = 'wp-block-categories-' . $block_id;
        $args['id'] = $id;
        $args['show_option_none'] = __('Select Category');
        $wrapper_markup = '<div class="%1$s">%2$s</div>';
        $items_markup = wp_dropdown_categories($args);
        $type = 'dropdown';
        if (!is_admin()) {
            $wrapper_markup .= build_dropdown_script_block_core_categories($id);
        }
    } else {
        $wrapper_markup = '<ul class="%1$s">%2$s</ul>';
        $items_markup = wp_list_categories($args);
        $type = 'list';
    }
    $class = "wp-block-categories wp-block-categories-{$type}";
    if (isset($attributes['align'])) {
        $class .= " align{$attributes['align']}";
    }
    if (isset($attributes['className'])) {
        $class .= " {$attributes['className']}";
    }
    $block_content = sprintf($wrapper_markup, esc_attr($class), $items_markup);
    return $block_content;
}