Edit File by line
/home/zeestwma/richards.../wp-inclu.../blocks
File: index.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* Used to set up all core blocks used with the block editor.
[2] Fix | Delete
*
[3] Fix | Delete
* @package WordPress
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
// Don't load directly.
[7] Fix | Delete
if ( ! defined( 'ABSPATH' ) ) {
[8] Fix | Delete
die( '-1' );
[9] Fix | Delete
}
[10] Fix | Delete
[11] Fix | Delete
define( 'BLOCKS_PATH', ABSPATH . WPINC . '/blocks/' );
[12] Fix | Delete
[13] Fix | Delete
// Include files required for core blocks registration.
[14] Fix | Delete
require BLOCKS_PATH . 'legacy-widget.php';
[15] Fix | Delete
require BLOCKS_PATH . 'widget-group.php';
[16] Fix | Delete
require BLOCKS_PATH . 'require-dynamic-blocks.php';
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Registers core block style handles.
[20] Fix | Delete
*
[21] Fix | Delete
* While {@see register_block_style_handle()} is typically used for that, the way it is
[22] Fix | Delete
* implemented is inefficient for core block styles. Registering those style handles here
[23] Fix | Delete
* avoids unnecessary logic and filesystem lookups in the other function.
[24] Fix | Delete
*
[25] Fix | Delete
* @since 6.3.0
[26] Fix | Delete
*/
[27] Fix | Delete
function register_core_block_style_handles() {
[28] Fix | Delete
$wp_version = wp_get_wp_version();
[29] Fix | Delete
[30] Fix | Delete
if ( ! wp_should_load_separate_core_block_assets() ) {
[31] Fix | Delete
return;
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
$blocks_url = includes_url( 'blocks/' );
[35] Fix | Delete
$suffix = wp_scripts_get_suffix();
[36] Fix | Delete
$wp_styles = wp_styles();
[37] Fix | Delete
$style_fields = array(
[38] Fix | Delete
'style' => 'style',
[39] Fix | Delete
'editorStyle' => 'editor',
[40] Fix | Delete
);
[41] Fix | Delete
[42] Fix | Delete
static $core_blocks_meta;
[43] Fix | Delete
if ( ! $core_blocks_meta ) {
[44] Fix | Delete
$core_blocks_meta = require BLOCKS_PATH . 'blocks-json.php';
[45] Fix | Delete
}
[46] Fix | Delete
[47] Fix | Delete
$files = false;
[48] Fix | Delete
$transient_name = 'wp_core_block_css_files';
[49] Fix | Delete
[50] Fix | Delete
/*
[51] Fix | Delete
* Ignore transient cache when the development mode is set to 'core'. Why? To avoid interfering with
[52] Fix | Delete
* the core developer's workflow.
[53] Fix | Delete
*/
[54] Fix | Delete
$can_use_cached = ! wp_is_development_mode( 'core' );
[55] Fix | Delete
[56] Fix | Delete
if ( $can_use_cached ) {
[57] Fix | Delete
$cached_files = get_transient( $transient_name );
[58] Fix | Delete
[59] Fix | Delete
// Check the validity of cached values by checking against the current WordPress version.
[60] Fix | Delete
if (
[61] Fix | Delete
is_array( $cached_files )
[62] Fix | Delete
&& isset( $cached_files['version'] )
[63] Fix | Delete
&& $cached_files['version'] === $wp_version
[64] Fix | Delete
&& isset( $cached_files['files'] )
[65] Fix | Delete
) {
[66] Fix | Delete
$files = $cached_files['files'];
[67] Fix | Delete
}
[68] Fix | Delete
}
[69] Fix | Delete
[70] Fix | Delete
if ( ! $files ) {
[71] Fix | Delete
$files = glob( wp_normalize_path( BLOCKS_PATH . '**/**.css' ) );
[72] Fix | Delete
[73] Fix | Delete
// Normalize BLOCKS_PATH prior to substitution for Windows environments.
[74] Fix | Delete
$normalized_blocks_path = wp_normalize_path( BLOCKS_PATH );
[75] Fix | Delete
[76] Fix | Delete
$files = array_map(
[77] Fix | Delete
static function ( $file ) use ( $normalized_blocks_path ) {
[78] Fix | Delete
return str_replace( $normalized_blocks_path, '', $file );
[79] Fix | Delete
},
[80] Fix | Delete
$files
[81] Fix | Delete
);
[82] Fix | Delete
[83] Fix | Delete
// Save core block style paths in cache when not in development mode.
[84] Fix | Delete
if ( $can_use_cached ) {
[85] Fix | Delete
set_transient(
[86] Fix | Delete
$transient_name,
[87] Fix | Delete
array(
[88] Fix | Delete
'version' => $wp_version,
[89] Fix | Delete
'files' => $files,
[90] Fix | Delete
)
[91] Fix | Delete
);
[92] Fix | Delete
}
[93] Fix | Delete
}
[94] Fix | Delete
[95] Fix | Delete
$register_style = static function ( $name, $filename, $style_handle ) use ( $blocks_url, $suffix, $wp_styles, $files ) {
[96] Fix | Delete
$style_path = "{$name}/{$filename}{$suffix}.css";
[97] Fix | Delete
$path = wp_normalize_path( BLOCKS_PATH . $style_path );
[98] Fix | Delete
[99] Fix | Delete
if ( ! in_array( $style_path, $files, true ) ) {
[100] Fix | Delete
$wp_styles->add(
[101] Fix | Delete
$style_handle,
[102] Fix | Delete
false
[103] Fix | Delete
);
[104] Fix | Delete
return;
[105] Fix | Delete
}
[106] Fix | Delete
[107] Fix | Delete
$wp_styles->add( $style_handle, $blocks_url . $style_path );
[108] Fix | Delete
$wp_styles->add_data( $style_handle, 'path', $path );
[109] Fix | Delete
[110] Fix | Delete
$rtl_file = "{$name}/{$filename}-rtl{$suffix}.css";
[111] Fix | Delete
if ( is_rtl() && in_array( $rtl_file, $files, true ) ) {
[112] Fix | Delete
$wp_styles->add_data( $style_handle, 'rtl', 'replace' );
[113] Fix | Delete
$wp_styles->add_data( $style_handle, 'suffix', $suffix );
[114] Fix | Delete
$wp_styles->add_data( $style_handle, 'path', str_replace( "{$suffix}.css", "-rtl{$suffix}.css", $path ) );
[115] Fix | Delete
}
[116] Fix | Delete
};
[117] Fix | Delete
[118] Fix | Delete
foreach ( $core_blocks_meta as $name => $schema ) {
[119] Fix | Delete
/** This filter is documented in wp-includes/blocks.php */
[120] Fix | Delete
$schema = apply_filters( 'block_type_metadata', $schema );
[121] Fix | Delete
[122] Fix | Delete
// Backfill these properties similar to `register_block_type_from_metadata()`.
[123] Fix | Delete
if ( ! isset( $schema['style'] ) ) {
[124] Fix | Delete
$schema['style'] = "wp-block-{$name}";
[125] Fix | Delete
}
[126] Fix | Delete
if ( ! isset( $schema['editorStyle'] ) ) {
[127] Fix | Delete
$schema['editorStyle'] = "wp-block-{$name}-editor";
[128] Fix | Delete
}
[129] Fix | Delete
[130] Fix | Delete
// Register block theme styles.
[131] Fix | Delete
$register_style( $name, 'theme', "wp-block-{$name}-theme" );
[132] Fix | Delete
[133] Fix | Delete
foreach ( $style_fields as $style_field => $filename ) {
[134] Fix | Delete
$style_handle = $schema[ $style_field ];
[135] Fix | Delete
if ( is_array( $style_handle ) ) {
[136] Fix | Delete
continue;
[137] Fix | Delete
}
[138] Fix | Delete
$register_style( $name, $filename, $style_handle );
[139] Fix | Delete
}
[140] Fix | Delete
}
[141] Fix | Delete
}
[142] Fix | Delete
add_action( 'init', 'register_core_block_style_handles', 9 );
[143] Fix | Delete
[144] Fix | Delete
/**
[145] Fix | Delete
* Registers core block types using metadata files.
[146] Fix | Delete
* Dynamic core blocks are registered separately.
[147] Fix | Delete
*
[148] Fix | Delete
* @since 5.5.0
[149] Fix | Delete
*/
[150] Fix | Delete
function register_core_block_types_from_metadata() {
[151] Fix | Delete
$block_folders = require BLOCKS_PATH . 'require-static-blocks.php';
[152] Fix | Delete
foreach ( $block_folders as $block_folder ) {
[153] Fix | Delete
register_block_type_from_metadata(
[154] Fix | Delete
BLOCKS_PATH . $block_folder
[155] Fix | Delete
);
[156] Fix | Delete
}
[157] Fix | Delete
}
[158] Fix | Delete
add_action( 'init', 'register_core_block_types_from_metadata' );
[159] Fix | Delete
[160] Fix | Delete
/**
[161] Fix | Delete
* Registers the core block metadata collection.
[162] Fix | Delete
*
[163] Fix | Delete
* This function is hooked into the 'init' action with a priority of 9,
[164] Fix | Delete
* ensuring that the core block metadata is registered before the regular
[165] Fix | Delete
* block initialization that happens at priority 10.
[166] Fix | Delete
*
[167] Fix | Delete
* @since 6.7.0
[168] Fix | Delete
*/
[169] Fix | Delete
function wp_register_core_block_metadata_collection() {
[170] Fix | Delete
wp_register_block_metadata_collection(
[171] Fix | Delete
BLOCKS_PATH,
[172] Fix | Delete
BLOCKS_PATH . 'blocks-json.php'
[173] Fix | Delete
);
[174] Fix | Delete
}
[175] Fix | Delete
add_action( 'init', 'wp_register_core_block_metadata_collection', 9 );
[176] Fix | Delete
[177] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function