/home/techb158/public_html/wp-includes/blocks
NameSizeModeActions
accordion/-0755rm
accordion-heading/-0755rm
accordion-item/-0755rm
accordion-panel/-0755rm
archives/-0777rm
audio/-0777rm
avatar/-0777rm
block/-0777rm
breadcrumbs/-0755rm
button/-0777rm
buttons/-0777rm
calendar/-0777rm
categories/-0777rm
code/-0777rm
column/-0777rm
columns/-0777rm
comment-author-name/-0777rm
comment-content/-0777rm
comment-date/-0777rm
comment-edit-link/-0777rm
comment-reply-link/-0777rm
comment-template/-0777rm
comments/-0777rm
comments-pagination/-0777rm
comments-pagination-next/-0777rm
comments-pagination-numbers/-0777rm
comments-pagination-previous/-0777rm
comments-title/-0777rm
cover/-0777rm
details/-0755rm
embed/-0777rm
file/-0777rm
footnotes/-0755rm
freeform/-0777rm
gallery/-0777rm
group/-0777rm
heading/-0777rm
home-link/-0777rm
html/-0777rm
icon/-0755rm
image/-0777rm
latest-comments/-0777rm
latest-posts/-0777rm
legacy-widget/-0777rm
list/-0777rm
list-item/-0777rm
loginout/-0777rm
math/-0755rm
media-text/-0777rm
missing/-0777rm
more/-0777rm
navigation/-0777rm
navigation-link/-0777rm
navigation-overlay-close/-0755rm
navigation-submenu/-0777rm
nextpage/-0777rm
page-list/-0777rm
page-list-item/-0755rm
paragraph/-0777rm
pattern/-0777rm
playlist/-0755rm
playlist-track/-0755rm
post-author/-0777rm
post-author-biography/-0777rm
post-author-name/-0755rm
post-comments-count/-0755rm
post-comments-form/-0777rm
post-comments-link/-0755rm
post-content/-0777rm
post-date/-0777rm
post-excerpt/-0777rm
post-featured-image/-0777rm
post-navigation-link/-0777rm
post-template/-0777rm
post-terms/-0777rm
post-time-to-read/-0755rm
post-title/-0777rm
preformatted/-0777rm
pullquote/-0777rm
query/-0777rm
query-no-results/-0777rm
query-pagination/-0777rm
query-pagination-next/-0777rm
query-pagination-numbers/-0777rm
query-pagination-previous/-0777rm
query-title/-0777rm
query-total/-0755rm
quote/-0777rm
read-more/-0777rm
rss/-0777rm
search/-0777rm
separator/-0777rm
shortcode/-0777rm
site-logo/-0777rm
site-tagline/-0777rm
site-title/-0777rm
social-link/-0777rm
social-links/-0777rm
spacer/-0777rm
tab-list/-0755rm
tab-panel/-0755rm
tab-panels/-0755rm
table/-0777rm
tabs/-0755rm
tag-cloud/-0777rm
template-part/-0777rm
term-count/-0755rm
term-description/-0777rm
term-name/-0755rm
term-template/-0755rm
terms-query/-0755rm
text-columns/-0777rm
verse/-0777rm
video/-0777rm
widget-group/-0777rm
accordion-item.php30520666editdlrm
accordion.php11470666editdlrm
archives.php43850666editdlrm
avatar.php56380666editdlrm
block.php31220666editdlrm
blocks-json.php2106610666editdlrm
breadcrumbs.php190570666editdlrm
button.php42110666editdlrm
calendar.php60750666editdlrm
categories.php49380666editdlrm
comment-author-name.php21360666editdlrm
comment-content.php24590666editdlrm
comment-date.php18650666editdlrm
comment-edit-link.php17130666editdlrm
comment-reply-link.php20750666editdlrm
comment-template.php44940666editdlrm
comments-pagination-next.php19240666editdlrm
comments-pagination-numbers.php16320666editdlrm
comments-pagination-previous.php17900666editdlrm
comments-pagination.php12610666editdlrm
comments-title.php27870666editdlrm
comments.php67840666editdlrm
cover.php74040666editdlrm
details.php14980666editdlrm
file.php18790666editdlrm
footnotes.php38180666editdlrm
gallery.php223450666editdlrm
heading.php13010666editdlrm
home-link.php47030666editdlrm
icon.php43740666editdlrm
image.php176420666editdlrm
index.php51040666editdlrm
latest-comments.php56220666editdlrm
latest-posts.php104590666editdlrm
legacy-widget.php40110666editdlrm
list.php12730666editdlrm
loginout.php21230666editdlrm
media-text.php42980666editdlrm
navigation-link.php166540666editdlrm
navigation-overlay-close.php17650666editdlrm
navigation-submenu.php110500666editdlrm
navigation.php708920666editdlrm
page-list-item.php3610666editdlrm
page-list.php138630666editdlrm
paragraph.php11390666editdlrm
pattern.php17880666editdlrm
playlist-track.php24870666editdlrm
playlist.php66160666editdlrm
post-author-biography.php15240666editdlrm
post-author-name.php19620666editdlrm
post-author.php27340666editdlrm
post-comments-count.php12750666editdlrm
post-comments-form.php28050666editdlrm
post-comments-link.php22370666editdlrm
post-content.php26680666editdlrm
post-date.php36920666editdlrm
post-excerpt.php43150666editdlrm
post-featured-image.php94520666editdlrm
post-navigation-link.php48070666editdlrm
post-template.php59400666editdlrm
post-terms.php36400666editdlrm
post-time-to-read.php64110666editdlrm
post-title.php21380666editdlrm
query-no-results.php18470666editdlrm
query-pagination-next.php36760666editdlrm
query-pagination-numbers.php47000666editdlrm
query-pagination-previous.php34730666editdlrm
query-pagination.php11760666editdlrm
query-title.php27710666editdlrm
query-total.php24710666editdlrm
query.php56900666editdlrm
read-more.php18460666editdlrm
require-dynamic-blocks.php52560666editdlrm
require-static-blocks.php5350666editdlrm
rss.php46090666editdlrm
search.php256000666editdlrm
shortcode.php7350666editdlrm
site-logo.php63340666editdlrm
site-tagline.php12030666editdlrm
site-title.php18640666editdlrm
social-link.php676020666editdlrm
tab-list.php23220666editdlrm
tab-panel.php16690666editdlrm
tabs.php39490666editdlrm
tag-cloud.php15860666editdlrm
template-part.php99640666editdlrm
term-count.php18430666editdlrm
term-description.php17700666editdlrm
term-name.php20380666editdlrm
term-template.php45180666editdlrm
video.php27330666editdlrm
widget-group.php24380666editdlrm
Edit: /home/techb158/public_html/wp-includes/blocks/latest-posts.php (10459B)
$attributes['postsToShow'], 'post_status' => 'publish', 'order' => $attributes['order'], 'orderby' => $attributes['orderBy'], 'ignore_sticky_posts' => true, 'no_found_rows' => true, ); $block_core_latest_posts_excerpt_length = $attributes['excerptLength']; add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); if ( ! empty( $attributes['categories'] ) ) { $args['category__in'] = array_column( $attributes['categories'], 'id' ); } if ( isset( $attributes['selectedAuthor'] ) ) { $args['author'] = $attributes['selectedAuthor']; } $query = new WP_Query( $args ); if ( isset( $attributes['displayFeaturedImage'] ) && $attributes['displayFeaturedImage'] ) { update_post_thumbnail_cache( $query ); } $list_items_markup = ''; // Snapshot the current global post so it can be restored after the loop. // We use have_posts()/the_post() rather than foreach so that setup_postdata() // is called for each post, establishing the correct global context for // do_blocks() and other filters that run during full-content rendering. $previous_post = $post ?? null; while ( $query->have_posts() ) { $query->the_post(); $post_link = esc_url( get_permalink() ); $title = get_the_title(); if ( ! $title ) { $title = __( '(no title)' ); } $list_items_markup .= '
  • '; if ( $attributes['displayFeaturedImage'] && has_post_thumbnail() ) { $image_style = ''; if ( isset( $attributes['featuredImageSizeWidth'] ) ) { $image_style .= sprintf( 'max-width:%spx;', $attributes['featuredImageSizeWidth'] ); } if ( isset( $attributes['featuredImageSizeHeight'] ) ) { $image_style .= sprintf( 'max-height:%spx;', $attributes['featuredImageSizeHeight'] ); } $image_classes = 'wp-block-latest-posts__featured-image'; if ( isset( $attributes['featuredImageAlign'] ) ) { $image_classes .= ' align' . $attributes['featuredImageAlign']; } $featured_image = get_the_post_thumbnail( null, $attributes['featuredImageSizeSlug'], array( 'style' => esc_attr( $image_style ), ) ); if ( $attributes['addLinkToFeaturedImage'] ) { $featured_image = sprintf( '%3$s', esc_url( $post_link ), esc_attr( $title ), $featured_image ); } $list_items_markup .= sprintf( '
    %2$s
    ', esc_attr( $image_classes ), $featured_image ); } $list_items_markup .= sprintf( '%2$s', esc_url( $post_link ), $title ); if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $author_display_name = get_the_author_meta( 'display_name' ); /* translators: byline. %s: author. */ $byline = sprintf( __( 'by %s' ), $author_display_name ); if ( ! empty( $author_display_name ) ) { $list_items_markup .= sprintf( '', $byline ); } } if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) { $list_items_markup .= sprintf( '', esc_attr( get_the_date( 'c' ) ), get_the_date( '' ) ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'excerpt' === $attributes['displayPostContentRadio'] ) { $trimmed_excerpt = get_the_excerpt(); /* * Adds a "Read more" link with screen reader text. * […] is the default excerpt ending from wp_trim_excerpt() in Core. */ if ( str_ends_with( $trimmed_excerpt, ' […]' ) ) { /** This filter is documented in wp-includes/formatting.php */ $excerpt_length = (int) apply_filters( 'excerpt_length', $block_core_latest_posts_excerpt_length ); if ( $excerpt_length <= $block_core_latest_posts_excerpt_length ) { $trimmed_excerpt = substr( $trimmed_excerpt, 0, -11 ); $trimmed_excerpt .= sprintf( /* translators: 1: A URL to a post, 2: Hidden accessibility text: Post title */ __( '… Read more: %2$s' ), esc_url( $post_link ), esc_html( $title ) ); } } if ( post_password_required() ) { $trimmed_excerpt = __( 'This content is password protected.' ); } $list_items_markup .= sprintf( '
    %1$s
    ', $trimmed_excerpt ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'full_post' === $attributes['displayPostContentRadio'] ) { if ( post_password_required() ) { $post_content = __( 'This content is password protected.' ); } else { $post_id = get_the_ID(); $post_content = get_post_field( 'post_content', $post_id, 'raw' ); // Check if we're already rendering this post to prevent infinite recursion. if ( in_array( $post_id, $rendering_stack, true ) ) { $post_content = ''; } else { $rendering_stack[] = $post_id; try { // Run through the actions that are typically taken on the_content. $post_content = _wp_apply_block_content_filters( $post_content, 'latest-posts' ); } finally { array_pop( $rendering_stack ); } } } $post_content = str_replace( ']]>', ']]>', $post_content ); $list_items_markup .= sprintf( '
    %1$s
    ', $post_content ); } $list_items_markup .= "
  • \n"; } // Restore the post context that was active before this secondary query. // wp_reset_postdata() is intentionally not used here: when this block is // rendered inside another post's content (e.g. via do_blocks()), it would // restore to the main query post rather than the outer rendering post. $post = $previous_post; if ( $previous_post instanceof WP_Post ) { setup_postdata( $previous_post ); } remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); $layout = $attributes['layout'] ?? array(); $legacy_layout_type = ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) ? 'grid' : 'default'; $layout_type = $layout['type'] ?? $legacy_layout_type; $column_count = $layout['columnCount'] ?? ( $attributes['columns'] ?? null ); $classes = array( 'wp-block-latest-posts__list' ); if ( 'grid' === $layout_type ) { $classes[] = 'is-grid'; } if ( 'grid' === $layout_type && ! empty( $column_count ) ) { $classes[] = sanitize_title( 'columns-' . $column_count ); } if ( 'grid' === $layout_type && ! empty( $column_count ) && ! empty( $layout['minimumColumnWidth'] ) ) { $classes[] = 'has-native-responsive-grid'; } if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) { $classes[] = 'has-dates'; } if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $classes[] = 'has-author'; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '', $wrapper_attributes, $list_items_markup ); } /** * Registers the `core/latest-posts` block on server. * * @since 5.0.0 */ function register_block_core_latest_posts() { register_block_type_from_metadata( __DIR__ . '/latest-posts', array( 'render_callback' => 'render_block_core_latest_posts', ) ); } add_action( 'init', 'register_block_core_latest_posts' ); /** * Handles outdated versions of the `core/latest-posts` block by converting * attribute `categories` from a numeric string to an array with key `id`. * * This is done to accommodate the changes introduced in #20781 that sought to * add support for multiple categories to the block. However, given that this * block is dynamic, the usual provisions for block migration are insufficient, * as they only act when a block is loaded in the editor. * * TODO: Remove when and if the bottom client-side deprecation for this block * is removed. * * @since 5.5.0 * * @param array $block A single parsed block object. * * @return array The migrated block object. */ function block_core_latest_posts_migrate_categories( $block ) { if ( 'core/latest-posts' === $block['blockName'] && ! empty( $block['attrs']['categories'] ) && is_string( $block['attrs']['categories'] ) ) { $block['attrs']['categories'] = array( array( 'id' => absint( $block['attrs']['categories'] ) ), ); } return $block; } add_filter( 'render_block_data', 'block_core_latest_posts_migrate_categories' );