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', 'gutenberg' );
$wrapper_markup = '
%2$s
';
$items_markup = wp_dropdown_categories( $args );
$type = 'dropdown';
if ( ! is_admin() ) {
$wrapper_markup .= build_dropdown_script_block_core_categories( $id );
}
} else {
$wrapper_markup = '';
$items_markup = wp_list_categories( $args );
$type = 'list';
}
$class = "wp-block-categories wp-block-categories-{$type} align{$align}";
if ( isset( $attributes['className'] ) ) {
$class .= ' ' . $attributes['className'];
}
$block_content = sprintf(
$wrapper_markup,
esc_attr( $class ),
$items_markup
);
return $block_content;
}
/**
* Generates the inline script for a categories dropdown field.
*
* @param string $dropdown_id ID of the dropdown field.
*
* @return string Returns the dropdown onChange redirection script.
*/
function build_dropdown_script_block_core_categories( $dropdown_id ) {
ob_start();
?>
'render_block_core_categories',
)
);
}
add_action( 'init', 'register_block_core_categories' );