Frontend.php
2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
/**
* Frontend general setup.
*
* @copyright (c) 2023, Code Atlantic LLC.
* @package ContentControl
*/
namespace ContentControl\Controllers;
use ContentControl\Base\Controller;
use ContentControl\Controllers\Frontend\Blocks;
use ContentControl\Controllers\Frontend\Restrictions;
use ContentControl\Controllers\Frontend\Widgets;
defined( 'ABSPATH' ) || exit;
/**
* Class Frontend
*/
class Frontend extends Controller {
/**
* Initialize Hooks & Filters
*/
public function init() {
$this->container->register_controllers([
'Frontend\Blocks' => new Blocks( $this->container ),
'Frontend\Restrictions' => new Restrictions( $this->container ),
'Frontend\Widgets' => new Widgets( $this->container ),
]);
$this->hooks();
}
/**
* Register general frontend hooks.
*
* @return void
*/
public function hooks() {
$this->replicate_core_content_filters();
add_filter( 'content_control/restricted_post_content', '\ContentControl\append_post_excerpts', 9, 2 );
add_filter( 'content_control/restricted_post_excerpt', '\ContentControl\append_post_excerpts', 9, 2 );
}
/**
* Replicate core content filters.
*
* @return void
*/
private function replicate_core_content_filters() {
/**
* Instance of WP_Embed class.
*
* @var \WP_Embed $wp_embed
*/
global $wp_embed;
$the_content = 'content_control/restricted_post_content';
$the_excerpt = 'content_control/restricted_post_excerpt';
// These all follow WP core's `the_content` filter.
add_filter( $the_content, 'do_blocks', 9 );
add_filter( $the_content, 'wptexturize' );
add_filter( $the_content, 'convert_smilies', 20 );
add_filter( $the_content, 'wpautop' );
add_filter( $the_content, 'shortcode_unautop' );
add_filter( $the_content, 'prepend_attachment' );
add_filter( $the_content, 'wp_replace_insecure_home_url' );
add_filter( $the_content, 'do_shortcode', 11 ); // AFTER wpautop().
add_filter( $the_content, 'wp_filter_content_tags', 12 ); // Runs after do_shortcode().
add_filter( $the_content, 'capital_P_dangit', 11 );
add_filter( $the_content, [ $wp_embed, 'run_shortcode' ], 8 );
add_filter( $the_content, [ $wp_embed, 'autoembed' ], 8 );
// These all follow WP core's `the_excerpt` filter.
add_filter( $the_excerpt, 'wptexturize' );
add_filter( $the_excerpt, 'convert_smilies' );
add_filter( $the_excerpt, 'convert_chars' );
add_filter( $the_excerpt, 'wpautop' );
add_filter( $the_excerpt, 'shortcode_unautop' );
add_filter( $the_excerpt, 'wp_replace_insecure_home_url' );
add_filter( $the_excerpt, 'wp_filter_content_tags', 12 );
add_filter( $the_excerpt, 'capital_P_dangit', 11 );
}
}