Current Dir: /home/webdevt/www/demo2/wp-includes/blocks/
[DIR] accordion [ delete | rename ]
[DIR] accordion-heading [ delete | rename ]
[DIR] accordion-item [ delete | rename ]
[DIR] accordion-panel [ delete | rename ]
[DIR] archives [ delete | rename ]
[DIR] audio [ delete | rename ]
[DIR] avatar [ delete | rename ]
[DIR] block [ delete | rename ]
[DIR] breadcrumbs [ 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] icon [ 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] math [ 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-overlay-close [ 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-count [ delete | rename ]
[DIR] post-comments-form [ delete | rename ]
[DIR] post-comments-link [ 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-time-to-read [ 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-count [ delete | rename ]
[DIR] term-description [ delete | rename ]
[DIR] term-name [ delete | rename ]
[DIR] term-template [ delete | rename ]
[DIR] terms-query [ delete | rename ]
[DIR] text-columns [ delete | rename ]
[DIR] verse [ delete | rename ]
[DIR] video [ delete | rename ]
[DIR] widget-group [ delete | rename ]
[FILE] accordion-item.php [ edit | delete | rename ]
[FILE] accordion.php [ edit | delete | rename ]
[FILE] avatar.php [ edit | delete | rename ]
[FILE] block.php [ edit | delete | rename ]
[FILE] blocks-json.php [ edit | delete | rename ]
[FILE] calendar.php [ edit | delete | rename ]
[FILE] comment-author-name.php [ edit | delete | rename ]
[FILE] comment-content.php [ edit | delete | rename ]
[FILE] comment-edit-link.php [ edit | delete | rename ]
[FILE] comment-reply-link.php [ edit | delete | rename ]
[FILE] comments-pagination-next.php [ edit | delete | rename ]
[FILE] comments-pagination-numbers.php [ edit | delete | rename ]
[FILE] comments-pagination-previous.php [ edit | delete | rename ]
[FILE] comments.php [ edit | delete | rename ]
[FILE] cover.php [ edit | delete | rename ]
[FILE] details.php [ edit | delete | rename ]
[FILE] file.php [ edit | delete | rename ]
[FILE] gallery.php [ edit | delete | rename ]
[FILE] heading.php [ edit | delete | rename ]
[FILE] home-link.php [ edit | delete | rename ]
[FILE] icon.php [ edit | delete | rename ]
[FILE] index.php [ edit | delete | rename ]
[FILE] latest-comments.php [ edit | delete | rename ]
[FILE] legacy-widget.php [ edit | delete | rename ]
[FILE] list.php [ edit | delete | rename ]
[FILE] loginout.php [ edit | delete | rename ]
[FILE] media-text.php [ edit | delete | rename ]
[FILE] navigation-submenu.php [ edit | delete | rename ]
[FILE] page-list-item.php [ edit | delete | rename ]
[FILE] page-list.php [ edit | delete | rename ]
[FILE] paragraph.php [ edit | delete | rename ]
[FILE] pattern.php [ edit | delete | rename ]
[FILE] post-author-biography.php [ edit | delete | rename ]
[FILE] post-author-name.php [ edit | delete | rename ]
[FILE] post-author.php [ edit | delete | rename ]
[FILE] post-comments-form.php [ edit | delete | rename ]
[FILE] post-comments-link.php [ edit | delete | rename ]
[FILE] post-content.php [ edit | delete | rename ]
[FILE] post-date.php [ edit | delete | rename ]
[FILE] post-excerpt.php [ edit | delete | rename ]
[FILE] post-featured-image.php [ edit | delete | rename ]
[FILE] post-template.php [ edit | delete | rename ]
[FILE] post-terms.php [ edit | delete | rename ]
[FILE] post-time-to-read.php [ edit | delete | rename ]
[FILE] query-no-results.php [ edit | delete | rename ]
[FILE] query-pagination-next.php [ edit | delete | rename ]
[FILE] query-pagination-numbers.php [ edit | delete | rename ]
[FILE] query-pagination-previous.php [ edit | delete | rename ]
[FILE] query-pagination.php [ edit | delete | rename ]
[FILE] query-title.php [ edit | delete | rename ]
[FILE] query-total.php [ edit | delete | rename ]
[FILE] read-more.php [ edit | delete | rename ]
[FILE] require-dynamic-blocks.php [ edit | delete | rename ]
[FILE] rss.php [ edit | delete | rename ]
[FILE] search.php [ edit | delete | rename ]
[FILE] shortcode.php [ edit | delete | rename ]
[FILE] site-logo.php [ edit | delete | rename ]
[FILE] site-tagline.php [ edit | delete | rename ]
[FILE] site-title.php [ edit | delete | rename ]
[FILE] social-link.php [ edit | delete | rename ]
[FILE] tag-cloud.php [ edit | delete | rename ]
[FILE] term-description.php [ edit | delete | rename ]
[FILE] term-template.php [ edit | delete | rename ]
[FILE] video.php [ edit | delete | rename ]
[FILE] widget-group.php [ edit | delete | rename ]
Viewing: /home/webdevt/www/demo2/wp-includes/blocks/post-excerpt.php
<?php
/**
* Server-side rendering of the `core/post-excerpt` block.
*
* @package WordPress
*/
/**
* Renders the `core/post-excerpt` block on the server.
*
* @since 5.8.0
*
* @param array $attributes Block attributes.
* @param string $content Block default content.
* @param WP_Block $block Block instance.
* @return string Returns the filtered post excerpt for the current post wrapped inside "p" tags.
*/
function render_block_core_post_excerpt( $attributes, $content, $block ) {
if ( ! isset( $block->context['postId'] ) ) {
return '';
}
$more_text = ! empty( $attributes['moreText'] ) ? '<a class="wp-block-post-excerpt__more-link" href="' . esc_url( get_the_permalink( $block->context['postId'] ) ) . '">' . wp_kses_post( $attributes['moreText'] ) . '</a>' : '';
$filter_excerpt_more = static function ( $more ) use ( $more_text ) {
return empty( $more_text ) ? $more : '';
};
/**
* Some themes might use `excerpt_more` filter to handle the
* `more` link displayed after a trimmed excerpt. Since the
* block has a `more text` attribute we have to check and
* override if needed the return value from this filter.
* So if the block's attribute is not empty override the
* `excerpt_more` filter and return nothing. This will
* result in showing only one `read more` link at a time.
*
* This hook needs to be applied before the excerpt is retrieved with get_the_excerpt.
* Otherwise, the read more link filter from the theme is not removed.
*/
add_filter( 'excerpt_more', $filter_excerpt_more );
/*
* The purpose of the excerpt length setting is to limit the length of both
* automatically generated and user-created excerpts.
* Because the excerpt_length filter only applies to auto generated excerpts,
* wp_trim_words is used instead.
*
* To ensure the block's excerptLength setting works correctly for auto-generated
* excerpts, we temporarily override excerpt_length to 101 (the max block setting)
* so that wp_trim_excerpt doesn't pre-trim the content before wp_trim_words can
* apply the user's desired length.
*/
$excerpt_length = $attributes['excerptLength'];
add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );
$excerpt = get_the_excerpt( $block->context['postId'] );
remove_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );
if ( isset( $excerpt_length ) ) {
$excerpt = wp_trim_words( $excerpt, $excerpt_length );
}
$classes = array();
if ( isset( $attributes['textAlign'] ) ) {
$classes[] = 'has-text-align-' . $attributes['textAlign'];
}
if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
$classes[] = 'has-link-color';
}
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
$content = '<p class="wp-block-post-excerpt__excerpt">' . $excerpt;
$show_more_on_new_line = ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine'];
if ( $show_more_on_new_line && ! empty( $more_text ) ) {
$content .= '</p><p class="wp-block-post-excerpt__more-text">' . $more_text . '</p>';
} else {
$content .= " $more_text</p>";
}
remove_filter( 'excerpt_more', $filter_excerpt_more );
return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content );
}
/**
* Registers the `core/post-excerpt` block on the server.
*
* @since 5.8.0
*/
function register_block_core_post_excerpt() {
register_block_type_from_metadata(
__DIR__ . '/post-excerpt',
array(
'render_callback' => 'render_block_core_post_excerpt',
)
);
}
add_action( 'init', 'register_block_core_post_excerpt' );
/**
* Callback for the excerpt_length filter to override the excerpt length.
*
* If themes or plugins filter the excerpt_length, we need to
* override the filter in the editor, otherwise
* the excerpt length block setting has no effect.
* Returns 101 (one more than the max block setting of 100) to ensure
* wp_trim_words can detect when trimming is needed and add the ellipsis.
*
* @since 7.0.0
*
* @return int The excerpt length.
*/
function block_core_post_excerpt_excerpt_length() {
return 101;
}
if ( is_admin() ) {
add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX );
}