Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 26 additions & 11 deletions inc/Helpers/Formatting/Text.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,17 @@
use function BEA\Theme\Framework\Helpers\Formatting\Escape\escape_content_value;

/**
* @usage BEA\Theme\Framework\Helpers\Formatting\Text\the_text( 'text' => 'Lorem ipsum', [ 'before' => '<p>', 'after' => '</p>' ] );
* @usage BEA\Theme\Framework\Helpers\Formatting\Text\the_text( $text, [ 'before' => '<p>', 'after' => '</p>' ] );
* @usage BEA\Theme\Framework\Helpers\Formatting\Text\the_text( $text, [ 'has_textarea' => true, 'before' => '<div>', 'after' => '</div>' ] );
*
* @param string $value Text to display
* @param array $settings {
* Optional. Settings for the text markup.
*
* @type string $before Optional. Markup to prepend to the text. Default empty.
* @type string $after Optional. Markup to prepend to the text. Default empty.
* @type string $escape Optional. Markup to prepend to the item. Default esc_html.
* @type string $before Optional. Markup to prepend to the text. Default empty.
* @type string $after Optional. Markup to append after the text. Default empty.
* @type string $escape Optional. Escape callback name (e.g. esc_html, wp_kses_post). Default esc_html.
* @type bool $has_textarea Optional. When true, uses wp_kses_post if escape is still the default esc_html, then wpautop(). Default false.
*
* }
*
Expand All @@ -30,9 +32,10 @@ function the_text( string $value, array $settings = [] ): void {
* @param array $settings {
* Optional. Settings for the text markup.
*
* @type string $before Optional. Markup to prepend to the text. Default empty.
* @type string $after Optional. Markup to prepend to the text. Default empty.
* @type string $escape Optional. Markup to prepend to the item. Default esc_html.
* @type string $before Optional. Markup to prepend to the text. Default empty.
* @type string $after Optional. Markup to append after the text. Default empty.
* @type string $escape Optional. Escape callback name (e.g. esc_html, wp_kses_post). Default esc_html.
* @type bool $has_textarea Optional. When true, uses wp_kses_post if escape is still the default esc_html, then wpautop(). Default false.
*
* }
*
Expand All @@ -46,14 +49,26 @@ function get_the_text( string $value, array $settings = [] ): string {
$settings = wp_parse_args(
$settings,
[
'before' => '',
'after' => '',
'escape' => 'esc_html',
'before' => '',
'after' => '',
'escape' => 'esc_html',
'has_textarea' => false,
]
);

$settings = apply_filters( 'bea_theme_framework_text_settings', $settings, $value );
$value = apply_filters( 'bea_theme_framework_text_value', escape_content_value( $value, $settings['escape'] ), $settings );

if ( ! empty( $settings['has_textarea'] ) && 'esc_html' === $settings['escape'] ) {
$settings['escape'] = 'wp_kses_post';
}

$value = escape_content_value( $value, $settings['escape'] );

if ( ! empty( $settings['has_textarea'] ) ) {
$value = wpautop( $value );
}

$value = apply_filters( 'bea_theme_framework_text_value', $value, $settings );

return $settings['before'] . $value . $settings['after'];
}
11 changes: 11 additions & 0 deletions src/scss/06-blocks/core/_paragraph.scss
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,14 @@ p {
}
}
}

// For paragraphs generated by wpautop function (eg. excerpts), paragraphs are wrapped in a div with the class "is-style-large" for example. We need to apply the text style to the p elements inside the div.
div {
@each $style in $paragraphs {
&.is-style-#{$style} {
& > p:where(:not([class*="is-style-"])) {
@include text(#{$style});
}
}
}
}
Loading