Nama File / Folder
Size
Action
accordion
--
NONE
accordion-heading
--
NONE
accordion-item
--
NONE
accordion-panel
--
NONE
archives
--
NONE
audio
--
NONE
avatar
--
NONE
block
--
NONE
button
--
NONE
buttons
--
NONE
calendar
--
NONE
categories
--
NONE
code
--
NONE
column
--
NONE
columns
--
NONE
comment-author-name
--
NONE
comment-content
--
NONE
comment-date
--
NONE
comment-edit-link
--
NONE
comment-reply-link
--
NONE
comment-template
--
NONE
comments
--
NONE
comments-pagination
--
NONE
comments-pagination-next
--
NONE
comments-pagination-numbers
--
NONE
comments-pagination-previous
--
NONE
comments-title
--
NONE
cover
--
NONE
details
--
NONE
embed
--
NONE
file
--
NONE
footnotes
--
NONE
freeform
--
NONE
gallery
--
NONE
group
--
NONE
heading
--
NONE
home-link
--
NONE
html
--
NONE
image
--
NONE
latest-comments
--
NONE
latest-posts
--
NONE
legacy-widget
--
NONE
list
--
NONE
list-item
--
NONE
loginout
--
NONE
math
--
NONE
media-text
--
NONE
missing
--
NONE
more
--
NONE
navigation
--
NONE
navigation-link
--
NONE
navigation-submenu
--
NONE
nextpage
--
NONE
page-list
--
NONE
page-list-item
--
NONE
paragraph
--
NONE
pattern
--
NONE
post-author
--
NONE
post-author-biography
--
NONE
post-author-name
--
NONE
post-comments-count
--
NONE
post-comments-form
--
NONE
post-comments-link
--
NONE
post-content
--
NONE
post-date
--
NONE
post-excerpt
--
NONE
post-featured-image
--
NONE
post-navigation-link
--
NONE
post-template
--
NONE
post-terms
--
NONE
post-time-to-read
--
NONE
post-title
--
NONE
preformatted
--
NONE
pullquote
--
NONE
query
--
NONE
query-no-results
--
NONE
query-pagination
--
NONE
query-pagination-next
--
NONE
query-pagination-numbers
--
NONE
query-pagination-previous
--
NONE
query-title
--
NONE
query-total
--
NONE
quote
--
NONE
read-more
--
NONE
rss
--
NONE
search
--
NONE
separator
--
NONE
shortcode
--
NONE
site-logo
--
NONE
site-tagline
--
NONE
site-title
--
NONE
social-link
--
NONE
social-links
--
NONE
spacer
--
NONE
table
--
NONE
tag-cloud
--
NONE
template-part
--
NONE
term-count
--
NONE
term-description
--
NONE
term-name
--
NONE
term-template
--
NONE
terms-query
--
NONE
text-columns
--
NONE
verse
--
NONE
video
--
NONE
widget-group
--
NONE
accordion-item.php
2.354KB
Hapus
Edit
Rename
accordion.php
1.12KB
Hapus
Edit
Rename
archives.php
4.312KB
Hapus
Edit
Rename
avatar.php
5.61KB
Hapus
Edit
Rename
block.php
4.088KB
Hapus
Edit
Rename
blocks-json.php
213.431KB
Hapus
Edit
Rename
calendar.php
5.933KB
Hapus
Edit
Rename
categories.php
4.541KB
Hapus
Edit
Rename
comment-author-name.php
2.083KB
Hapus
Edit
Rename
comment-date.php
1.819KB
Hapus
Edit
Rename
comment-reply-link.php
2.026KB
Hapus
Edit
Rename
comment-template.php
4.389KB
Hapus
Edit
Rename
comments-pagination-next.php
1.879KB
Hapus
Edit
Rename
comments-pagination-numbers.php
1.594KB
Hapus
Edit
Rename
comments-pagination-previous.php
1.748KB
Hapus
Edit
Rename
comments-pagination.php
1.231KB
Hapus
Edit
Rename
comments.php
6.625KB
Hapus
Edit
Rename
cover.php
3.101KB
Hapus
Edit
Rename
footnotes.php
3.683KB
Hapus
Edit
Rename
gallery.php
6.288KB
Hapus
Edit
Rename
heading.php
1.271KB
Hapus
Edit
Rename
home-link.php
5.311KB
Hapus
Edit
Rename
index.php
11.972KB
Hapus
Edit
Rename
latest-comments.php
4.912KB
Hapus
Edit
Rename
legacy-widget.php
3.917KB
Hapus
Edit
Rename
list.php
1.243KB
Hapus
Edit
Rename
loginout.php
1.625KB
Hapus
Edit
Rename
media-text.php
4.28KB
Hapus
Edit
Rename
navigation-link.php
13.634KB
Hapus
Edit
Rename
navigation-submenu.php
9.742KB
Hapus
Edit
Rename
page-list-item.php
0.353KB
Hapus
Edit
Rename
page-list.php
13.292KB
Hapus
Edit
Rename
pattern.php
1.746KB
Hapus
Edit
Rename
post-author-biography.php
1.488KB
Hapus
Edit
Rename
post-author-name.php
1.905KB
Hapus
Edit
Rename
post-author.php
2.67KB
Hapus
Edit
Rename
post-comments-form.php
2.739KB
Hapus
Edit
Rename
post-comments-link.php
2.185KB
Hapus
Edit
Rename
post-date.php
3.547KB
Hapus
Edit
Rename
post-featured-image.php
9.144KB
Hapus
Edit
Rename
post-navigation-link.php
4.724KB
Hapus
Edit
Rename
post-terms.php
3.555KB
Hapus
Edit
Rename
post-time-to-read.php
6.341KB
Hapus
Edit
Rename
post-title.php
2.088KB
Hapus
Edit
Rename
query-pagination-next.php
3.692KB
Hapus
Edit
Rename
query-pagination-previous.php
3.494KB
Hapus
Edit
Rename
query-pagination.php
1.148KB
Hapus
Edit
Rename
query-total.php
2.476KB
Hapus
Edit
Rename
query.php
5.557KB
Hapus
Edit
Rename
read-more.php
1.787KB
Hapus
Edit
Rename
require-dynamic-blocks.php
4.59KB
Hapus
Edit
Rename
require-static-blocks.php
0.545KB
Hapus
Edit
Rename
rss.php
4.501KB
Hapus
Edit
Rename
search.php
23.259KB
Hapus
Edit
Rename
shortcode.php
0.718KB
Hapus
Edit
Rename
site-tagline.php
1.175KB
Hapus
Edit
Rename
site-title.php
1.82KB
Hapus
Edit
Rename
social-link.php
66.147KB
Hapus
Edit
Rename
tag-cloud.php
1.553KB
Hapus
Edit
Rename
template-part.php
9.916KB
Hapus
Edit
Rename
term-count.php
1.8KB
Hapus
Edit
Rename
term-description.php
1.729KB
Hapus
Edit
Rename
term-name.php
2.021KB
Hapus
Edit
Rename
term-template.php
4.412KB
Hapus
Edit
Rename
video.php
2.669KB
Hapus
Edit
Rename
widget-group.php
2.381KB
Hapus
Edit
Rename
<?php /** * Server-side rendering of the `core/calendar` block. * * @package WordPress */ /** * Renders the `core/calendar` block on server. * * @since 5.2.0 * * @global int $monthnum. * @global int $year. * * @param array $attributes The block attributes. * * @return string Returns the block content. */ function render_block_core_calendar( $attributes ) { global $monthnum, $year; // Calendar shouldn't be rendered // when there are no published posts on the site. if ( ! block_core_calendar_has_published_posts() ) { if ( is_user_logged_in() ) { return '<div>' . __( 'The calendar block is hidden because there are no published posts.' ) . '</div>'; } return ''; } $previous_monthnum = $monthnum; $previous_year = $year; if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) { $permalink_structure = get_option( 'permalink_structure' ); if ( str_contains( $permalink_structure, '%monthnum%' ) && str_contains( $permalink_structure, '%year%' ) ) { $monthnum = $attributes['month']; $year = $attributes['year']; } } $color_block_styles = array(); // Text color. $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null; $custom_text_color = $attributes['style']['color']['text'] ?? null; $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; // Background Color. $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null; $custom_background_color = $attributes['style']['color']['background'] ?? null; $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; // Generate color styles and classes. $styles = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) ); $inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) ); $classnames = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] ); if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= ' has-link-color'; } // Apply color classes and styles to the calendar. $calendar = str_replace( '<table', '<table' . $inline_styles, get_calendar( true, false ) ); $calendar = str_replace( 'class="wp-calendar-table', 'class="wp-calendar-table' . $classnames, $calendar ); $wrapper_attributes = get_block_wrapper_attributes(); $output = sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $calendar ); $monthnum = $previous_monthnum; $year = $previous_year; return $output; } /** * Registers the `core/calendar` block on server. * * @since 5.2.0 */ function register_block_core_calendar() { register_block_type_from_metadata( __DIR__ . '/calendar', array( 'render_callback' => 'render_block_core_calendar', ) ); } add_action( 'init', 'register_block_core_calendar' ); /** * Returns whether or not there are any published posts. * * Used to hide the calendar block when there are no published posts. * This compensates for a known Core bug: https://core.trac.wordpress.org/ticket/12016 * * @since 5.9.0 * * @return bool Has any published posts or not. */ function block_core_calendar_has_published_posts() { // Multisite already has an option that stores the count of the published posts. // Let's use that for multisites. if ( is_multisite() ) { return 0 < (int) get_option( 'post_count' ); } // On single sites we try our own cached option first. $has_published_posts = get_option( 'wp_calendar_block_has_published_posts', null ); if ( null !== $has_published_posts ) { return (bool) $has_published_posts; } // No cache hit, let's update the cache and return the cached value. return block_core_calendar_update_has_published_posts(); } /** * Queries the database for any published post and saves * a flag whether any published post exists or not. * * @since 5.9.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @return bool Has any published posts or not. */ function block_core_calendar_update_has_published_posts() { global $wpdb; $has_published_posts = (bool) $wpdb->get_var( "SELECT 1 as test FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" ); update_option( 'wp_calendar_block_has_published_posts', $has_published_posts ); return $has_published_posts; } // We only want to register these functions and actions when // we are on single sites. On multi sites we use `post_count` option. if ( ! is_multisite() ) { /** * Handler for updating the has published posts flag when a post is deleted. * * @since 5.9.0 * * @param int $post_id Deleted post ID. */ function block_core_calendar_update_has_published_post_on_delete( $post_id ) { $post = get_post( $post_id ); if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) { return; } block_core_calendar_update_has_published_posts(); } /** * Handler for updating the has published posts flag when a post status changes. * * @since 5.9.0 * * @param string $new_status The status the post is changing to. * @param string $old_status The status the post is changing from. * @param WP_Post $post Post object. */ function block_core_calendar_update_has_published_post_on_transition_post_status( $new_status, $old_status, $post ) { if ( $new_status === $old_status ) { return; } if ( 'post' !== get_post_type( $post ) ) { return; } if ( 'publish' !== $new_status && 'publish' !== $old_status ) { return; } block_core_calendar_update_has_published_posts(); } add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' ); add_action( 'transition_post_status', 'block_core_calendar_update_has_published_post_on_transition_post_status', 10, 3 ); }