wppaste
WordPress

apply_filters( 'wp_template_enhancement_output_buffer', string $filtered_output, string $output )

Since
6.9.0
Filters the template enhancement output buffer prior to sending to the client.

Description

This filter only applies the HTML output of an included template. This filter is a progressive enhancement intended for applications such as optimizing markup to improve frontend page load performance. Sites must not depend on this filter applying since they may opt to stream the responses instead. Callbacks for this filter are highly discouraged from using regular expressions to do any kind of replacement on the output. Use the HTML API (either WP_HTML_Tag_Processor or WP_HTML_Processor), or else use DOM\HtmlDocument as of PHP 8.4 which fully supports HTML5.

Do not print any output during this filter. While filters normally don't print anything, this is especially important since this applies during an output buffer callback. Prior to PHP 8.5, the output will be silently omitted, whereas afterward a deprecation notice will be emitted.

Important: Because this filter is applied inside an output buffer callback (i.e. display handler), any callbacks added to the filter must not attempt to start their own output buffers. Otherwise, PHP will raise a fatal error: "Cannot use output buffering in output buffering display handlers."

Compatibility

WordPress
since 6.9.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in 3 of the 5 tracked releases, added in 6.9.0.

Parameters

$filtered_outputstring
HTML template enhancement output buffer.
$outputstring
Original HTML template output buffer.

Where this hook fires · 1

  • wp-includes/template.php:1019wp_finalize_template_enhancement_output_buffer()

Source code

		 *		 * @since 6.9.0		 *		 * @param string $filtered_output HTML template enhancement output buffer.		 * @param string $output          Original HTML template output buffer.		 */		$filtered_output = (string) apply_filters( 'wp_template_enhancement_output_buffer', $filtered_output, $output );	} catch ( Throwable $throwable ) {		// Emit to the error log as a warning not as an error to prevent halting execution.		$did_just_catch = true;		trigger_error(			sprintf(				/* translators: %s is the throwable class name */

Changelog

Introduced in 6.9.0. Unchanged from 6.9.7 through 7.1.0.

  1. 6.9.7
  2. 7.0.4
  3. 7.1.0

Signature, return type and hooks compared across 3 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.