function gutenberg_render_block_core_archives in Gutenberg 8
Same name and namespace in other branches
- 8.2 vendor/gutenberg/block-library/blocks/archives.php \gutenberg_render_block_core_archives()
Renders the `core/archives` block on server.
Parameters
array $attributes The block attributes.:
Return value
string Returns the post content with archives added.
See also
WP_Widget_Archives
1 string reference to 'gutenberg_render_block_core_archives'
- gutenberg_register_block_core_archives in vendor/
gutenberg/ block-library/ blocks/ archives.php - Register archives block.
File
- vendor/
gutenberg/ block-library/ blocks/ archives.php, line 17
Code
function gutenberg_render_block_core_archives($attributes) {
$show_post_count = !empty($attributes['showPostCounts']);
$class = 'wp-block-archives';
if (isset($attributes['align'])) {
$class .= " align{$attributes['align']}";
}
if (isset($attributes['className'])) {
$class .= " {$attributes['className']}";
}
if (!empty($attributes['displayAsDropdown'])) {
$class .= ' wp-block-archives-dropdown';
$dropdown_id = esc_attr(uniqid('wp-block-archives-'));
$title = __('Archives');
/** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */
$dropdown_args = apply_filters('widget_archives_dropdown_args', array(
'type' => 'monthly',
'format' => 'option',
'show_post_count' => $show_post_count,
));
$dropdown_args['echo'] = 0;
$archives = wp_get_archives($dropdown_args);
switch ($dropdown_args['type']) {
case 'yearly':
$label = __('Select Year');
break;
case 'monthly':
$label = __('Select Month');
break;
case 'daily':
$label = __('Select Day');
break;
case 'weekly':
$label = __('Select Week');
break;
default:
$label = __('Select Post');
break;
}
$label = esc_attr($label);
$block_content = '<label class="screen-reader-text" for="' . $dropdown_id . '">' . $title . '</label>
<select id="' . $dropdown_id . '" name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;">
<option value="">' . $label . '</option>' . $archives . '</select>';
return sprintf('<div class="%1$s">%2$s</div>', esc_attr($class), $block_content);
}
$class .= ' wp-block-archives-list';
/** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */
$archives_args = apply_filters('widget_archives_args', array(
'type' => 'monthly',
'show_post_count' => $show_post_count,
));
$archives_args['echo'] = 0;
$archives = wp_get_archives($archives_args);
$classnames = esc_attr($class);
if (empty($archives)) {
return sprintf('<div class="%1$s">%2$s</div>', $classnames, __('No archives to show.'));
}
return sprintf('<ul class="%1$s">%2$s</ul>', $classnames, $archives);
}