Make WordPress Core

Ticket #43258: class-wp-output-buffer.php

File class-wp-output-buffer.php, 1.2 KB (added by nextendweb, 4 years ago)

WP_Output_Buffer class

Line 
1<?php
2
3class WP_Output_Buffer {
4
5    /**
6     * These priorities are suggestions for plugin and theme developers
7     * to help modify the output at the right time.
8     */
9    const DEFAULT_PRIORITIES = array(
10        'CONTENT'      => 10,
11        'CACHE_BEFORE' => 90000,
12        'CACHE'        => 100000,
13        'CACHE_AFTER'  => 110000,
14    );
15
16    private static $enabled = false;
17
18    public static function enable() {
19        self::$enabled = true;
20    }
21
22    public function __construct() {
23        static $inited;
24        if (!$inited) {
25            add_action('init', array(
26                $this,
27                'init'
28            ));
29            $inited = true;
30        }
31    }
32
33    public function init() {
34
35        if (self::$enabled) {
36            ob_start(array(
37                $this,
38                "output_callback"
39            ));
40        }
41    }
42
43    public function output_callback($buffer, $phase) {
44
45        if ($phase & PHP_OUTPUT_HANDLER_FINAL || $phase & PHP_OUTPUT_HANDLER_END) {
46            return apply_filters('output_buffer', $buffer);
47        }
48
49        return $buffer;
50    }
51}
52
53new WP_Output_Buffer();