You are here

function gutenberg_render_block_core_categories in Gutenberg 8

Same name and namespace in other branches
  1. 8.2 vendor/gutenberg/block-library/blocks/categories.php \gutenberg_render_block_core_categories()

Renders the `core/categories` block on server.

Parameters

array $attributes The block attributes.:

Return value

string Returns the categories list/dropdown markup.

1 string reference to 'gutenberg_render_block_core_categories'
gutenberg_register_block_core_categories in vendor/gutenberg/block-library/blocks/categories.php
Registers the `core/categories` block on server.

File

vendor/gutenberg/block-library/blocks/categories.php, line 15

Code

function gutenberg_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 .= gutenberg_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);
}