run:R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:52
R W Run
DIR
2026-03-11 16:18:51
R W Run
DIR
2026-03-11 16:18:51
R W Run
2.35 KB
2026-03-11 16:18:52
R W Run
1.12 KB
2026-03-11 16:18:52
R W Run
4.31 KB
2026-03-11 16:18:52
R W Run
5.61 KB
2026-03-11 16:18:51
R W Run
4.09 KB
2026-03-11 16:18:52
R W Run
213.43 KB
2026-03-11 16:18:51
R W Run
1.71 KB
2026-03-11 16:18:51
R W Run
5.93 KB
2026-03-11 16:18:51
R W Run
4.54 KB
2026-03-11 16:18:52
R W Run
2.08 KB
2026-03-11 16:18:52
R W Run
2.4 KB
2026-03-11 16:18:52
R W Run
1.82 KB
2026-03-11 16:18:52
R W Run
1.67 KB
2026-03-11 16:18:52
R W Run
2.03 KB
2026-03-11 16:18:51
R W Run
4.39 KB
2026-03-11 16:18:52
R W Run
1.88 KB
2026-03-11 16:18:51
R W Run
1.59 KB
2026-03-11 16:18:51
R W Run
1.75 KB
2026-03-11 16:18:51
R W Run
1.23 KB
2026-03-11 16:18:52
R W Run
2.71 KB
2026-03-11 16:18:51
R W Run
6.63 KB
2026-03-11 16:18:52
R W Run
3.1 KB
2026-03-11 16:18:52
R W Run
1.83 KB
2026-03-11 16:18:52
R W Run
3.68 KB
2026-03-11 16:18:51
R W Run
6.29 KB
2026-03-11 16:18:52
R W Run
1.27 KB
2026-03-11 16:18:52
R W Run
5.31 KB
2026-03-11 16:18:52
R W Run
13.5 KB
2026-03-11 16:18:52
R W Run
4.99 KB
2026-03-11 16:18:52
R W Run
4.91 KB
2026-03-11 16:18:52
R W Run
8.53 KB
2026-03-11 16:18:51
R W Run
3.92 KB
2026-03-11 16:18:51
R W Run
1.24 KB
2026-03-11 16:18:51
R W Run
1.63 KB
2026-03-11 16:18:51
R W Run
4.28 KB
2026-03-11 16:18:51
R W Run
13.63 KB
2026-03-11 16:18:51
R W Run
9.74 KB
2026-03-11 16:18:52
R W Run
48.39 KB
2026-03-11 16:18:52
R W Run
361 By
2026-03-11 16:18:52
R W Run
13.29 KB
2026-03-11 16:18:51
R W Run
1.75 KB
2026-03-11 16:18:52
R W Run
1.49 KB
2026-03-11 16:18:51
R W Run
1.91 KB
2026-03-11 16:18:52
R W Run
2.67 KB
2026-03-11 16:18:51
R W Run
1.25 KB
2026-03-11 16:18:52
R W Run
2.74 KB
2026-03-11 16:18:52
R W Run
2.18 KB
2026-03-11 16:18:52
R W Run
2.29 KB
2026-03-11 16:18:52
R W Run
3.55 KB
2026-03-11 16:18:51
R W Run
3.53 KB
2026-03-11 16:18:51
R W Run
9.14 KB
2026-03-11 16:18:52
R W Run
4.72 KB
2026-03-11 16:18:51
R W Run
5.61 KB
2026-03-11 16:18:52
R W Run
3.55 KB
2026-03-11 16:18:51
R W Run
6.34 KB
2026-03-11 16:18:52
R W Run
2.09 KB
2026-03-11 16:18:51
R W Run
1.8 KB
2026-03-11 16:18:52
R W Run
3.69 KB
2026-03-11 16:18:52
R W Run
4.66 KB
2026-03-11 16:18:52
R W Run
3.49 KB
2026-03-11 16:18:52
R W Run
1.15 KB
2026-03-11 16:18:51
R W Run
2.87 KB
2026-03-11 16:18:51
R W Run
2.48 KB
2026-03-11 16:18:52
R W Run
5.56 KB
2026-03-11 16:18:51
R W Run
1.79 KB
2026-03-11 16:18:52
R W Run
4.59 KB
2026-03-11 16:18:51
R W Run
558 By
2026-03-11 16:18:52
R W Run
4.5 KB
2026-03-11 16:18:52
R W Run
23.26 KB
2026-03-11 16:18:52
R W Run
735 By
2026-03-11 16:18:52
R W Run
6.19 KB
2026-03-11 16:18:51
R W Run
1.17 KB
2026-03-11 16:18:51
R W Run
1.82 KB
2026-03-11 16:18:52
R W Run
66.15 KB
2026-03-11 16:18:52
R W Run
1.55 KB
2026-03-11 16:18:51
R W Run
9.92 KB
2026-03-11 16:18:52
R W Run
1.8 KB
2026-03-11 16:18:52
R W Run
1.73 KB
2026-03-11 16:18:52
R W Run
2.02 KB
2026-03-11 16:18:52
R W Run
4.41 KB
2026-03-11 16:18:52
R W Run
2.67 KB
2026-03-11 16:18:51
R W Run
2.38 KB
2026-03-11 16:18:52
R W Run
error_log
📄calendar.php
1<?php
2/**
3 * Server-side rendering of the `core/calendar` block.
4 *
5 * @package WordPress
6 */
7
8/**
9 * Renders the `core/calendar` block on server.
10 *
11 * @since 5.2.0
12 *
13 * @global int $monthnum.
14 * @global int $year.
15 *
16 * @param array $attributes The block attributes.
17 *
18 * @return string Returns the block content.
19 */
20function render_block_core_calendar( $attributes ) {
21 global $monthnum, $year;
22
23 // Calendar shouldn't be rendered
24 // when there are no published posts on the site.
25 if ( ! block_core_calendar_has_published_posts() ) {
26 if ( is_user_logged_in() ) {
27 return '<div>' . __( 'The calendar block is hidden because there are no published posts.' ) . '</div>';
28 }
29 return '';
30 }
31
32 $previous_monthnum = $monthnum;
33 $previous_year = $year;
34
35 if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) {
36 $permalink_structure = get_option( 'permalink_structure' );
37 if (
38 str_contains( $permalink_structure, '%monthnum%' ) &&
39 str_contains( $permalink_structure, '%year%' )
40 ) {
41 $monthnum = $attributes['month'];
42 $year = $attributes['year'];
43 }
44 }
45
46 $color_block_styles = array();
47
48 // Text color.
49 $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null;
50 $custom_text_color = $attributes['style']['color']['text'] ?? null;
51 $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color;
52
53 // Background Color.
54 $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null;
55 $custom_background_color = $attributes['style']['color']['background'] ?? null;
56 $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color;
57
58 // Generate color styles and classes.
59 $styles = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) );
60 $inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) );
61 $classnames = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] );
62 if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
63 $classnames .= ' has-link-color';
64 }
65 // Apply color classes and styles to the calendar.
66 $calendar = str_replace( '<table', '<table' . $inline_styles, get_calendar( true, false ) );
67 $calendar = str_replace( 'class="wp-calendar-table', 'class="wp-calendar-table' . $classnames, $calendar );
68
69 $wrapper_attributes = get_block_wrapper_attributes();
70 $output = sprintf(
71 '<div %1$s>%2$s</div>',
72 $wrapper_attributes,
73 $calendar
74 );
75
76 $monthnum = $previous_monthnum;
77 $year = $previous_year;
78
79 return $output;
80}
81
82/**
83 * Registers the `core/calendar` block on server.
84 *
85 * @since 5.2.0
86 */
87function register_block_core_calendar() {
88 register_block_type_from_metadata(
89 __DIR__ . '/calendar',
90 array(
91 'render_callback' => 'render_block_core_calendar',
92 )
93 );
94}
95
96add_action( 'init', 'register_block_core_calendar' );
97
98/**
99 * Returns whether or not there are any published posts.
100 *
101 * Used to hide the calendar block when there are no published posts.
102 * This compensates for a known Core bug: https://core.trac.wordpress.org/ticket/12016
103 *
104 * @since 5.9.0
105 *
106 * @return bool Has any published posts or not.
107 */
108function block_core_calendar_has_published_posts() {
109 // Multisite already has an option that stores the count of the published posts.
110 // Let's use that for multisites.
111 if ( is_multisite() ) {
112 return 0 < (int) get_option( 'post_count' );
113 }
114
115 // On single sites we try our own cached option first.
116 $has_published_posts = get_option( 'wp_calendar_block_has_published_posts', null );
117 if ( null !== $has_published_posts ) {
118 return (bool) $has_published_posts;
119 }
120
121 // No cache hit, let's update the cache and return the cached value.
122 return block_core_calendar_update_has_published_posts();
123}
124
125/**
126 * Queries the database for any published post and saves
127 * a flag whether any published post exists or not.
128 *
129 * @since 5.9.0
130 *
131 * @global wpdb $wpdb WordPress database abstraction object.
132 *
133 * @return bool Has any published posts or not.
134 */
135function block_core_calendar_update_has_published_posts() {
136 global $wpdb;
137 $has_published_posts = (bool) $wpdb->get_var( "SELECT 1 as test FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" );
138 update_option( 'wp_calendar_block_has_published_posts', $has_published_posts );
139 return $has_published_posts;
140}
141
142// We only want to register these functions and actions when
143// we are on single sites. On multi sites we use `post_count` option.
144if ( ! is_multisite() ) {
145 /**
146 * Handler for updating the has published posts flag when a post is deleted.
147 *
148 * @since 5.9.0
149 *
150 * @param int $post_id Deleted post ID.
151 */
152 function block_core_calendar_update_has_published_post_on_delete( $post_id ) {
153 $post = get_post( $post_id );
154
155 if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) {
156 return;
157 }
158
159 block_core_calendar_update_has_published_posts();
160 }
161
162 /**
163 * Handler for updating the has published posts flag when a post status changes.
164 *
165 * @since 5.9.0
166 *
167 * @param string $new_status The status the post is changing to.
168 * @param string $old_status The status the post is changing from.
169 * @param WP_Post $post Post object.
170 */
171 function block_core_calendar_update_has_published_post_on_transition_post_status( $new_status, $old_status, $post ) {
172 if ( $new_status === $old_status ) {
173 return;
174 }
175
176 if ( 'post' !== get_post_type( $post ) ) {
177 return;
178 }
179
180 if ( 'publish' !== $new_status && 'publish' !== $old_status ) {
181 return;
182 }
183
184 block_core_calendar_update_has_published_posts();
185 }
186
187 add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' );
188 add_action( 'transition_post_status', 'block_core_calendar_update_has_published_post_on_transition_post_status', 10, 3 );
189}
190
Ui Ux Design – Teachers Night Out

Get in Touch

© 2024 Teachers Night Out. All Rights Reserved.