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,
Copy link
Copy Markdown
Contributor

@firestar300 firestar300 Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne trouve pas le nom en accord avec ça. Peut-être un truc du genre allow_autop ? Ou alors se baser sur la valeur de l'escape étant donné que je n'ai pas l'impression qu'on puisse mixer les deux :

'before'       => '',
'after'        => '',
'escape'       => 'wp_autop',

Copy link
Copy Markdown
Contributor Author

@cedric07 cedric07 Apr 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oui complètement d'accord avec du recul, c'était clairement un sujet à débattre le nom du paramètre

Si on peut bien mixer les deux, c'est expliqué dans le descriptif de la PR. Ca change pas du fonctionnement actuel.

L'escape lui c'est l'escape de base avec ses différentes valeurs possibles (wp_kses_post, esc_html etc...)

Il n'y a pas d'escape wp_autop c'est une fonction wpautop() qui a l'escape par défaut wp_kses_post pour autoriser le HTML (les <p>et <br>générés par cette fonction)

]
);

$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 {
}
}
Comment thread
cedric07 marked this conversation as resolved.
}

// 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