Completed
Push — master ( debbec...64559e )
by David
03:34
created
src/admin/WL_Metabox/class-wl-metabox-field-sameas.php 2 patches
Indentation   +131 added lines, -131 removed lines patch added patch discarded remove patch
@@ -16,134 +16,134 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class WL_Metabox_Field_sameas extends WL_Metabox_Field {
18 18
 
19
-	/**
20
-	 * @inheritdoc
21
-	 */
22
-	public function __construct( $args ) {
23
-		parent::__construct( $args['sameas'] );
24
-	}
25
-
26
-	/**
27
-	 * @inheritdoc
28
-	 */
29
-	public function save_data( $values ) {
30
-		// The autocomplete select may send JSON arrays in input values.
31
-
32
-		// Only use mb_* functions when mbstring is available.
33
-		//
34
-		// See https://github.com/insideout10/wordlift-plugin/issues/693.
35
-		if ( extension_loaded( 'mbstring' ) ) {
36
-			mb_regex_encoding( 'UTF-8' );
37
-
38
-			$merged = array_reduce( (array) $values, function ( $carry, $item ) {
39
-				return array_merge( $carry, mb_split( "\x{2063}", wp_unslash( $item ) ) );
40
-			}, array() );
41
-		} else {
42
-			$merged = array_reduce( (array) $values, function ( $carry, $item ) {
43
-				return array_merge( $carry, preg_split( "/\x{2063}/u", wp_unslash( $item ) ) );
44
-			}, array() );
45
-		}
46
-
47
-		// Convert all escaped special characters to their original.
48
-		$merged = array_map( 'urldecode', $merged );
49
-
50
-		parent::save_data( $merged );
51
-	}
52
-
53
-	/**
54
-	 * @inheritdoc
55
-	 */
56
-	public function sanitize_data_filter( $value ) {
57
-
58
-		// Call our sanitizer helper.
59
-		return Wordlift_Sanitizer::sanitize_url( $value );
60
-	}
61
-
62
-	/**
63
-	 * @inheritdoc
64
-	 */
65
-	protected function get_heading_html() {
66
-
67
-		// Add the select html fragment after the heading.
68
-		return parent::get_heading_html()
69
-			   . $this->get_select_html();
70
-	}
71
-
72
-	/**
73
-	 * Get the select html fragment.
74
-	 *
75
-	 * @since 3.15.0
76
-	 * @return string The html fragment.
77
-	 */
78
-	private function get_select_html() {
79
-		// Return an element where the new Autocomplete Select will attach to.
80
-		return '<p>'
81
-			   . esc_html__( 'Use the search below to link this entity with equivalent entities in the linked data cloud.', 'wordlift' )
82
-			   . '<div id="wl-metabox-field-sameas"></div></p>';
83
-	}
84
-
85
-	/**
86
-	 * @inheritdoc
87
-	 */
88
-	protected function get_add_button_html( $count ) {
89
-
90
-		$placeholder = esc_attr_x( 'Type here the URL of an equivalent entity from another dataset.', 'sameAs metabox input', 'wordlift' );
91
-
92
-		return
93
-			"<label for='$this->meta_name'>"
94
-			. esc_html__( 'If you already know the URL of the entity that you would like to link, add it in the field below.', 'wordlift' )
95
-			. '</label>'
96
-			. '<div class="wl-input-wrapper">'
97
-			. "<input type='text' id='$this->meta_name' name='wl_metaboxes[$this->meta_name][]' placeholder='$placeholder' style='width:88%' />"
98
-			. '<button class="button wl-remove-input wl-button" type="button">Remove</button>'
99
-			. '</div>'
100
-			. parent::get_add_button_html( $count );
101
-	}
102
-
103
-	/**
104
-	 * @inheritdoc
105
-	 */
106
-	protected function get_stored_values_html( &$count ) {
107
-
108
-		return '<p>'
109
-			   . parent::get_stored_values_html( $count )
110
-			   . '</p>';
111
-	}
112
-
113
-	/**
114
-	 * @inheritdoc
115
-	 */
116
-	public function html() {
117
-
118
-		// Open main <div> for the Field.
119
-		$html = $this->html_wrapper_open();
120
-
121
-		// Label.
122
-		$html .= $this->get_heading_html();
123
-
124
-		// print nonce.
125
-		$html .= $this->html_nonce();
126
-
127
-		// print data loaded from DB.
128
-		$count = 0;
129
-
130
-		// If cardinality allows it, print button to add new values.
131
-		$html .= $this->get_add_button_html( $count );
132
-
133
-		$html .= $this->get_stored_values_html( $count );
134
-
135
-		// Close the HTML wrapper.
136
-		$html .= $this->html_wrapper_close();
137
-
138
-		return $html;
139
-	}
140
-
141
-	/**
142
-	 * @inheritdoc
143
-	 */
144
-	public function html_input( $value ) {
145
-		@ob_start();
146
-		?>
19
+    /**
20
+     * @inheritdoc
21
+     */
22
+    public function __construct( $args ) {
23
+        parent::__construct( $args['sameas'] );
24
+    }
25
+
26
+    /**
27
+     * @inheritdoc
28
+     */
29
+    public function save_data( $values ) {
30
+        // The autocomplete select may send JSON arrays in input values.
31
+
32
+        // Only use mb_* functions when mbstring is available.
33
+        //
34
+        // See https://github.com/insideout10/wordlift-plugin/issues/693.
35
+        if ( extension_loaded( 'mbstring' ) ) {
36
+            mb_regex_encoding( 'UTF-8' );
37
+
38
+            $merged = array_reduce( (array) $values, function ( $carry, $item ) {
39
+                return array_merge( $carry, mb_split( "\x{2063}", wp_unslash( $item ) ) );
40
+            }, array() );
41
+        } else {
42
+            $merged = array_reduce( (array) $values, function ( $carry, $item ) {
43
+                return array_merge( $carry, preg_split( "/\x{2063}/u", wp_unslash( $item ) ) );
44
+            }, array() );
45
+        }
46
+
47
+        // Convert all escaped special characters to their original.
48
+        $merged = array_map( 'urldecode', $merged );
49
+
50
+        parent::save_data( $merged );
51
+    }
52
+
53
+    /**
54
+     * @inheritdoc
55
+     */
56
+    public function sanitize_data_filter( $value ) {
57
+
58
+        // Call our sanitizer helper.
59
+        return Wordlift_Sanitizer::sanitize_url( $value );
60
+    }
61
+
62
+    /**
63
+     * @inheritdoc
64
+     */
65
+    protected function get_heading_html() {
66
+
67
+        // Add the select html fragment after the heading.
68
+        return parent::get_heading_html()
69
+                . $this->get_select_html();
70
+    }
71
+
72
+    /**
73
+     * Get the select html fragment.
74
+     *
75
+     * @since 3.15.0
76
+     * @return string The html fragment.
77
+     */
78
+    private function get_select_html() {
79
+        // Return an element where the new Autocomplete Select will attach to.
80
+        return '<p>'
81
+                . esc_html__( 'Use the search below to link this entity with equivalent entities in the linked data cloud.', 'wordlift' )
82
+                . '<div id="wl-metabox-field-sameas"></div></p>';
83
+    }
84
+
85
+    /**
86
+     * @inheritdoc
87
+     */
88
+    protected function get_add_button_html( $count ) {
89
+
90
+        $placeholder = esc_attr_x( 'Type here the URL of an equivalent entity from another dataset.', 'sameAs metabox input', 'wordlift' );
91
+
92
+        return
93
+            "<label for='$this->meta_name'>"
94
+            . esc_html__( 'If you already know the URL of the entity that you would like to link, add it in the field below.', 'wordlift' )
95
+            . '</label>'
96
+            . '<div class="wl-input-wrapper">'
97
+            . "<input type='text' id='$this->meta_name' name='wl_metaboxes[$this->meta_name][]' placeholder='$placeholder' style='width:88%' />"
98
+            . '<button class="button wl-remove-input wl-button" type="button">Remove</button>'
99
+            . '</div>'
100
+            . parent::get_add_button_html( $count );
101
+    }
102
+
103
+    /**
104
+     * @inheritdoc
105
+     */
106
+    protected function get_stored_values_html( &$count ) {
107
+
108
+        return '<p>'
109
+                . parent::get_stored_values_html( $count )
110
+                . '</p>';
111
+    }
112
+
113
+    /**
114
+     * @inheritdoc
115
+     */
116
+    public function html() {
117
+
118
+        // Open main <div> for the Field.
119
+        $html = $this->html_wrapper_open();
120
+
121
+        // Label.
122
+        $html .= $this->get_heading_html();
123
+
124
+        // print nonce.
125
+        $html .= $this->html_nonce();
126
+
127
+        // print data loaded from DB.
128
+        $count = 0;
129
+
130
+        // If cardinality allows it, print button to add new values.
131
+        $html .= $this->get_add_button_html( $count );
132
+
133
+        $html .= $this->get_stored_values_html( $count );
134
+
135
+        // Close the HTML wrapper.
136
+        $html .= $this->html_wrapper_close();
137
+
138
+        return $html;
139
+    }
140
+
141
+    /**
142
+     * @inheritdoc
143
+     */
144
+    public function html_input( $value ) {
145
+        @ob_start();
146
+        ?>
147 147
 			<div class="wl-input-wrapper wl-input-wrapper-readonly">
148 148
 				<input
149 149
 					type="text"
@@ -160,9 +160,9 @@  discard block
 block discarded – undo
160 160
 			</div>
161 161
 		<?php
162 162
 
163
-		$html = ob_get_clean();
163
+        $html = ob_get_clean();
164 164
 
165
-		return $html;
166
-	}
165
+        return $html;
166
+    }
167 167
 
168 168
 }
Please login to merge, or discard this patch.
Spacing   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -19,44 +19,44 @@  discard block
 block discarded – undo
19 19
 	/**
20 20
 	 * @inheritdoc
21 21
 	 */
22
-	public function __construct( $args ) {
23
-		parent::__construct( $args['sameas'] );
22
+	public function __construct($args) {
23
+		parent::__construct($args['sameas']);
24 24
 	}
25 25
 
26 26
 	/**
27 27
 	 * @inheritdoc
28 28
 	 */
29
-	public function save_data( $values ) {
29
+	public function save_data($values) {
30 30
 		// The autocomplete select may send JSON arrays in input values.
31 31
 
32 32
 		// Only use mb_* functions when mbstring is available.
33 33
 		//
34 34
 		// See https://github.com/insideout10/wordlift-plugin/issues/693.
35
-		if ( extension_loaded( 'mbstring' ) ) {
36
-			mb_regex_encoding( 'UTF-8' );
35
+		if (extension_loaded('mbstring')) {
36
+			mb_regex_encoding('UTF-8');
37 37
 
38
-			$merged = array_reduce( (array) $values, function ( $carry, $item ) {
39
-				return array_merge( $carry, mb_split( "\x{2063}", wp_unslash( $item ) ) );
40
-			}, array() );
38
+			$merged = array_reduce((array) $values, function($carry, $item) {
39
+				return array_merge($carry, mb_split("\x{2063}", wp_unslash($item)));
40
+			}, array());
41 41
 		} else {
42
-			$merged = array_reduce( (array) $values, function ( $carry, $item ) {
43
-				return array_merge( $carry, preg_split( "/\x{2063}/u", wp_unslash( $item ) ) );
44
-			}, array() );
42
+			$merged = array_reduce((array) $values, function($carry, $item) {
43
+				return array_merge($carry, preg_split("/\x{2063}/u", wp_unslash($item)));
44
+			}, array());
45 45
 		}
46 46
 
47 47
 		// Convert all escaped special characters to their original.
48
-		$merged = array_map( 'urldecode', $merged );
48
+		$merged = array_map('urldecode', $merged);
49 49
 
50
-		parent::save_data( $merged );
50
+		parent::save_data($merged);
51 51
 	}
52 52
 
53 53
 	/**
54 54
 	 * @inheritdoc
55 55
 	 */
56
-	public function sanitize_data_filter( $value ) {
56
+	public function sanitize_data_filter($value) {
57 57
 
58 58
 		// Call our sanitizer helper.
59
-		return Wordlift_Sanitizer::sanitize_url( $value );
59
+		return Wordlift_Sanitizer::sanitize_url($value);
60 60
 	}
61 61
 
62 62
 	/**
@@ -78,35 +78,35 @@  discard block
 block discarded – undo
78 78
 	private function get_select_html() {
79 79
 		// Return an element where the new Autocomplete Select will attach to.
80 80
 		return '<p>'
81
-			   . esc_html__( 'Use the search below to link this entity with equivalent entities in the linked data cloud.', 'wordlift' )
81
+			   . esc_html__('Use the search below to link this entity with equivalent entities in the linked data cloud.', 'wordlift')
82 82
 			   . '<div id="wl-metabox-field-sameas"></div></p>';
83 83
 	}
84 84
 
85 85
 	/**
86 86
 	 * @inheritdoc
87 87
 	 */
88
-	protected function get_add_button_html( $count ) {
88
+	protected function get_add_button_html($count) {
89 89
 
90
-		$placeholder = esc_attr_x( 'Type here the URL of an equivalent entity from another dataset.', 'sameAs metabox input', 'wordlift' );
90
+		$placeholder = esc_attr_x('Type here the URL of an equivalent entity from another dataset.', 'sameAs metabox input', 'wordlift');
91 91
 
92 92
 		return
93 93
 			"<label for='$this->meta_name'>"
94
-			. esc_html__( 'If you already know the URL of the entity that you would like to link, add it in the field below.', 'wordlift' )
94
+			. esc_html__('If you already know the URL of the entity that you would like to link, add it in the field below.', 'wordlift')
95 95
 			. '</label>'
96 96
 			. '<div class="wl-input-wrapper">'
97 97
 			. "<input type='text' id='$this->meta_name' name='wl_metaboxes[$this->meta_name][]' placeholder='$placeholder' style='width:88%' />"
98 98
 			. '<button class="button wl-remove-input wl-button" type="button">Remove</button>'
99 99
 			. '</div>'
100
-			. parent::get_add_button_html( $count );
100
+			. parent::get_add_button_html($count);
101 101
 	}
102 102
 
103 103
 	/**
104 104
 	 * @inheritdoc
105 105
 	 */
106
-	protected function get_stored_values_html( &$count ) {
106
+	protected function get_stored_values_html(&$count) {
107 107
 
108 108
 		return '<p>'
109
-			   . parent::get_stored_values_html( $count )
109
+			   . parent::get_stored_values_html($count)
110 110
 			   . '</p>';
111 111
 	}
112 112
 
@@ -128,9 +128,9 @@  discard block
 block discarded – undo
128 128
 		$count = 0;
129 129
 
130 130
 		// If cardinality allows it, print button to add new values.
131
-		$html .= $this->get_add_button_html( $count );
131
+		$html .= $this->get_add_button_html($count);
132 132
 
133
-		$html .= $this->get_stored_values_html( $count );
133
+		$html .= $this->get_stored_values_html($count);
134 134
 
135 135
 		// Close the HTML wrapper.
136 136
 		$html .= $this->html_wrapper_close();
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
 	/**
142 142
 	 * @inheritdoc
143 143
 	 */
144
-	public function html_input( $value ) {
144
+	public function html_input($value) {
145 145
 		@ob_start();
146 146
 		?>
147 147
 			<div class="wl-input-wrapper wl-input-wrapper-readonly">
@@ -155,7 +155,7 @@  discard block
 block discarded – undo
155 155
 				/>
156 156
 
157 157
 				<button class="button wl-remove-input wl-button" type="button">
158
-					<?php esc_html_e( 'Remove', 'wordlift' ); ?>
158
+					<?php esc_html_e('Remove', 'wordlift'); ?>
159 159
 				</button>
160 160
 			</div>
161 161
 		<?php
Please login to merge, or discard this patch.
src/admin/partials/wordlift-admin-setup.php 2 patches
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -16,38 +16,38 @@  discard block
 block discarded – undo
16 16
 
17 17
 	<?php
18 18
 
19
-	// Enqueue wp.media functions.
20
-	wp_enqueue_media();
21
-
22
-	// Enqueue styles and scripts.
23
-	wp_enqueue_style( 'wl-font-awesome', plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'css/font-awesome.min.css' );
24
-	wp_enqueue_style( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'css/wordlift-admin-setup.css', array(
25
-		'wp-admin',
26
-		'wl-font-awesome',
27
-	) );
28
-	wp_enqueue_script( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'js/wordlift-admin-setup.js', array( 'jquery' ) );
29
-
30
-	//Get wp_permalink structure
31
-	$permalink_structure = get_option( 'permalink_structure' );
32
-
33
-	// Set configuration settings.
34
-	wp_localize_script( 'wordlift-admin-setup', '_wlAdminSetup', array(
35
-		'ajaxUrl'   => parse_url( self_admin_url( 'admin-ajax.php' ), PHP_URL_PATH ),
36
-		'action'    => 'wl_validate_key',
37
-		'permalink' => $permalink_structure,
38
-		'media'     => array(
39
-			'title'  => __( 'WordLift Choose Logo', 'wordlift' ),
40
-			'button' => array( 'text' => __( 'Choose Logo', 'wordlift' ) ),
41
-		),
42
-	) );
43
-
44
-	// Finally print styles and scripts.
45
-	wp_print_styles();
46
-	wp_print_scripts();
47
-	//	do_action( 'admin_print_styles' );
48
-	//	do_action( 'admin_print_scripts' );
49
-
50
-	?>
19
+    // Enqueue wp.media functions.
20
+    wp_enqueue_media();
21
+
22
+    // Enqueue styles and scripts.
23
+    wp_enqueue_style( 'wl-font-awesome', plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'css/font-awesome.min.css' );
24
+    wp_enqueue_style( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'css/wordlift-admin-setup.css', array(
25
+        'wp-admin',
26
+        'wl-font-awesome',
27
+    ) );
28
+    wp_enqueue_script( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'js/wordlift-admin-setup.js', array( 'jquery' ) );
29
+
30
+    //Get wp_permalink structure
31
+    $permalink_structure = get_option( 'permalink_structure' );
32
+
33
+    // Set configuration settings.
34
+    wp_localize_script( 'wordlift-admin-setup', '_wlAdminSetup', array(
35
+        'ajaxUrl'   => parse_url( self_admin_url( 'admin-ajax.php' ), PHP_URL_PATH ),
36
+        'action'    => 'wl_validate_key',
37
+        'permalink' => $permalink_structure,
38
+        'media'     => array(
39
+            'title'  => __( 'WordLift Choose Logo', 'wordlift' ),
40
+            'button' => array( 'text' => __( 'Choose Logo', 'wordlift' ) ),
41
+        ),
42
+    ) );
43
+
44
+    // Finally print styles and scripts.
45
+    wp_print_styles();
46
+    wp_print_scripts();
47
+    //	do_action( 'admin_print_styles' );
48
+    //	do_action( 'admin_print_scripts' );
49
+
50
+    ?>
51 51
 
52 52
 	<!-- Pane 1 content -->
53 53
 	<script type="text/html" id="page-0">
@@ -102,22 +102,22 @@  discard block
 block discarded – undo
102 102
 		<p class="page-txt">
103 103
 
104 104
 			<?php
105
-			$grab_a_key_link = sprintf(
106
-				'<a target="_blank" href="%s">%s</a>',
107
-				esc_attr__( 'https://wordlift.io/pricing', 'wordlift' ),
108
-				esc_html__( 'grab a key', 'wordlift' )
109
-			);
110
-
111
-			echo sprintf(
112
-				esc_html__(
113
-					'If you already purchased a plan, check your email, get the'
114
-					. ' activation key from your inbox and insert it in the'
115
-					. ' field below. Otherwise %s!',
116
-					'wordlift'
117
-				),
118
-				$grab_a_key_link
119
-			);
120
-			?>
105
+            $grab_a_key_link = sprintf(
106
+                '<a target="_blank" href="%s">%s</a>',
107
+                esc_attr__( 'https://wordlift.io/pricing', 'wordlift' ),
108
+                esc_html__( 'grab a key', 'wordlift' )
109
+            );
110
+
111
+            echo sprintf(
112
+                esc_html__(
113
+                    'If you already purchased a plan, check your email, get the'
114
+                    . ' activation key from your inbox and insert it in the'
115
+                    . ' field below. Otherwise %s!',
116
+                    'wordlift'
117
+                ),
118
+                $grab_a_key_link
119
+            );
120
+            ?>
121 121
 
122 122
 		</p>
123 123
 		<input type="text" data-wl-key="wl-key" class="invalid untouched"
@@ -164,20 +164,20 @@  discard block
 block discarded – undo
164 164
 		        placeholder="<?php esc_attr_e( 'Choose your language', 'wordlift' ); ?>">
165 165
 			<?php
166 166
 
167
-			// Get WordLift's supported languages.
168
-			$languages = Wordlift_Languages::get_languages();
167
+            // Get WordLift's supported languages.
168
+            $languages = Wordlift_Languages::get_languages();
169 169
 
170
-			// Get WP's locale.
171
-			$locale = get_locale();
170
+            // Get WP's locale.
171
+            $locale = get_locale();
172 172
 
173
-			// Get the language locale part.
174
-			$parts = explode( '_', $locale );
173
+            // Get the language locale part.
174
+            $parts = explode( '_', $locale );
175 175
 
176
-			// If we support WP's configured language, then use that, otherwise use English by default.
177
-			$language = isset( $languages[ $parts[0] ] ) ? $parts[0] : 'en';
176
+            // If we support WP's configured language, then use that, otherwise use English by default.
177
+            $language = isset( $languages[ $parts[0] ] ) ? $parts[0] : 'en';
178 178
 
179
-			// Print all the supported language, preselecting the one configured in WP (or English if not supported).
180
-			foreach ( $languages as $code => $label ) { ?>
179
+            // Print all the supported language, preselecting the one configured in WP (or English if not supported).
180
+            foreach ( $languages as $code => $label ) { ?>
181 181
 				<option
182 182
 					value="<?php echo esc_attr( $code ) ?>" <?php echo selected( $code, $language, false ) ?>><?php echo esc_html( $label ) ?></option>
183 183
 			<?php } ?>
Please login to merge, or discard this patch.
Spacing   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -12,7 +12,7 @@  discard block
 block discarded – undo
12 12
 	<!-- Defining responsive ambient. -->
13 13
 	<meta name="viewport" content="width=device-width, initial-scale=1">
14 14
 
15
-	<title><?php esc_html_e( 'WordLift Setup', 'wordlift' ); ?></title>
15
+	<title><?php esc_html_e('WordLift Setup', 'wordlift'); ?></title>
16 16
 
17 17
 	<?php
18 18
 
@@ -20,26 +20,26 @@  discard block
 block discarded – undo
20 20
 	wp_enqueue_media();
21 21
 
22 22
 	// Enqueue styles and scripts.
23
-	wp_enqueue_style( 'wl-font-awesome', plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'css/font-awesome.min.css' );
24
-	wp_enqueue_style( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'css/wordlift-admin-setup.css', array(
23
+	wp_enqueue_style('wl-font-awesome', plugin_dir_url(dirname(dirname(__FILE__))).'css/font-awesome.min.css');
24
+	wp_enqueue_style('wordlift-admin-setup', plugin_dir_url(dirname(__FILE__)).'css/wordlift-admin-setup.css', array(
25 25
 		'wp-admin',
26 26
 		'wl-font-awesome',
27
-	) );
28
-	wp_enqueue_script( 'wordlift-admin-setup', plugin_dir_url( dirname( __FILE__ ) ) . 'js/wordlift-admin-setup.js', array( 'jquery' ) );
27
+	));
28
+	wp_enqueue_script('wordlift-admin-setup', plugin_dir_url(dirname(__FILE__)).'js/wordlift-admin-setup.js', array('jquery'));
29 29
 
30 30
 	//Get wp_permalink structure
31
-	$permalink_structure = get_option( 'permalink_structure' );
31
+	$permalink_structure = get_option('permalink_structure');
32 32
 
33 33
 	// Set configuration settings.
34
-	wp_localize_script( 'wordlift-admin-setup', '_wlAdminSetup', array(
35
-		'ajaxUrl'   => parse_url( self_admin_url( 'admin-ajax.php' ), PHP_URL_PATH ),
34
+	wp_localize_script('wordlift-admin-setup', '_wlAdminSetup', array(
35
+		'ajaxUrl'   => parse_url(self_admin_url('admin-ajax.php'), PHP_URL_PATH),
36 36
 		'action'    => 'wl_validate_key',
37 37
 		'permalink' => $permalink_structure,
38 38
 		'media'     => array(
39
-			'title'  => __( 'WordLift Choose Logo', 'wordlift' ),
40
-			'button' => array( 'text' => __( 'Choose Logo', 'wordlift' ) ),
39
+			'title'  => __('WordLift Choose Logo', 'wordlift'),
40
+			'button' => array('text' => __('Choose Logo', 'wordlift')),
41 41
 		),
42
-	) );
42
+	));
43 43
 
44 44
 	// Finally print styles and scripts.
45 45
 	wp_print_styles();
@@ -51,61 +51,61 @@  discard block
 block discarded – undo
51 51
 
52 52
 	<!-- Pane 1 content -->
53 53
 	<script type="text/html" id="page-0">
54
-		<h2 class="page-title"><?php esc_html_e( 'Welcome', 'wordlift' ); ?></h2>
54
+		<h2 class="page-title"><?php esc_html_e('Welcome', 'wordlift'); ?></h2>
55 55
 		<p class="page-txt">
56
-			<?php esc_html_e( 'Thank you for downloading WordLift. Now you can boost your website with a double-digit growth. WordLift helps you with:', 'wordlift' ); ?>
56
+			<?php esc_html_e('Thank you for downloading WordLift. Now you can boost your website with a double-digit growth. WordLift helps you with:', 'wordlift'); ?>
57 57
 		</p>
58 58
 		<ul class="page-list">
59 59
 			<li>
60 60
 				<span class="fa fa-university"></span>
61
-				<?php esc_html_e( 'Trustworthiness', 'wordlift' ); ?>
61
+				<?php esc_html_e('Trustworthiness', 'wordlift'); ?>
62 62
 			</li>
63 63
 
64 64
 			<li>
65 65
 				<span class="fa fa-map-marker"></span>
66
-				<?php esc_html_e( 'Enrichment', 'wordlift' ); ?>
66
+				<?php esc_html_e('Enrichment', 'wordlift'); ?>
67 67
 			</li>
68 68
 
69 69
 			<li>
70 70
 				<span class="fa fa-heart"></span>
71
-				<?php esc_html_e( 'Engagement', 'wordlift' ); ?>
71
+				<?php esc_html_e('Engagement', 'wordlift'); ?>
72 72
 			</li>
73 73
 
74 74
 			<li>
75 75
 				<span class="fa fa-hand-o-right"></span>
76
-				<?php esc_html_e( 'Smart Navigation', 'wordlift' ); ?>
76
+				<?php esc_html_e('Smart Navigation', 'wordlift'); ?>
77 77
 			</li>
78 78
 
79 79
 			<li>
80 80
 				<span class="fa fa-google"></span>
81
-				<?php esc_html_e( 'SEO Optimization', 'wordlift' ); ?>
81
+				<?php esc_html_e('SEO Optimization', 'wordlift'); ?>
82 82
 			</li>
83 83
 
84 84
 			<li>
85 85
 				<span class="fa fa-group"></span>
86
-				<?php esc_html_e( 'Content Marketing', 'wordlift' ); ?>
86
+				<?php esc_html_e('Content Marketing', 'wordlift'); ?>
87 87
 			</li>
88 88
 		</ul>
89 89
 		<div class="btn-wrapper">
90 90
 			<a href="https://wordlift.io/blogger/?utm_campaign=wl_activation_learn_more"
91 91
 			   target="_tab"
92
-			   class="button"><?php esc_html_e( 'Learn More', 'wordlift' ); ?></a>
92
+			   class="button"><?php esc_html_e('Learn More', 'wordlift'); ?></a>
93 93
 			<input type="button" data-wl-next="wl-next"
94 94
 			       class="wl-default-action"
95
-			       value="<?php esc_attr_e( 'Next', 'wordlift' ); ?>">
95
+			       value="<?php esc_attr_e('Next', 'wordlift'); ?>">
96 96
 		</div>
97 97
 	</script>
98 98
 
99 99
 	<!-- Pane 2 content -->
100 100
 	<script type="text/html" id="page-1">
101
-		<h2 class="page-title"><?php esc_html_e( 'License Key', 'wordlift' ); ?></h2>
101
+		<h2 class="page-title"><?php esc_html_e('License Key', 'wordlift'); ?></h2>
102 102
 		<p class="page-txt">
103 103
 
104 104
 			<?php
105 105
 			$grab_a_key_link = sprintf(
106 106
 				'<a target="_blank" href="%s">%s</a>',
107
-				esc_attr__( 'https://wordlift.io/pricing', 'wordlift' ),
108
-				esc_html__( 'grab a key', 'wordlift' )
107
+				esc_attr__('https://wordlift.io/pricing', 'wordlift'),
108
+				esc_html__('grab a key', 'wordlift')
109 109
 			);
110 110
 
111 111
 			echo sprintf(
@@ -123,45 +123,45 @@  discard block
 block discarded – undo
123 123
 		<input type="text" data-wl-key="wl-key" class="invalid untouched"
124 124
 		       id="key" name="key" value=""
125 125
 		       autocomplete="off"
126
-		       placeholder="<?php echo esc_attr_x( 'License Key', 'Input text placeholder', 'wordlift' ); ?>">
126
+		       placeholder="<?php echo esc_attr_x('License Key', 'Input text placeholder', 'wordlift'); ?>">
127 127
 		<div class="btn-wrapper">
128 128
 			<a id="btn-grab-a-key"
129 129
 			   href="https://wordlift.io/pricing/?utm_campaign=wl_activation_grab_the_key"
130 130
 			   target="_tab"
131
-			   class="button wl-default-action"><?php esc_html_e( 'Grab a Key!', 'wordlift' ); ?></a><input
131
+			   class="button wl-default-action"><?php esc_html_e('Grab a Key!', 'wordlift'); ?></a><input
132 132
 				id="btn-license-key-next"
133 133
 				type="button" data-wl-next="wl-next" class="button"
134
-				value="<?php esc_attr_e( 'Next', 'wordlift' ); ?>">
134
+				value="<?php esc_attr_e('Next', 'wordlift'); ?>">
135 135
 		</div>
136 136
 	</script>
137 137
 
138 138
 	<!-- Pane 3 content -->
139 139
 	<script type="text/html" id="page-2">
140
-		<h2 class="page-title"><?php esc_html_e( 'Vocabulary', 'wordlift' ); ?></h2>
140
+		<h2 class="page-title"><?php esc_html_e('Vocabulary', 'wordlift'); ?></h2>
141 141
 		<p class="page-txt">
142
-			<?php esc_html_e( 'All new pages created with WordLift, will be stored inside your internal vocabulary. You can customize the url pattern of these pages in the field below. Check our FAQs if you need more info.', 'wordlift' ); ?>
142
+			<?php esc_html_e('All new pages created with WordLift, will be stored inside your internal vocabulary. You can customize the url pattern of these pages in the field below. Check our FAQs if you need more info.', 'wordlift'); ?>
143 143
 		</p>
144 144
 		<input type="text" id="vocabulary" name="vocabulary" autocomplete="off"
145 145
 		       value="vocabulary"
146 146
 		       class="valid untouched" data-wl-vocabulary="wl-vocabulary">
147 147
 		<p class="page-det">
148
-			<?php esc_html_e( 'Leave it empty to place your entities in the root folder of your website', 'wordlift' ); ?>
148
+			<?php esc_html_e('Leave it empty to place your entities in the root folder of your website', 'wordlift'); ?>
149 149
 		</p>
150 150
 		<div class="btn-wrapper">
151 151
 			<input type="button" data-wl-next="wl-next"
152 152
 			       class="wl-default-action"
153
-			       value="<?php esc_attr_e( 'Next', 'wordlift' ); ?>">
153
+			       value="<?php esc_attr_e('Next', 'wordlift'); ?>">
154 154
 		</div>
155 155
 	</script>
156 156
 
157 157
 	<!-- Pane 4 content -->
158 158
 	<script type="text/html" id="page-3">
159
-		<h2 class="page-title"><?php esc_html_e( 'Language', 'wordlift' ); ?></h2>
159
+		<h2 class="page-title"><?php esc_html_e('Language', 'wordlift'); ?></h2>
160 160
 		<p class="page-txt">
161
-			<?php esc_html_e( 'Each WordLift key can be used only in one language. Pick yours.', 'wordlift' ); ?>
161
+			<?php esc_html_e('Each WordLift key can be used only in one language. Pick yours.', 'wordlift'); ?>
162 162
 		</p>
163 163
 		<select id="language" name="language"
164
-		        placeholder="<?php esc_attr_e( 'Choose your language', 'wordlift' ); ?>">
164
+		        placeholder="<?php esc_attr_e('Choose your language', 'wordlift'); ?>">
165 165
 			<?php
166 166
 
167 167
 			// Get WordLift's supported languages.
@@ -171,30 +171,30 @@  discard block
 block discarded – undo
171 171
 			$locale = get_locale();
172 172
 
173 173
 			// Get the language locale part.
174
-			$parts = explode( '_', $locale );
174
+			$parts = explode('_', $locale);
175 175
 
176 176
 			// If we support WP's configured language, then use that, otherwise use English by default.
177
-			$language = isset( $languages[ $parts[0] ] ) ? $parts[0] : 'en';
177
+			$language = isset($languages[$parts[0]]) ? $parts[0] : 'en';
178 178
 
179 179
 			// Print all the supported language, preselecting the one configured in WP (or English if not supported).
180
-			foreach ( $languages as $code => $label ) { ?>
180
+			foreach ($languages as $code => $label) { ?>
181 181
 				<option
182
-					value="<?php echo esc_attr( $code ) ?>" <?php echo selected( $code, $language, false ) ?>><?php echo esc_html( $label ) ?></option>
182
+					value="<?php echo esc_attr($code) ?>" <?php echo selected($code, $language, false) ?>><?php echo esc_html($label) ?></option>
183 183
 			<?php } ?>
184 184
 		</select>
185 185
 
186 186
 		<div class="btn-wrapper">
187 187
 			<input type="button" data-wl-next="wl-next"
188 188
 			       class="wl-default-action"
189
-			       value="<?php esc_attr_e( 'Next', 'wordlift' ); ?>">
189
+			       value="<?php esc_attr_e('Next', 'wordlift'); ?>">
190 190
 		</div>
191 191
 	</script>
192 192
 
193 193
 	<!-- Pane 5 content -->
194 194
 	<script type="text/html" id="page-4">
195
-		<h2 class="page-title"><?php esc_html_e( 'Publisher', 'wordlift' ); ?></h2>
195
+		<h2 class="page-title"><?php esc_html_e('Publisher', 'wordlift'); ?></h2>
196 196
 		<p class="page-txt">
197
-			<?php esc_html_e( 'Are you going to publish as an individual or as a company?', 'wordlift' ); ?>
197
+			<?php esc_html_e('Are you going to publish as an individual or as a company?', 'wordlift'); ?>
198 198
 		</p>
199 199
 		<div class="radio-wrapper">
200 200
 			<label for="personal">
@@ -202,20 +202,20 @@  discard block
 block discarded – undo
202 202
 				       value="person" checked>
203 203
 				<span class="radio"><span class="check"></span></span>
204 204
 				<span
205
-					class="label"><?php esc_html_e( 'Personal', 'wordlift' ); ?></span>
205
+					class="label"><?php esc_html_e('Personal', 'wordlift'); ?></span>
206 206
 			</label>
207 207
 			<label for="company">
208 208
 				<input id="company" type="radio" name="user_type"
209 209
 				       value="organization">
210 210
 				<span class="radio"><span class="check"></span></span>
211 211
 				<span
212
-					class="label"><?php esc_html_e( 'Company', 'wordlift' ); ?></span>
212
+					class="label"><?php esc_html_e('Company', 'wordlift'); ?></span>
213 213
 			</label>
214 214
 		</div>
215 215
 		<input type="text" id="name" name="name" data-wl-name="wl-name" value=""
216 216
 		       autocomplete="off"
217 217
 		       class="untouched invalid"
218
-		       placeholder="<?php esc_attr_e( "What's your name?", 'wordlift' ); ?>">
218
+		       placeholder="<?php esc_attr_e("What's your name?", 'wordlift'); ?>">
219 219
 
220 220
 		<div data-wl-logo="wl-logo">
221 221
 			<input type="hidden" name="logo" />
@@ -225,12 +225,12 @@  discard block
 block discarded – undo
225 225
 			</div>
226 226
 			<a data-wl-add-logo="wl-add-logo" class="add-logo"
227 227
 			   href="javascript:void(0);">
228
-				<?php esc_html_e( 'Add your logo', 'wordlift' ); ?>
228
+				<?php esc_html_e('Add your logo', 'wordlift'); ?>
229 229
 			</a>
230 230
 		</div>
231 231
 		<div class="btn-wrapper">
232 232
 			<input type="submit" id="btn-finish" class="wl-default-action"
233
-			       value="<?php esc_attr_e( 'Finish', 'wordlift' ); ?>">
233
+			       value="<?php esc_attr_e('Finish', 'wordlift'); ?>">
234 234
 		</div>
235 235
 	</script>
236 236
 
@@ -239,27 +239,27 @@  discard block
 block discarded – undo
239 239
 
240 240
 <div class="wl-container">
241 241
 
242
-	<a href="<?php echo esc_url( admin_url() ); ?> "
242
+	<a href="<?php echo esc_url(admin_url()); ?> "
243 243
 	   class="fa fa-times wl-close"></a>
244 244
 
245 245
 	<header>
246 246
 		<h1><img class="wizard-logo"
247
-		         src="<?php echo plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'images/logo-wl-transparent-240x90.png'; ?>" />
247
+		         src="<?php echo plugin_dir_url(dirname(dirname(__FILE__))).'images/logo-wl-transparent-240x90.png'; ?>" />
248 248
 		</h1>
249 249
 		<img class="shapes"
250
-		     src="<?php echo plugin_dir_url( dirname( dirname( __FILE__ ) ) ) . 'images/shapes.png'; ?>" />
250
+		     src="<?php echo plugin_dir_url(dirname(dirname(__FILE__))).'images/shapes.png'; ?>" />
251 251
 	</header>
252 252
 
253 253
 
254 254
 	<form method="post">
255
-		<?php wp_nonce_field( 'wl-save-configuration' ); ?>
255
+		<?php wp_nonce_field('wl-save-configuration'); ?>
256 256
 		<input type="hidden" name="action" value="wl-save-configuration" />
257 257
 		<div class="viewport"></div>
258 258
 	</form>
259 259
 
260 260
 </div>
261 261
 
262
-<?php do_action( 'admin_footer' ); ?>
262
+<?php do_action('admin_footer'); ?>
263 263
 
264 264
 </body>
265 265
 </html>
Please login to merge, or discard this patch.
src/includes/class-wordlift.php 1 patch
Indentation   +1539 added lines, -1539 removed lines patch added patch discarded remove patch
@@ -28,1574 +28,1574 @@
 block discarded – undo
28 28
  */
29 29
 class Wordlift {
30 30
 
31
-	//<editor-fold desc="## FIELDS">
32
-
33
-	/**
34
-	 * The loader that's responsible for maintaining and registering all hooks that power
35
-	 * the plugin.
36
-	 *
37
-	 * @since    1.0.0
38
-	 * @access   protected
39
-	 * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
40
-	 */
41
-	protected $loader;
42
-
43
-	/**
44
-	 * The unique identifier of this plugin.
45
-	 *
46
-	 * @since    1.0.0
47
-	 * @access   protected
48
-	 * @var      string $plugin_name The string used to uniquely identify this plugin.
49
-	 */
50
-	protected $plugin_name;
51
-
52
-	/**
53
-	 * The current version of the plugin.
54
-	 *
55
-	 * @since    1.0.0
56
-	 * @access   protected
57
-	 * @var      string $version The current version of the plugin.
58
-	 */
59
-	protected $version;
60
-
61
-	/**
62
-	 * The {@link Wordlift_Tinymce_Adapter} instance.
63
-	 *
64
-	 * @since  3.12.0
65
-	 * @access protected
66
-	 * @var \Wordlift_Tinymce_Adapter $tinymce_adapter The {@link Wordlift_Tinymce_Adapter} instance.
67
-	 */
68
-	protected $tinymce_adapter;
69
-
70
-	/**
71
-	 * The Thumbnail service.
72
-	 *
73
-	 * @since  3.1.5
74
-	 * @access private
75
-	 * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
76
-	 */
77
-	private $thumbnail_service;
78
-
79
-	/**
80
-	 * The UI service.
81
-	 *
82
-	 * @since  3.2.0
83
-	 * @access private
84
-	 * @var \Wordlift_UI_Service $ui_service The UI service.
85
-	 */
86
-	private $ui_service;
87
-
88
-	/**
89
-	 * The Schema service.
90
-	 *
91
-	 * @since  3.3.0
92
-	 * @access protected
93
-	 * @var \Wordlift_Schema_Service $schema_service The Schema service.
94
-	 */
95
-	protected $schema_service;
96
-
97
-	/**
98
-	 * The Entity service.
99
-	 *
100
-	 * @since  3.1.0
101
-	 * @access protected
102
-	 * @var \Wordlift_Entity_Service $entity_service The Entity service.
103
-	 */
104
-	protected $entity_service;
105
-
106
-	/**
107
-	 * The Topic Taxonomy service.
108
-	 *
109
-	 * @since  3.5.0
110
-	 * @access private
111
-	 * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
112
-	 */
113
-	private $topic_taxonomy_service;
114
-
115
-	/**
116
-	 * The Entity Types Taxonomy service.
117
-	 *
118
-	 * @since  3.18.0
119
-	 * @access private
120
-	 * @var \Wordlift_Entity_Type_Taxonomy_Service The Entity Types Taxonomy service.
121
-	 */
122
-	private $entity_types_taxonomy_service;
123
-
124
-	/**
125
-	 * The User service.
126
-	 *
127
-	 * @since  3.1.7
128
-	 * @access protected
129
-	 * @var \Wordlift_User_Service $user_service The User service.
130
-	 */
131
-	protected $user_service;
132
-
133
-	/**
134
-	 * The Timeline service.
135
-	 *
136
-	 * @since  3.1.0
137
-	 * @access private
138
-	 * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
139
-	 */
140
-	private $timeline_service;
141
-
142
-	/**
143
-	 * The Redirect service.
144
-	 *
145
-	 * @since  3.2.0
146
-	 * @access private
147
-	 * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
148
-	 */
149
-	private $redirect_service;
150
-
151
-	/**
152
-	 * The Notice service.
153
-	 *
154
-	 * @since  3.3.0
155
-	 * @access private
156
-	 * @var \Wordlift_Notice_Service $notice_service The Notice service.
157
-	 */
158
-	private $notice_service;
159
-
160
-	/**
161
-	 * The Entity list customization.
162
-	 *
163
-	 * @since  3.3.0
164
-	 * @access protected
165
-	 * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
166
-	 */
167
-	protected $entity_list_service;
168
-
169
-	/**
170
-	 * The Entity Types Taxonomy Walker.
171
-	 *
172
-	 * @since  3.1.0
173
-	 * @access private
174
-	 * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
175
-	 */
176
-	private $entity_types_taxonomy_walker;
177
-
178
-	/**
179
-	 * The ShareThis service.
180
-	 *
181
-	 * @since  3.2.0
182
-	 * @access private
183
-	 * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
184
-	 */
185
-	private $sharethis_service;
186
-
187
-	/**
188
-	 * The PrimaShop adapter.
189
-	 *
190
-	 * @since  3.2.3
191
-	 * @access private
192
-	 * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
193
-	 */
194
-	private $primashop_adapter;
195
-
196
-	/**
197
-	 * The WordLift Dashboard adapter.
198
-	 *
199
-	 * @since  3.4.0
200
-	 * @access private
201
-	 * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
202
-	 */
203
-	private $dashboard_service;
204
-
205
-	/**
206
-	 * The entity type service.
207
-	 *
208
-	 * @since  3.6.0
209
-	 * @access private
210
-	 * @var \Wordlift_Entity_Post_Type_Service
211
-	 */
212
-	private $entity_post_type_service;
213
-
214
-	/**
215
-	 * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
216
-	 *
217
-	 * @since  3.6.0
218
-	 * @access private
219
-	 * @var \Wordlift_Entity_Link_Service
220
-	 */
221
-	private $entity_link_service;
222
-
223
-	/**
224
-	 * A {@link Wordlift_Sparql_Service} instance.
225
-	 *
226
-	 * @since    3.6.0
227
-	 * @access   protected
228
-	 * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
229
-	 */
230
-	protected $sparql_service;
231
-
232
-	/**
233
-	 * A {@link Wordlift_Import_Service} instance.
234
-	 *
235
-	 * @since  3.6.0
236
-	 * @access private
237
-	 * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
238
-	 */
239
-	private $import_service;
240
-
241
-	/**
242
-	 * A {@link Wordlift_Rebuild_Service} instance.
243
-	 *
244
-	 * @since  3.6.0
245
-	 * @access private
246
-	 * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
247
-	 */
248
-	private $rebuild_service;
249
-
250
-	/**
251
-	 * A {@link Wordlift_Jsonld_Service} instance.
252
-	 *
253
-	 * @since  3.7.0
254
-	 * @access protected
255
-	 * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
256
-	 */
257
-	protected $jsonld_service;
258
-
259
-	/**
260
-	 * A {@link Wordlift_Website_Jsonld_Converter} instance.
261
-	 *
262
-	 * @since  3.14.0
263
-	 * @access protected
264
-	 * @var \Wordlift_Website_Jsonld_Converter $jsonld_website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
265
-	 */
266
-	protected $jsonld_website_converter;
267
-
268
-	/**
269
-	 * A {@link Wordlift_Property_Factory} instance.
270
-	 *
271
-	 * @since  3.7.0
272
-	 * @access private
273
-	 * @var \Wordlift_Property_Factory $property_factory
274
-	 */
275
-	private $property_factory;
276
-
277
-	/**
278
-	 * The 'Download Your Data' page.
279
-	 *
280
-	 * @since  3.6.0
281
-	 * @access private
282
-	 * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
283
-	 */
284
-	private $download_your_data_page;
285
-
286
-	/**
287
-	 * The 'WordLift Settings' page.
288
-	 *
289
-	 * @since  3.11.0
290
-	 * @access protected
291
-	 * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
292
-	 */
293
-	protected $settings_page;
294
-
295
-	/**
296
-	 * The 'WordLift Batch analysis' page.
297
-	 *
298
-	 * @since  3.14.0
299
-	 * @access protected
300
-	 * @var \Wordlift_Batch_Analysis_Page $sbatch_analysis_page The 'WordLift batcch analysis' page.
301
-	 */
302
-	protected $batch_analysis_page;
303
-
304
-	/**
305
-	 * The install wizard page.
306
-	 *
307
-	 * @since  3.9.0
308
-	 * @access private
309
-	 * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
310
-	 */
311
-	private $admin_setup;
312
-
313
-	/**
314
-	 * The Content Filter Service hooks up to the 'the_content' filter and provides
315
-	 * linking of entities to their pages.
316
-	 *
317
-	 * @since  3.8.0
318
-	 * @access private
319
-	 * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
320
-	 */
321
-	private $content_filter_service;
322
-
323
-	/**
324
-	 * A {@link Wordlift_Key_Validation_Service} instance.
325
-	 *
326
-	 * @since  3.9.0
327
-	 * @access private
328
-	 * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
329
-	 */
330
-	private $key_validation_service;
331
-
332
-	/**
333
-	 * A {@link Wordlift_Rating_Service} instance.
334
-	 *
335
-	 * @since  3.10.0
336
-	 * @access private
337
-	 * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
338
-	 */
339
-	private $rating_service;
340
-
341
-	/**
342
-	 * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
343
-	 *
344
-	 * @since  3.10.0
345
-	 * @access protected
346
-	 * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
347
-	 */
348
-	protected $post_to_jsonld_converter;
349
-
350
-	/**
351
-	 * A {@link Wordlift_Configuration_Service} instance.
352
-	 *
353
-	 * @since  3.10.0
354
-	 * @access protected
355
-	 * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
356
-	 */
357
-	protected $configuration_service;
358
-
359
-	/**
360
-	 * A {@link Wordlift_Install_Service} instance.
361
-	 *
362
-	 * @since  3.18.0
363
-	 * @access protected
364
-	 * @var \Wordlift_Install_Service $install_service A {@link Wordlift_Install_Service} instance.
365
-	 */
366
-	protected $install_service;
367
-
368
-	/**
369
-	 * A {@link Wordlift_Entity_Type_Service} instance.
370
-	 *
371
-	 * @since  3.10.0
372
-	 * @access protected
373
-	 * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
374
-	 */
375
-	protected $entity_type_service;
376
-
377
-	/**
378
-	 * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
379
-	 *
380
-	 * @since  3.10.0
381
-	 * @access protected
382
-	 * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
383
-	 */
384
-	protected $entity_post_to_jsonld_converter;
385
-
386
-	/**
387
-	 * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
388
-	 *
389
-	 * @since  3.10.0
390
-	 * @access protected
391
-	 * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
392
-	 */
393
-	protected $postid_to_jsonld_converter;
394
-
395
-	/**
396
-	 * The {@link Wordlift_Admin_Status_Page} class.
397
-	 *
398
-	 * @since  3.9.8
399
-	 * @access private
400
-	 * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
401
-	 */
402
-	private $status_page;
403
-
404
-	/**
405
-	 * The {@link Wordlift_Category_Taxonomy_Service} instance.
406
-	 *
407
-	 * @since  3.11.0
408
-	 * @access protected
409
-	 * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
410
-	 */
411
-	protected $category_taxonomy_service;
412
-
413
-	/**
414
-	 * The {@link Wordlift_Entity_Page_Service} instance.
415
-	 *
416
-	 * @since  3.11.0
417
-	 * @access protected
418
-	 * @var \Wordlift_Entity_Page_Service $entity_page_service The {@link Wordlift_Entity_Page_Service} instance.
419
-	 */
420
-	protected $entity_page_service;
421
-
422
-	/**
423
-	 * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
424
-	 *
425
-	 * @since  3.11.0
426
-	 * @access protected
427
-	 * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
428
-	 */
429
-	protected $settings_page_action_link;
430
-
431
-	/**
432
-	 * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
433
-	 *
434
-	 * @since  3.11.0
435
-	 * @access protected
436
-	 * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
437
-	 */
438
-	protected $publisher_ajax_adapter;
439
-
440
-	/**
441
-	 * The {@link Wordlift_Admin_Input_Element} element renderer.
442
-	 *
443
-	 * @since  3.11.0
444
-	 * @access protected
445
-	 * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
446
-	 */
447
-	protected $input_element;
448
-
449
-	/**
450
-	 * The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
451
-	 *
452
-	 * @since  3.13.0
453
-	 * @access protected
454
-	 * @var \Wordlift_Admin_Radio_Input_Element $radio_input_element The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
455
-	 */
456
-	protected $radio_input_element;
457
-
458
-	/**
459
-	 * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
460
-	 *
461
-	 * @since  3.11.0
462
-	 * @access protected
463
-	 * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
464
-	 */
465
-	protected $language_select_element;
466
-
467
-	/**
468
-	 * The {@link Wordlift_Admin_Publisher_Element} element renderer.
469
-	 *
470
-	 * @since  3.11.0
471
-	 * @access protected
472
-	 * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
473
-	 */
474
-	protected $publisher_element;
475
-
476
-	/**
477
-	 * The {@link Wordlift_Admin_Select2_Element} element renderer.
478
-	 *
479
-	 * @since  3.11.0
480
-	 * @access protected
481
-	 * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
482
-	 */
483
-	protected $select2_element;
484
-
485
-	/**
486
-	 * The controller for the entity type list admin page
487
-	 *
488
-	 * @since  3.11.0
489
-	 * @access private
490
-	 * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
491
-	 */
492
-	private $entity_type_admin_page;
493
-
494
-	/**
495
-	 * The controller for the entity type settings admin page
496
-	 *
497
-	 * @since  3.11.0
498
-	 * @access private
499
-	 * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
500
-	 */
501
-	private $entity_type_settings_admin_page;
502
-
503
-	/**
504
-	 * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
505
-	 *
506
-	 * @since  3.11.0
507
-	 * @access protected
508
-	 * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
509
-	 */
510
-	protected $related_entities_cloud_widget;
511
-
512
-	/**
513
-	 * The {@link Wordlift_Admin_Author_Element} instance.
514
-	 *
515
-	 * @since  3.14.0
516
-	 * @access protected
517
-	 * @var \Wordlift_Admin_Author_Element $author_element The {@link Wordlift_Admin_Author_Element} instance.
518
-	 */
519
-	protected $author_element;
520
-
521
-	/**
522
-	 * The {@link Wordlift_Batch_Analysis_Service} instance.
523
-	 *
524
-	 * @since  3.14.0
525
-	 * @access protected
526
-	 * @var \Wordlift_Batch_Analysis_Service $batch_analysis_service The {@link Wordlift_Batch_Analysis_Service} instance.
527
-	 */
528
-	protected $batch_analysis_service;
529
-
530
-	/**
531
-	 * The {@link Wordlift_Sample_Data_Service} instance.
532
-	 *
533
-	 * @since  3.12.0
534
-	 * @access protected
535
-	 * @var \Wordlift_Sample_Data_Service $sample_data_service The {@link Wordlift_Sample_Data_Service} instance.
536
-	 */
537
-	protected $sample_data_service;
538
-
539
-	/**
540
-	 * The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
541
-	 *
542
-	 * @since  3.12.0
543
-	 * @access protected
544
-	 * @var \Wordlift_Sample_Data_Ajax_Adapter $sample_data_ajax_adapter The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
545
-	 */
546
-	protected $sample_data_ajax_adapter;
547
-
548
-	/**
549
-	 * The {@link Wordlift_Batch_Analysis_Adapter} instance.
550
-	 *
551
-	 * @since  3.14.2
552
-	 * @access protected
553
-	 * @var \Wordlift_Batch_Analysis_Adapter $batch_analysis_adapter The {@link Wordlift_Batch_Analysis_Adapter} instance.
554
-	 */
555
-	private $batch_analysis_adapter;
556
-
557
-	/**
558
-	 * The {@link Wordlift_Relation_Rebuild_Service} instance.
559
-	 *
560
-	 * @since  3.14.3
561
-	 * @access private
562
-	 * @var \Wordlift_Relation_Rebuild_Service $relation_rebuild_service The {@link Wordlift_Relation_Rebuild_Service} instance.
563
-	 */
564
-	private $relation_rebuild_service;
565
-
566
-	/**
567
-	 * The {@link Wordlift_Relation_Rebuild_Adapter} instance.
568
-	 *
569
-	 * @since  3.14.3
570
-	 * @access private
571
-	 * @var \Wordlift_Relation_Rebuild_Adapter $relation_rebuild_adapter The {@link Wordlift_Relation_Rebuild_Adapter} instance.
572
-	 */
573
-	private $relation_rebuild_adapter;
574
-
575
-	/**
576
-	 * The {@link Wordlift_Reference_Rebuild_Service} instance.
577
-	 *
578
-	 * @since  3.18.0
579
-	 * @access private
580
-	 * @var \Wordlift_Reference_Rebuild_Service $reference_rebuild_service The {@link Wordlift_Reference_Rebuild_Service} instance.
581
-	 */
582
-	private $reference_rebuild_service;
583
-
584
-	/**
585
-	 * The {@link Wordlift_Google_Analytics_Export_Service} instance.
586
-	 *
587
-	 * @since  3.16.0
588
-	 * @access protected
589
-	 * @var \Wordlift_Google_Analytics_Export_Service $google_analytics_export_service The {@link Wordlift_Google_Analytics_Export_Service} instance.
590
-	 */
591
-	protected $google_analytics_export_service;
592
-
593
-	/**
594
-	 * {@link Wordlift}'s singleton instance.
595
-	 *
596
-	 * @since  3.15.0
597
-	 * @access protected
598
-	 * @var \Wordlift_Entity_Type_Adapter $entity_type_adapter The {@link Wordlift_Entity_Type_Adapter} instance.
599
-	 */
600
-	protected $entity_type_adapter;
601
-
602
-	/**
603
-	 * The {@link Wordlift_Linked_Data_Service} instance.
604
-	 *
605
-	 * @since  3.15.0
606
-	 * @access protected
607
-	 * @var \Wordlift_Linked_Data_Service $linked_data_service The {@link Wordlift_Linked_Data_Service} instance.
608
-	 */
609
-	protected $linked_data_service;
610
-
611
-	/**
612
-	 * The {@link Wordlift_Storage_Factory} instance.
613
-	 *
614
-	 * @since  3.15.0
615
-	 * @access protected
616
-	 * @var \Wordlift_Storage_Factory $storage_factory The {@link Wordlift_Storage_Factory} instance.
617
-	 */
618
-	protected $storage_factory;
619
-
620
-	/**
621
-	 * The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
622
-	 *
623
-	 * @since  3.15.0
624
-	 * @access protected
625
-	 * @var \Wordlift_Sparql_Tuple_Rendition_Factory $rendition_factory The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
626
-	 */
627
-	protected $rendition_factory;
628
-
629
-	/**
630
-	 * The {@link Wordlift_Autocomplete_Service} instance.
631
-	 *
632
-	 * @since  3.15.0
633
-	 * @access private
634
-	 * @var \Wordlift_Autocomplete_Service $autocomplete_service The {@link Wordlift_Autocomplete_Service} instance.
635
-	 */
636
-	private $autocomplete_service;
637
-
638
-	/**
639
-	 * The {@link Wordlift_Autocomplete_Adapter} instance.
640
-	 *
641
-	 * @since  3.15.0
642
-	 * @access private
643
-	 * @var \Wordlift_Autocomplete_Adapter $autocomplete_adapter The {@link Wordlift_Autocomplete_Adapter} instance.
644
-	 */
645
-	private $autocomplete_adapter;
646
-
647
-	/**
648
-	 * The {@link Wordlift_Relation_Service} instance.
649
-	 *
650
-	 * @since  3.15.0
651
-	 * @access protected
652
-	 * @var \Wordlift_Relation_Service $relation_service The {@link Wordlift_Relation_Service} instance.
653
-	 */
654
-	protected $relation_service;
655
-
656
-	/**
657
-	 * The {@link Wordlift_Cached_Post_Converter} instance.
658
-	 *
659
-	 * @since  3.16.0
660
-	 * @access protected
661
-	 * @var  \Wordlift_Cached_Post_Converter $cached_postid_to_jsonld_converter The {@link Wordlift_Cached_Post_Converter} instance.
662
-	 *
663
-	 */
664
-	protected $cached_postid_to_jsonld_converter;
665
-
666
-	/**
667
-	 * The {@link Wordlift_File_Cache_Service} instance.
668
-	 *
669
-	 * @since  3.16.0
670
-	 * @access protected
671
-	 * @var \Wordlift_File_Cache_Service $file_cache_service The {@link Wordlift_File_Cache_Service} instance.
672
-	 */
673
-	protected $file_cache_service;
674
-
675
-	/**
676
-	 * The {@link Wordlift_Entity_Uri_Service} instance.
677
-	 *
678
-	 * @since  3.16.3
679
-	 * @access protected
680
-	 * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
681
-	 */
682
-	protected $entity_uri_service;
683
-
684
-	/**
685
-	 * {@link Wordlift}'s singleton instance.
686
-	 *
687
-	 * @since  3.11.2
688
-	 * @access private
689
-	 * @var Wordlift $instance {@link Wordlift}'s singleton instance.
690
-	 */
691
-	private static $instance;
692
-	//</editor-fold>
693
-
694
-	/**
695
-	 * Define the core functionality of the plugin.
696
-	 *
697
-	 * Set the plugin name and the plugin version that can be used throughout the plugin.
698
-	 * Load the dependencies, define the locale, and set the hooks for the admin area and
699
-	 * the public-facing side of the site.
700
-	 *
701
-	 * @since    1.0.0
702
-	 */
703
-	public function __construct() {
704
-
705
-		$this->plugin_name = 'wordlift';
706
-		$this->version     = '3.18.1';
707
-		$this->load_dependencies();
708
-		$this->set_locale();
709
-		$this->define_admin_hooks();
710
-		$this->define_public_hooks();
711
-
712
-		// If we're in `WP_CLI` load the related files.
713
-		if ( class_exists( 'WP_CLI' ) ) {
714
-			$this->load_cli_dependencies();
715
-		}
716
-
717
-		self::$instance = $this;
718
-
719
-	}
720
-
721
-	/**
722
-	 * Get the singleton instance.
723
-	 *
724
-	 * @since 3.11.2
725
-	 *
726
-	 * @return Wordlift The {@link Wordlift} singleton instance.
727
-	 */
728
-	public static function get_instance() {
729
-
730
-		return self::$instance;
731
-	}
732
-
733
-	/**
734
-	 * Load the required dependencies for this plugin.
735
-	 *
736
-	 * Include the following files that make up the plugin:
737
-	 *
738
-	 * - Wordlift_Loader. Orchestrates the hooks of the plugin.
739
-	 * - Wordlift_i18n. Defines internationalization functionality.
740
-	 * - Wordlift_Admin. Defines all hooks for the admin area.
741
-	 * - Wordlift_Public. Defines all hooks for the public side of the site.
742
-	 *
743
-	 * Create an instance of the loader which will be used to register the hooks
744
-	 * with WordPress.
745
-	 *
746
-	 * @since    1.0.0
747
-	 * @access   private
748
-	 */
749
-	private function load_dependencies() {
750
-
751
-		/**
752
-		 * The class responsible for orchestrating the actions and filters of the
753
-		 * core plugin.
754
-		 */
755
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
756
-
757
-		/**
758
-		 * The class responsible for defining internationalization functionality
759
-		 * of the plugin.
760
-		 */
761
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
762
-
763
-		/**
764
-		 * WordLift's supported languages.
765
-		 */
766
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
767
-
768
-		/**
769
-		 * Provide support functions to sanitize data.
770
-		 */
771
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
772
-
773
-		/** Installs. */
774
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install.php';
775
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-service.php';
776
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-1-0-0.php';
777
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-10-0.php';
778
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-12-0.php';
779
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-14-0.php';
780
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-15-0.php';
781
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-18-0.php';
782
-
783
-		/** Services. */
784
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
785
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-http-api.php';
786
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
787
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
788
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
789
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
790
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
791
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-linked-data-service.php';
792
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-relation-service.php';
793
-
794
-		/**
795
-		 * The Query builder.
796
-		 */
797
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
798
-
799
-		/**
800
-		 * The Schema service.
801
-		 */
802
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
803
-
804
-		/**
805
-		 * The schema:url property service.
806
-		 */
807
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
808
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
809
-
810
-		/**
811
-		 * The UI service.
812
-		 */
813
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
814
-
815
-		/**
816
-		 * The Thumbnail service.
817
-		 */
818
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
819
-
820
-		/**
821
-		 * The Entity Types Taxonomy service.
822
-		 */
823
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-taxonomy-service.php';
824
-
825
-		/**
826
-		 * The Entity service.
827
-		 */
828
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-uri-service.php';
829
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
830
-
831
-		// Add the entity rating service.
832
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
833
-
834
-		/**
835
-		 * The User service.
836
-		 */
837
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
838
-
839
-		/**
840
-		 * The Timeline service.
841
-		 */
842
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
843
-
844
-		/**
845
-		 * The Topic Taxonomy service.
846
-		 */
847
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
848
-
849
-		/**
850
-		 * The SPARQL service.
851
-		 */
852
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
853
-
854
-		/**
855
-		 * The WordLift import service.
856
-		 */
857
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
858
-
859
-		/**
860
-		 * The WordLift URI service.
861
-		 */
862
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
863
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
864
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-service.php';
865
-
866
-		/**
867
-		 * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
868
-		 */
869
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-listable.php';
870
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-rebuild-service.php';
871
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-reference-rebuild-service.php';
872
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-service.php';
873
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-adapter.php';
874
-
875
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
876
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
877
-
878
-		/**
879
-		 * Load the converters.
880
-		 */
881
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
882
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
883
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
884
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
885
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
886
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-website-converter.php';
887
-
888
-		/**
889
-		 * Load cache-related files.
890
-		 */
891
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/cache/require.php';
892
-
893
-		/**
894
-		 * Load the content filter.
895
-		 */
896
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
897
-
898
-		/*
31
+    //<editor-fold desc="## FIELDS">
32
+
33
+    /**
34
+     * The loader that's responsible for maintaining and registering all hooks that power
35
+     * the plugin.
36
+     *
37
+     * @since    1.0.0
38
+     * @access   protected
39
+     * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
40
+     */
41
+    protected $loader;
42
+
43
+    /**
44
+     * The unique identifier of this plugin.
45
+     *
46
+     * @since    1.0.0
47
+     * @access   protected
48
+     * @var      string $plugin_name The string used to uniquely identify this plugin.
49
+     */
50
+    protected $plugin_name;
51
+
52
+    /**
53
+     * The current version of the plugin.
54
+     *
55
+     * @since    1.0.0
56
+     * @access   protected
57
+     * @var      string $version The current version of the plugin.
58
+     */
59
+    protected $version;
60
+
61
+    /**
62
+     * The {@link Wordlift_Tinymce_Adapter} instance.
63
+     *
64
+     * @since  3.12.0
65
+     * @access protected
66
+     * @var \Wordlift_Tinymce_Adapter $tinymce_adapter The {@link Wordlift_Tinymce_Adapter} instance.
67
+     */
68
+    protected $tinymce_adapter;
69
+
70
+    /**
71
+     * The Thumbnail service.
72
+     *
73
+     * @since  3.1.5
74
+     * @access private
75
+     * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
76
+     */
77
+    private $thumbnail_service;
78
+
79
+    /**
80
+     * The UI service.
81
+     *
82
+     * @since  3.2.0
83
+     * @access private
84
+     * @var \Wordlift_UI_Service $ui_service The UI service.
85
+     */
86
+    private $ui_service;
87
+
88
+    /**
89
+     * The Schema service.
90
+     *
91
+     * @since  3.3.0
92
+     * @access protected
93
+     * @var \Wordlift_Schema_Service $schema_service The Schema service.
94
+     */
95
+    protected $schema_service;
96
+
97
+    /**
98
+     * The Entity service.
99
+     *
100
+     * @since  3.1.0
101
+     * @access protected
102
+     * @var \Wordlift_Entity_Service $entity_service The Entity service.
103
+     */
104
+    protected $entity_service;
105
+
106
+    /**
107
+     * The Topic Taxonomy service.
108
+     *
109
+     * @since  3.5.0
110
+     * @access private
111
+     * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
112
+     */
113
+    private $topic_taxonomy_service;
114
+
115
+    /**
116
+     * The Entity Types Taxonomy service.
117
+     *
118
+     * @since  3.18.0
119
+     * @access private
120
+     * @var \Wordlift_Entity_Type_Taxonomy_Service The Entity Types Taxonomy service.
121
+     */
122
+    private $entity_types_taxonomy_service;
123
+
124
+    /**
125
+     * The User service.
126
+     *
127
+     * @since  3.1.7
128
+     * @access protected
129
+     * @var \Wordlift_User_Service $user_service The User service.
130
+     */
131
+    protected $user_service;
132
+
133
+    /**
134
+     * The Timeline service.
135
+     *
136
+     * @since  3.1.0
137
+     * @access private
138
+     * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
139
+     */
140
+    private $timeline_service;
141
+
142
+    /**
143
+     * The Redirect service.
144
+     *
145
+     * @since  3.2.0
146
+     * @access private
147
+     * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
148
+     */
149
+    private $redirect_service;
150
+
151
+    /**
152
+     * The Notice service.
153
+     *
154
+     * @since  3.3.0
155
+     * @access private
156
+     * @var \Wordlift_Notice_Service $notice_service The Notice service.
157
+     */
158
+    private $notice_service;
159
+
160
+    /**
161
+     * The Entity list customization.
162
+     *
163
+     * @since  3.3.0
164
+     * @access protected
165
+     * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
166
+     */
167
+    protected $entity_list_service;
168
+
169
+    /**
170
+     * The Entity Types Taxonomy Walker.
171
+     *
172
+     * @since  3.1.0
173
+     * @access private
174
+     * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
175
+     */
176
+    private $entity_types_taxonomy_walker;
177
+
178
+    /**
179
+     * The ShareThis service.
180
+     *
181
+     * @since  3.2.0
182
+     * @access private
183
+     * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
184
+     */
185
+    private $sharethis_service;
186
+
187
+    /**
188
+     * The PrimaShop adapter.
189
+     *
190
+     * @since  3.2.3
191
+     * @access private
192
+     * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
193
+     */
194
+    private $primashop_adapter;
195
+
196
+    /**
197
+     * The WordLift Dashboard adapter.
198
+     *
199
+     * @since  3.4.0
200
+     * @access private
201
+     * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
202
+     */
203
+    private $dashboard_service;
204
+
205
+    /**
206
+     * The entity type service.
207
+     *
208
+     * @since  3.6.0
209
+     * @access private
210
+     * @var \Wordlift_Entity_Post_Type_Service
211
+     */
212
+    private $entity_post_type_service;
213
+
214
+    /**
215
+     * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
216
+     *
217
+     * @since  3.6.0
218
+     * @access private
219
+     * @var \Wordlift_Entity_Link_Service
220
+     */
221
+    private $entity_link_service;
222
+
223
+    /**
224
+     * A {@link Wordlift_Sparql_Service} instance.
225
+     *
226
+     * @since    3.6.0
227
+     * @access   protected
228
+     * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
229
+     */
230
+    protected $sparql_service;
231
+
232
+    /**
233
+     * A {@link Wordlift_Import_Service} instance.
234
+     *
235
+     * @since  3.6.0
236
+     * @access private
237
+     * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
238
+     */
239
+    private $import_service;
240
+
241
+    /**
242
+     * A {@link Wordlift_Rebuild_Service} instance.
243
+     *
244
+     * @since  3.6.0
245
+     * @access private
246
+     * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
247
+     */
248
+    private $rebuild_service;
249
+
250
+    /**
251
+     * A {@link Wordlift_Jsonld_Service} instance.
252
+     *
253
+     * @since  3.7.0
254
+     * @access protected
255
+     * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
256
+     */
257
+    protected $jsonld_service;
258
+
259
+    /**
260
+     * A {@link Wordlift_Website_Jsonld_Converter} instance.
261
+     *
262
+     * @since  3.14.0
263
+     * @access protected
264
+     * @var \Wordlift_Website_Jsonld_Converter $jsonld_website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
265
+     */
266
+    protected $jsonld_website_converter;
267
+
268
+    /**
269
+     * A {@link Wordlift_Property_Factory} instance.
270
+     *
271
+     * @since  3.7.0
272
+     * @access private
273
+     * @var \Wordlift_Property_Factory $property_factory
274
+     */
275
+    private $property_factory;
276
+
277
+    /**
278
+     * The 'Download Your Data' page.
279
+     *
280
+     * @since  3.6.0
281
+     * @access private
282
+     * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
283
+     */
284
+    private $download_your_data_page;
285
+
286
+    /**
287
+     * The 'WordLift Settings' page.
288
+     *
289
+     * @since  3.11.0
290
+     * @access protected
291
+     * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
292
+     */
293
+    protected $settings_page;
294
+
295
+    /**
296
+     * The 'WordLift Batch analysis' page.
297
+     *
298
+     * @since  3.14.0
299
+     * @access protected
300
+     * @var \Wordlift_Batch_Analysis_Page $sbatch_analysis_page The 'WordLift batcch analysis' page.
301
+     */
302
+    protected $batch_analysis_page;
303
+
304
+    /**
305
+     * The install wizard page.
306
+     *
307
+     * @since  3.9.0
308
+     * @access private
309
+     * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
310
+     */
311
+    private $admin_setup;
312
+
313
+    /**
314
+     * The Content Filter Service hooks up to the 'the_content' filter and provides
315
+     * linking of entities to their pages.
316
+     *
317
+     * @since  3.8.0
318
+     * @access private
319
+     * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
320
+     */
321
+    private $content_filter_service;
322
+
323
+    /**
324
+     * A {@link Wordlift_Key_Validation_Service} instance.
325
+     *
326
+     * @since  3.9.0
327
+     * @access private
328
+     * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
329
+     */
330
+    private $key_validation_service;
331
+
332
+    /**
333
+     * A {@link Wordlift_Rating_Service} instance.
334
+     *
335
+     * @since  3.10.0
336
+     * @access private
337
+     * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
338
+     */
339
+    private $rating_service;
340
+
341
+    /**
342
+     * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
343
+     *
344
+     * @since  3.10.0
345
+     * @access protected
346
+     * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
347
+     */
348
+    protected $post_to_jsonld_converter;
349
+
350
+    /**
351
+     * A {@link Wordlift_Configuration_Service} instance.
352
+     *
353
+     * @since  3.10.0
354
+     * @access protected
355
+     * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
356
+     */
357
+    protected $configuration_service;
358
+
359
+    /**
360
+     * A {@link Wordlift_Install_Service} instance.
361
+     *
362
+     * @since  3.18.0
363
+     * @access protected
364
+     * @var \Wordlift_Install_Service $install_service A {@link Wordlift_Install_Service} instance.
365
+     */
366
+    protected $install_service;
367
+
368
+    /**
369
+     * A {@link Wordlift_Entity_Type_Service} instance.
370
+     *
371
+     * @since  3.10.0
372
+     * @access protected
373
+     * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
374
+     */
375
+    protected $entity_type_service;
376
+
377
+    /**
378
+     * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
379
+     *
380
+     * @since  3.10.0
381
+     * @access protected
382
+     * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
383
+     */
384
+    protected $entity_post_to_jsonld_converter;
385
+
386
+    /**
387
+     * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
388
+     *
389
+     * @since  3.10.0
390
+     * @access protected
391
+     * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
392
+     */
393
+    protected $postid_to_jsonld_converter;
394
+
395
+    /**
396
+     * The {@link Wordlift_Admin_Status_Page} class.
397
+     *
398
+     * @since  3.9.8
399
+     * @access private
400
+     * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
401
+     */
402
+    private $status_page;
403
+
404
+    /**
405
+     * The {@link Wordlift_Category_Taxonomy_Service} instance.
406
+     *
407
+     * @since  3.11.0
408
+     * @access protected
409
+     * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
410
+     */
411
+    protected $category_taxonomy_service;
412
+
413
+    /**
414
+     * The {@link Wordlift_Entity_Page_Service} instance.
415
+     *
416
+     * @since  3.11.0
417
+     * @access protected
418
+     * @var \Wordlift_Entity_Page_Service $entity_page_service The {@link Wordlift_Entity_Page_Service} instance.
419
+     */
420
+    protected $entity_page_service;
421
+
422
+    /**
423
+     * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
424
+     *
425
+     * @since  3.11.0
426
+     * @access protected
427
+     * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
428
+     */
429
+    protected $settings_page_action_link;
430
+
431
+    /**
432
+     * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
433
+     *
434
+     * @since  3.11.0
435
+     * @access protected
436
+     * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
437
+     */
438
+    protected $publisher_ajax_adapter;
439
+
440
+    /**
441
+     * The {@link Wordlift_Admin_Input_Element} element renderer.
442
+     *
443
+     * @since  3.11.0
444
+     * @access protected
445
+     * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
446
+     */
447
+    protected $input_element;
448
+
449
+    /**
450
+     * The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
451
+     *
452
+     * @since  3.13.0
453
+     * @access protected
454
+     * @var \Wordlift_Admin_Radio_Input_Element $radio_input_element The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
455
+     */
456
+    protected $radio_input_element;
457
+
458
+    /**
459
+     * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
460
+     *
461
+     * @since  3.11.0
462
+     * @access protected
463
+     * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
464
+     */
465
+    protected $language_select_element;
466
+
467
+    /**
468
+     * The {@link Wordlift_Admin_Publisher_Element} element renderer.
469
+     *
470
+     * @since  3.11.0
471
+     * @access protected
472
+     * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
473
+     */
474
+    protected $publisher_element;
475
+
476
+    /**
477
+     * The {@link Wordlift_Admin_Select2_Element} element renderer.
478
+     *
479
+     * @since  3.11.0
480
+     * @access protected
481
+     * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
482
+     */
483
+    protected $select2_element;
484
+
485
+    /**
486
+     * The controller for the entity type list admin page
487
+     *
488
+     * @since  3.11.0
489
+     * @access private
490
+     * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
491
+     */
492
+    private $entity_type_admin_page;
493
+
494
+    /**
495
+     * The controller for the entity type settings admin page
496
+     *
497
+     * @since  3.11.0
498
+     * @access private
499
+     * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
500
+     */
501
+    private $entity_type_settings_admin_page;
502
+
503
+    /**
504
+     * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
505
+     *
506
+     * @since  3.11.0
507
+     * @access protected
508
+     * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
509
+     */
510
+    protected $related_entities_cloud_widget;
511
+
512
+    /**
513
+     * The {@link Wordlift_Admin_Author_Element} instance.
514
+     *
515
+     * @since  3.14.0
516
+     * @access protected
517
+     * @var \Wordlift_Admin_Author_Element $author_element The {@link Wordlift_Admin_Author_Element} instance.
518
+     */
519
+    protected $author_element;
520
+
521
+    /**
522
+     * The {@link Wordlift_Batch_Analysis_Service} instance.
523
+     *
524
+     * @since  3.14.0
525
+     * @access protected
526
+     * @var \Wordlift_Batch_Analysis_Service $batch_analysis_service The {@link Wordlift_Batch_Analysis_Service} instance.
527
+     */
528
+    protected $batch_analysis_service;
529
+
530
+    /**
531
+     * The {@link Wordlift_Sample_Data_Service} instance.
532
+     *
533
+     * @since  3.12.0
534
+     * @access protected
535
+     * @var \Wordlift_Sample_Data_Service $sample_data_service The {@link Wordlift_Sample_Data_Service} instance.
536
+     */
537
+    protected $sample_data_service;
538
+
539
+    /**
540
+     * The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
541
+     *
542
+     * @since  3.12.0
543
+     * @access protected
544
+     * @var \Wordlift_Sample_Data_Ajax_Adapter $sample_data_ajax_adapter The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
545
+     */
546
+    protected $sample_data_ajax_adapter;
547
+
548
+    /**
549
+     * The {@link Wordlift_Batch_Analysis_Adapter} instance.
550
+     *
551
+     * @since  3.14.2
552
+     * @access protected
553
+     * @var \Wordlift_Batch_Analysis_Adapter $batch_analysis_adapter The {@link Wordlift_Batch_Analysis_Adapter} instance.
554
+     */
555
+    private $batch_analysis_adapter;
556
+
557
+    /**
558
+     * The {@link Wordlift_Relation_Rebuild_Service} instance.
559
+     *
560
+     * @since  3.14.3
561
+     * @access private
562
+     * @var \Wordlift_Relation_Rebuild_Service $relation_rebuild_service The {@link Wordlift_Relation_Rebuild_Service} instance.
563
+     */
564
+    private $relation_rebuild_service;
565
+
566
+    /**
567
+     * The {@link Wordlift_Relation_Rebuild_Adapter} instance.
568
+     *
569
+     * @since  3.14.3
570
+     * @access private
571
+     * @var \Wordlift_Relation_Rebuild_Adapter $relation_rebuild_adapter The {@link Wordlift_Relation_Rebuild_Adapter} instance.
572
+     */
573
+    private $relation_rebuild_adapter;
574
+
575
+    /**
576
+     * The {@link Wordlift_Reference_Rebuild_Service} instance.
577
+     *
578
+     * @since  3.18.0
579
+     * @access private
580
+     * @var \Wordlift_Reference_Rebuild_Service $reference_rebuild_service The {@link Wordlift_Reference_Rebuild_Service} instance.
581
+     */
582
+    private $reference_rebuild_service;
583
+
584
+    /**
585
+     * The {@link Wordlift_Google_Analytics_Export_Service} instance.
586
+     *
587
+     * @since  3.16.0
588
+     * @access protected
589
+     * @var \Wordlift_Google_Analytics_Export_Service $google_analytics_export_service The {@link Wordlift_Google_Analytics_Export_Service} instance.
590
+     */
591
+    protected $google_analytics_export_service;
592
+
593
+    /**
594
+     * {@link Wordlift}'s singleton instance.
595
+     *
596
+     * @since  3.15.0
597
+     * @access protected
598
+     * @var \Wordlift_Entity_Type_Adapter $entity_type_adapter The {@link Wordlift_Entity_Type_Adapter} instance.
599
+     */
600
+    protected $entity_type_adapter;
601
+
602
+    /**
603
+     * The {@link Wordlift_Linked_Data_Service} instance.
604
+     *
605
+     * @since  3.15.0
606
+     * @access protected
607
+     * @var \Wordlift_Linked_Data_Service $linked_data_service The {@link Wordlift_Linked_Data_Service} instance.
608
+     */
609
+    protected $linked_data_service;
610
+
611
+    /**
612
+     * The {@link Wordlift_Storage_Factory} instance.
613
+     *
614
+     * @since  3.15.0
615
+     * @access protected
616
+     * @var \Wordlift_Storage_Factory $storage_factory The {@link Wordlift_Storage_Factory} instance.
617
+     */
618
+    protected $storage_factory;
619
+
620
+    /**
621
+     * The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
622
+     *
623
+     * @since  3.15.0
624
+     * @access protected
625
+     * @var \Wordlift_Sparql_Tuple_Rendition_Factory $rendition_factory The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
626
+     */
627
+    protected $rendition_factory;
628
+
629
+    /**
630
+     * The {@link Wordlift_Autocomplete_Service} instance.
631
+     *
632
+     * @since  3.15.0
633
+     * @access private
634
+     * @var \Wordlift_Autocomplete_Service $autocomplete_service The {@link Wordlift_Autocomplete_Service} instance.
635
+     */
636
+    private $autocomplete_service;
637
+
638
+    /**
639
+     * The {@link Wordlift_Autocomplete_Adapter} instance.
640
+     *
641
+     * @since  3.15.0
642
+     * @access private
643
+     * @var \Wordlift_Autocomplete_Adapter $autocomplete_adapter The {@link Wordlift_Autocomplete_Adapter} instance.
644
+     */
645
+    private $autocomplete_adapter;
646
+
647
+    /**
648
+     * The {@link Wordlift_Relation_Service} instance.
649
+     *
650
+     * @since  3.15.0
651
+     * @access protected
652
+     * @var \Wordlift_Relation_Service $relation_service The {@link Wordlift_Relation_Service} instance.
653
+     */
654
+    protected $relation_service;
655
+
656
+    /**
657
+     * The {@link Wordlift_Cached_Post_Converter} instance.
658
+     *
659
+     * @since  3.16.0
660
+     * @access protected
661
+     * @var  \Wordlift_Cached_Post_Converter $cached_postid_to_jsonld_converter The {@link Wordlift_Cached_Post_Converter} instance.
662
+     *
663
+     */
664
+    protected $cached_postid_to_jsonld_converter;
665
+
666
+    /**
667
+     * The {@link Wordlift_File_Cache_Service} instance.
668
+     *
669
+     * @since  3.16.0
670
+     * @access protected
671
+     * @var \Wordlift_File_Cache_Service $file_cache_service The {@link Wordlift_File_Cache_Service} instance.
672
+     */
673
+    protected $file_cache_service;
674
+
675
+    /**
676
+     * The {@link Wordlift_Entity_Uri_Service} instance.
677
+     *
678
+     * @since  3.16.3
679
+     * @access protected
680
+     * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
681
+     */
682
+    protected $entity_uri_service;
683
+
684
+    /**
685
+     * {@link Wordlift}'s singleton instance.
686
+     *
687
+     * @since  3.11.2
688
+     * @access private
689
+     * @var Wordlift $instance {@link Wordlift}'s singleton instance.
690
+     */
691
+    private static $instance;
692
+    //</editor-fold>
693
+
694
+    /**
695
+     * Define the core functionality of the plugin.
696
+     *
697
+     * Set the plugin name and the plugin version that can be used throughout the plugin.
698
+     * Load the dependencies, define the locale, and set the hooks for the admin area and
699
+     * the public-facing side of the site.
700
+     *
701
+     * @since    1.0.0
702
+     */
703
+    public function __construct() {
704
+
705
+        $this->plugin_name = 'wordlift';
706
+        $this->version     = '3.18.1';
707
+        $this->load_dependencies();
708
+        $this->set_locale();
709
+        $this->define_admin_hooks();
710
+        $this->define_public_hooks();
711
+
712
+        // If we're in `WP_CLI` load the related files.
713
+        if ( class_exists( 'WP_CLI' ) ) {
714
+            $this->load_cli_dependencies();
715
+        }
716
+
717
+        self::$instance = $this;
718
+
719
+    }
720
+
721
+    /**
722
+     * Get the singleton instance.
723
+     *
724
+     * @since 3.11.2
725
+     *
726
+     * @return Wordlift The {@link Wordlift} singleton instance.
727
+     */
728
+    public static function get_instance() {
729
+
730
+        return self::$instance;
731
+    }
732
+
733
+    /**
734
+     * Load the required dependencies for this plugin.
735
+     *
736
+     * Include the following files that make up the plugin:
737
+     *
738
+     * - Wordlift_Loader. Orchestrates the hooks of the plugin.
739
+     * - Wordlift_i18n. Defines internationalization functionality.
740
+     * - Wordlift_Admin. Defines all hooks for the admin area.
741
+     * - Wordlift_Public. Defines all hooks for the public side of the site.
742
+     *
743
+     * Create an instance of the loader which will be used to register the hooks
744
+     * with WordPress.
745
+     *
746
+     * @since    1.0.0
747
+     * @access   private
748
+     */
749
+    private function load_dependencies() {
750
+
751
+        /**
752
+         * The class responsible for orchestrating the actions and filters of the
753
+         * core plugin.
754
+         */
755
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
756
+
757
+        /**
758
+         * The class responsible for defining internationalization functionality
759
+         * of the plugin.
760
+         */
761
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
762
+
763
+        /**
764
+         * WordLift's supported languages.
765
+         */
766
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
767
+
768
+        /**
769
+         * Provide support functions to sanitize data.
770
+         */
771
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
772
+
773
+        /** Installs. */
774
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install.php';
775
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-service.php';
776
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-1-0-0.php';
777
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-10-0.php';
778
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-12-0.php';
779
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-14-0.php';
780
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-15-0.php';
781
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-3-18-0.php';
782
+
783
+        /** Services. */
784
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
785
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-http-api.php';
786
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
787
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
788
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
789
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
790
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
791
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-linked-data-service.php';
792
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-relation-service.php';
793
+
794
+        /**
795
+         * The Query builder.
796
+         */
797
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
798
+
799
+        /**
800
+         * The Schema service.
801
+         */
802
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
803
+
804
+        /**
805
+         * The schema:url property service.
806
+         */
807
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
808
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
809
+
810
+        /**
811
+         * The UI service.
812
+         */
813
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
814
+
815
+        /**
816
+         * The Thumbnail service.
817
+         */
818
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
819
+
820
+        /**
821
+         * The Entity Types Taxonomy service.
822
+         */
823
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-taxonomy-service.php';
824
+
825
+        /**
826
+         * The Entity service.
827
+         */
828
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-uri-service.php';
829
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
830
+
831
+        // Add the entity rating service.
832
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
833
+
834
+        /**
835
+         * The User service.
836
+         */
837
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
838
+
839
+        /**
840
+         * The Timeline service.
841
+         */
842
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
843
+
844
+        /**
845
+         * The Topic Taxonomy service.
846
+         */
847
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
848
+
849
+        /**
850
+         * The SPARQL service.
851
+         */
852
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
853
+
854
+        /**
855
+         * The WordLift import service.
856
+         */
857
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
858
+
859
+        /**
860
+         * The WordLift URI service.
861
+         */
862
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
863
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
864
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-service.php';
865
+
866
+        /**
867
+         * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
868
+         */
869
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-listable.php';
870
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-rebuild-service.php';
871
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-reference-rebuild-service.php';
872
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-service.php';
873
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-adapter.php';
874
+
875
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
876
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
877
+
878
+        /**
879
+         * Load the converters.
880
+         */
881
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
882
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
883
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
884
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
885
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
886
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-website-converter.php';
887
+
888
+        /**
889
+         * Load cache-related files.
890
+         */
891
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/cache/require.php';
892
+
893
+        /**
894
+         * Load the content filter.
895
+         */
896
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
897
+
898
+        /*
899 899
 		 * Load the excerpt helper.
900 900
 		 */
901
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-excerpt-helper.php';
902
-
903
-		/**
904
-		 * Load the JSON-LD service to publish entities using JSON-LD.s
905
-		 *
906
-		 * @since 3.8.0
907
-		 */
908
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
909
-
910
-		// The Publisher Service and the AJAX adapter.
911
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
912
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
913
-
914
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-adapter.php';
915
-
916
-		/**
917
-		 * Load the WordLift key validation service.
918
-		 */
919
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
920
-
921
-		// Load the `Wordlift_Category_Taxonomy_Service` class definition.
922
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
923
-
924
-		// Load the `Wordlift_Entity_Page_Service` class definition.
925
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-page-service.php';
926
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-sql-helper.php';
927
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-service.php';
928
-
929
-		/** Linked Data. */
930
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage.php';
931
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-storage.php';
932
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-property-storage.php';
933
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-taxonomy-storage.php';
934
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-schema-class-storage.php';
935
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-author-storage.php';
936
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-uri-storage.php';
937
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-image-storage.php';
938
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-related-storage.php';
939
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-url-property-storage.php';
940
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage-factory.php';
941
-
942
-		/** Linked Data Rendition. */
943
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/intf-wordlift-sparql-tuple-rendition.php';
944
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-default-sparql-tuple-rendition.php';
945
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-address-sparql-tuple-rendition.php';
946
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-sparql-tuple-rendition-factory.php';
947
-
948
-		/** Services. */
949
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-google-analytics-export-service.php';
950
-
951
-		/** Adapters. */
952
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-tinymce-adapter.php';
953
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-newrelic-adapter.php';
954
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-ajax-adapter.php';
955
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-adapter.php';
956
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-adapter.php';
957
-
958
-		/** Async Tasks. */
959
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-async-task.php';
960
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-sparql-query-async-task.php';
961
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-batch-analysis-request-async-task.php';
962
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-batch-analysis-complete-async-task.php';
963
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-push-references-async-task.php';
964
-
965
-		/** Async Tasks. */
966
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-service.php';
967
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-adapter.php';
968
-
969
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-remote-image-service.php';
970
-
971
-		/**
972
-		 * The class responsible for defining all actions that occur in the admin area.
973
-		 */
974
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
975
-
976
-		/**
977
-		 * The class to customize the entity list admin page.
978
-		 */
979
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
980
-
981
-		/**
982
-		 * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
983
-		 */
984
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
985
-
986
-		/**
987
-		 * The Notice service.
988
-		 */
989
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
990
-
991
-		/**
992
-		 * The PrimaShop adapter.
993
-		 */
994
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
995
-
996
-		/**
997
-		 * The WordLift Dashboard service.
998
-		 */
999
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
1000
-
1001
-		/**
1002
-		 * The admin 'Install wizard' page.
1003
-		 */
1004
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
1005
-
1006
-		/**
1007
-		 * The WordLift entity type list admin page controller.
1008
-		 */
1009
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
1010
-
1011
-		/**
1012
-		 * The WordLift entity type settings admin page controller.
1013
-		 */
1014
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
1015
-
1016
-		/**
1017
-		 * The admin 'Download Your Data' page.
1018
-		 */
1019
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
1020
-
1021
-		/**
1022
-		 * The admin 'WordLift Settings' page.
1023
-		 */
1024
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/intf-wordlift-admin-element.php';
1025
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-element.php';
1026
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-radio-element.php';
1027
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-select2-element.php';
1028
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-language-select-element.php';
1029
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-tabs-element.php';
1030
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-author-element.php';
1031
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-publisher-element.php';
1032
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
1033
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
1034
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-batch-analysis-page.php';
1035
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
1036
-
1037
-		/** Admin Pages */
1038
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
1039
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-user-profile-page.php';
1040
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
1041
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-admin-service.php';
1042
-
1043
-		/**
1044
-		 * The class responsible for defining all actions that occur in the public-facing
1045
-		 * side of the site.
1046
-		 */
1047
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
1048
-
1049
-		/**
1050
-		 * The shortcode abstract class.
1051
-		 */
1052
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
1053
-
1054
-		/**
1055
-		 * The Timeline shortcode.
1056
-		 */
1057
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
1058
-
1059
-		/**
1060
-		 * The Navigator shortcode.
1061
-		 */
1062
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
1063
-
1064
-		/**
1065
-		 * The chord shortcode.
1066
-		 */
1067
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
1068
-
1069
-		/**
1070
-		 * The geomap shortcode.
1071
-		 */
1072
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
1073
-
1074
-		/**
1075
-		 * The entity cloud shortcode.
1076
-		 */
1077
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-shortcode.php';
1078
-
1079
-		/**
1080
-		 * The entity glossary shortcode.
1081
-		 */
1082
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-alphabet-service.php';
1083
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-vocabulary-shortcode.php';
1084
-
1085
-		/**
1086
-		 * The ShareThis service.
1087
-		 */
1088
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
1089
-
1090
-		/**
1091
-		 * The SEO service.
1092
-		 */
1093
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
1094
-
1095
-		/**
1096
-		 * The AMP service.
1097
-		 */
1098
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-amp-service.php';
1099
-
1100
-		/** Widgets */
1101
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
1102
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
1103
-
1104
-		$this->loader = new Wordlift_Loader();
1105
-
1106
-		// Instantiate a global logger.
1107
-		global $wl_logger;
1108
-		$wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
1109
-
1110
-		// Load the `wl-api` end-point.
1111
-		new Wordlift_Http_Api();
1112
-
1113
-		// Load the Install Service.
1114
-		$this->install_service = new Wordlift_Install_Service();
1115
-
1116
-		/** Services. */
1117
-		// Create the configuration service.
1118
-		$this->configuration_service = new Wordlift_Configuration_Service();
1119
-
1120
-		// Create an entity type service instance. It'll be later bound to the init action.
1121
-		$this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
1122
-
1123
-		// Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
1124
-		$this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
1125
-
1126
-		// Create an instance of the UI service.
1127
-		$this->ui_service = new Wordlift_UI_Service();
1128
-
1129
-		// Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
1130
-		$this->thumbnail_service = new Wordlift_Thumbnail_Service();
1131
-
1132
-		$this->sparql_service        = new Wordlift_Sparql_Service();
1133
-		$schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
1134
-		$this->notice_service        = new Wordlift_Notice_Service();
1135
-		$this->relation_service      = new Wordlift_Relation_Service();
1136
-
1137
-		$entity_uri_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'entity_uri/' );
1138
-		$this->file_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'converter/' );
1139
-		$this->entity_uri_service = new Wordlift_Cached_Entity_Uri_Service( $this->configuration_service, $entity_uri_cache_service );
1140
-		$this->entity_service     = new Wordlift_Entity_Service( $this->ui_service, $this->relation_service, $this->entity_uri_service );
1141
-		$this->user_service       = new Wordlift_User_Service( $this->sparql_service, $this->entity_service );
1142
-
1143
-		// Instantiate the JSON-LD service.
1144
-		$property_getter = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1145
-
1146
-		/** Linked Data. */
1147
-		$this->storage_factory   = new Wordlift_Storage_Factory( $this->entity_service, $this->user_service, $property_getter );
1148
-		$this->rendition_factory = new Wordlift_Sparql_Tuple_Rendition_Factory( $this->entity_service );
1149
-
1150
-		$this->schema_service = new Wordlift_Schema_Service( $this->storage_factory, $this->rendition_factory, $this->configuration_service );
1151
-
1152
-		// Create a new instance of the Redirect service.
1153
-		$this->redirect_service    = new Wordlift_Redirect_Service( $this->entity_service );
1154
-		$this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
1155
-		$this->linked_data_service = new Wordlift_Linked_Data_Service( $this->entity_service, $this->entity_type_service, $this->schema_service, $this->sparql_service );
1156
-
1157
-		// Create a new instance of the Timeline service and Timeline shortcode.
1158
-		$this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service, $this->entity_type_service );
1159
-
1160
-		$this->batch_analysis_service = new Wordlift_Batch_Analysis_Service( $this, $this->configuration_service, $this->file_cache_service );
901
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-excerpt-helper.php';
902
+
903
+        /**
904
+         * Load the JSON-LD service to publish entities using JSON-LD.s
905
+         *
906
+         * @since 3.8.0
907
+         */
908
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
909
+
910
+        // The Publisher Service and the AJAX adapter.
911
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
912
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
913
+
914
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-adapter.php';
915
+
916
+        /**
917
+         * Load the WordLift key validation service.
918
+         */
919
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
920
+
921
+        // Load the `Wordlift_Category_Taxonomy_Service` class definition.
922
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
923
+
924
+        // Load the `Wordlift_Entity_Page_Service` class definition.
925
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-page-service.php';
926
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-sql-helper.php';
927
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-service.php';
928
+
929
+        /** Linked Data. */
930
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage.php';
931
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-storage.php';
932
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-property-storage.php';
933
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-taxonomy-storage.php';
934
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-schema-class-storage.php';
935
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-author-storage.php';
936
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-uri-storage.php';
937
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-image-storage.php';
938
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-related-storage.php';
939
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-url-property-storage.php';
940
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage-factory.php';
941
+
942
+        /** Linked Data Rendition. */
943
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/intf-wordlift-sparql-tuple-rendition.php';
944
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-default-sparql-tuple-rendition.php';
945
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-address-sparql-tuple-rendition.php';
946
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-sparql-tuple-rendition-factory.php';
947
+
948
+        /** Services. */
949
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-google-analytics-export-service.php';
950
+
951
+        /** Adapters. */
952
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-tinymce-adapter.php';
953
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-newrelic-adapter.php';
954
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-ajax-adapter.php';
955
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-adapter.php';
956
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch-analysis/class-wordlift-batch-analysis-adapter.php';
957
+
958
+        /** Async Tasks. */
959
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-async-task.php';
960
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-sparql-query-async-task.php';
961
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-batch-analysis-request-async-task.php';
962
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-batch-analysis-complete-async-task.php';
963
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-push-references-async-task.php';
964
+
965
+        /** Async Tasks. */
966
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-service.php';
967
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-adapter.php';
968
+
969
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-remote-image-service.php';
970
+
971
+        /**
972
+         * The class responsible for defining all actions that occur in the admin area.
973
+         */
974
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
975
+
976
+        /**
977
+         * The class to customize the entity list admin page.
978
+         */
979
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
980
+
981
+        /**
982
+         * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
983
+         */
984
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
985
+
986
+        /**
987
+         * The Notice service.
988
+         */
989
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
990
+
991
+        /**
992
+         * The PrimaShop adapter.
993
+         */
994
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
995
+
996
+        /**
997
+         * The WordLift Dashboard service.
998
+         */
999
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
1000
+
1001
+        /**
1002
+         * The admin 'Install wizard' page.
1003
+         */
1004
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
1005
+
1006
+        /**
1007
+         * The WordLift entity type list admin page controller.
1008
+         */
1009
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
1010
+
1011
+        /**
1012
+         * The WordLift entity type settings admin page controller.
1013
+         */
1014
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
1015
+
1016
+        /**
1017
+         * The admin 'Download Your Data' page.
1018
+         */
1019
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
1020
+
1021
+        /**
1022
+         * The admin 'WordLift Settings' page.
1023
+         */
1024
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/intf-wordlift-admin-element.php';
1025
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-element.php';
1026
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-radio-element.php';
1027
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-select2-element.php';
1028
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-language-select-element.php';
1029
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-tabs-element.php';
1030
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-author-element.php';
1031
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-publisher-element.php';
1032
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
1033
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
1034
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-batch-analysis-page.php';
1035
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
1036
+
1037
+        /** Admin Pages */
1038
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
1039
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-user-profile-page.php';
1040
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
1041
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-admin-service.php';
1042
+
1043
+        /**
1044
+         * The class responsible for defining all actions that occur in the public-facing
1045
+         * side of the site.
1046
+         */
1047
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
1048
+
1049
+        /**
1050
+         * The shortcode abstract class.
1051
+         */
1052
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
1053
+
1054
+        /**
1055
+         * The Timeline shortcode.
1056
+         */
1057
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
1058
+
1059
+        /**
1060
+         * The Navigator shortcode.
1061
+         */
1062
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
1063
+
1064
+        /**
1065
+         * The chord shortcode.
1066
+         */
1067
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
1068
+
1069
+        /**
1070
+         * The geomap shortcode.
1071
+         */
1072
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
1073
+
1074
+        /**
1075
+         * The entity cloud shortcode.
1076
+         */
1077
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-shortcode.php';
1078
+
1079
+        /**
1080
+         * The entity glossary shortcode.
1081
+         */
1082
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-alphabet-service.php';
1083
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-vocabulary-shortcode.php';
1084
+
1085
+        /**
1086
+         * The ShareThis service.
1087
+         */
1088
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
1089
+
1090
+        /**
1091
+         * The SEO service.
1092
+         */
1093
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
1094
+
1095
+        /**
1096
+         * The AMP service.
1097
+         */
1098
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-amp-service.php';
1099
+
1100
+        /** Widgets */
1101
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
1102
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
1103
+
1104
+        $this->loader = new Wordlift_Loader();
1105
+
1106
+        // Instantiate a global logger.
1107
+        global $wl_logger;
1108
+        $wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
1109
+
1110
+        // Load the `wl-api` end-point.
1111
+        new Wordlift_Http_Api();
1112
+
1113
+        // Load the Install Service.
1114
+        $this->install_service = new Wordlift_Install_Service();
1115
+
1116
+        /** Services. */
1117
+        // Create the configuration service.
1118
+        $this->configuration_service = new Wordlift_Configuration_Service();
1119
+
1120
+        // Create an entity type service instance. It'll be later bound to the init action.
1121
+        $this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
1122
+
1123
+        // Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
1124
+        $this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
1125
+
1126
+        // Create an instance of the UI service.
1127
+        $this->ui_service = new Wordlift_UI_Service();
1128
+
1129
+        // Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
1130
+        $this->thumbnail_service = new Wordlift_Thumbnail_Service();
1131
+
1132
+        $this->sparql_service        = new Wordlift_Sparql_Service();
1133
+        $schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
1134
+        $this->notice_service        = new Wordlift_Notice_Service();
1135
+        $this->relation_service      = new Wordlift_Relation_Service();
1161 1136
 
1162
-		$this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
1137
+        $entity_uri_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'entity_uri/' );
1138
+        $this->file_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'converter/' );
1139
+        $this->entity_uri_service = new Wordlift_Cached_Entity_Uri_Service( $this->configuration_service, $entity_uri_cache_service );
1140
+        $this->entity_service     = new Wordlift_Entity_Service( $this->ui_service, $this->relation_service, $this->entity_uri_service );
1141
+        $this->user_service       = new Wordlift_User_Service( $this->sparql_service, $this->entity_service );
1163 1142
 
1164
-		$this->topic_taxonomy_service        = new Wordlift_Topic_Taxonomy_Service();
1165
-		$this->entity_types_taxonomy_service = new Wordlift_Entity_Type_Taxonomy_Service();
1143
+        // Instantiate the JSON-LD service.
1144
+        $property_getter = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1145
+
1146
+        /** Linked Data. */
1147
+        $this->storage_factory   = new Wordlift_Storage_Factory( $this->entity_service, $this->user_service, $property_getter );
1148
+        $this->rendition_factory = new Wordlift_Sparql_Tuple_Rendition_Factory( $this->entity_service );
1149
+
1150
+        $this->schema_service = new Wordlift_Schema_Service( $this->storage_factory, $this->rendition_factory, $this->configuration_service );
1151
+
1152
+        // Create a new instance of the Redirect service.
1153
+        $this->redirect_service    = new Wordlift_Redirect_Service( $this->entity_service );
1154
+        $this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
1155
+        $this->linked_data_service = new Wordlift_Linked_Data_Service( $this->entity_service, $this->entity_type_service, $this->schema_service, $this->sparql_service );
1166 1156
 
1167
-		// Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
1168
-		$this->sharethis_service = new Wordlift_ShareThis_Service();
1157
+        // Create a new instance of the Timeline service and Timeline shortcode.
1158
+        $this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service, $this->entity_type_service );
1159
+
1160
+        $this->batch_analysis_service = new Wordlift_Batch_Analysis_Service( $this, $this->configuration_service, $this->file_cache_service );
1161
+
1162
+        $this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
1169 1163
 
1170
-		// Create an instance of the PrimaShop adapter.
1171
-		$this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
1164
+        $this->topic_taxonomy_service        = new Wordlift_Topic_Taxonomy_Service();
1165
+        $this->entity_types_taxonomy_service = new Wordlift_Entity_Type_Taxonomy_Service();
1166
+
1167
+        // Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
1168
+        $this->sharethis_service = new Wordlift_ShareThis_Service();
1169
+
1170
+        // Create an instance of the PrimaShop adapter.
1171
+        $this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
1172 1172
 
1173
-		// Create an import service instance to hook later to WP's import function.
1174
-		$this->import_service = new Wordlift_Import_Service( $this->entity_post_type_service, $this->entity_service, $this->schema_service, $this->sparql_service, $this->configuration_service->get_dataset_uri() );
1173
+        // Create an import service instance to hook later to WP's import function.
1174
+        $this->import_service = new Wordlift_Import_Service( $this->entity_post_type_service, $this->entity_service, $this->schema_service, $this->sparql_service, $this->configuration_service->get_dataset_uri() );
1175 1175
 
1176
-		$uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
1176
+        $uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
1177 1177
 
1178
-		// Create the entity rating service.
1179
-		$this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
1178
+        // Create the entity rating service.
1179
+        $this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
1180 1180
 
1181
-		// Create entity list customization (wp-admin/edit.php).
1182
-		$this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
1181
+        // Create entity list customization (wp-admin/edit.php).
1182
+        $this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
1183 1183
 
1184
-		// Create a new instance of the Redirect service.
1185
-		$this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service, $this->entity_service );
1184
+        // Create a new instance of the Redirect service.
1185
+        $this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service, $this->entity_service );
1186 1186
 
1187
-		// Create an instance of the Publisher Service and the AJAX Adapter.
1188
-		$publisher_service      = new Wordlift_Publisher_Service();
1189
-		$this->property_factory = new Wordlift_Property_Factory( $schema_url_property_service );
1190
-		$this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
1187
+        // Create an instance of the Publisher Service and the AJAX Adapter.
1188
+        $publisher_service      = new Wordlift_Publisher_Service();
1189
+        $this->property_factory = new Wordlift_Property_Factory( $schema_url_property_service );
1190
+        $this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
1191 1191
 
1192
-		$attachment_service = new Wordlift_Attachment_Service();
1192
+        $attachment_service = new Wordlift_Attachment_Service();
1193 1193
 
1194
-		// Instantiate the JSON-LD service.
1195
-		$property_getter                         = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1196
-		$this->entity_post_to_jsonld_converter   = new Wordlift_Entity_Post_To_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $property_getter );
1197
-		$this->post_to_jsonld_converter          = new Wordlift_Post_To_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1198
-		$this->postid_to_jsonld_converter        = new Wordlift_Postid_To_Jsonld_Converter( $this->entity_service, $this->entity_post_to_jsonld_converter, $this->post_to_jsonld_converter );
1199
-		$this->jsonld_website_converter          = new Wordlift_Website_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1200
-		$this->cached_postid_to_jsonld_converter = new Wordlift_Cached_Post_Converter( $this->postid_to_jsonld_converter, $this->file_cache_service, $this->configuration_service );
1201
-		$this->jsonld_service                    = new Wordlift_Jsonld_Service( $this->entity_service, $this->cached_postid_to_jsonld_converter, $this->jsonld_website_converter );
1194
+        // Instantiate the JSON-LD service.
1195
+        $property_getter                         = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1196
+        $this->entity_post_to_jsonld_converter   = new Wordlift_Entity_Post_To_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $property_getter );
1197
+        $this->post_to_jsonld_converter          = new Wordlift_Post_To_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1198
+        $this->postid_to_jsonld_converter        = new Wordlift_Postid_To_Jsonld_Converter( $this->entity_service, $this->entity_post_to_jsonld_converter, $this->post_to_jsonld_converter );
1199
+        $this->jsonld_website_converter          = new Wordlift_Website_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1200
+        $this->cached_postid_to_jsonld_converter = new Wordlift_Cached_Post_Converter( $this->postid_to_jsonld_converter, $this->file_cache_service, $this->configuration_service );
1201
+        $this->jsonld_service                    = new Wordlift_Jsonld_Service( $this->entity_service, $this->cached_postid_to_jsonld_converter, $this->jsonld_website_converter );
1202 1202
 
1203 1203
 
1204
-		$this->key_validation_service     = new Wordlift_Key_Validation_Service( $this->configuration_service );
1205
-		$this->content_filter_service     = new Wordlift_Content_Filter_Service( $this->entity_service, $this->configuration_service, $this->entity_uri_service );
1206
-		$this->relation_rebuild_service   = new Wordlift_Relation_Rebuild_Service( $this->content_filter_service, $this->entity_service );
1207
-		$this->sample_data_service        = new Wordlift_Sample_Data_Service( $this->entity_type_service, $this->configuration_service, $this->user_service );
1208
-		$this->sample_data_ajax_adapter   = new Wordlift_Sample_Data_Ajax_Adapter( $this->sample_data_service );
1209
-		$this->reference_rebuild_service  = new Wordlift_Reference_Rebuild_Service( $this->linked_data_service, $this->entity_service, $this->relation_service );
1204
+        $this->key_validation_service     = new Wordlift_Key_Validation_Service( $this->configuration_service );
1205
+        $this->content_filter_service     = new Wordlift_Content_Filter_Service( $this->entity_service, $this->configuration_service, $this->entity_uri_service );
1206
+        $this->relation_rebuild_service   = new Wordlift_Relation_Rebuild_Service( $this->content_filter_service, $this->entity_service );
1207
+        $this->sample_data_service        = new Wordlift_Sample_Data_Service( $this->entity_type_service, $this->configuration_service, $this->user_service );
1208
+        $this->sample_data_ajax_adapter   = new Wordlift_Sample_Data_Ajax_Adapter( $this->sample_data_service );
1209
+        $this->reference_rebuild_service  = new Wordlift_Reference_Rebuild_Service( $this->linked_data_service, $this->entity_service, $this->relation_service );
1210 1210
 
1211
-		// Initialize the shortcodes.
1212
-		new Wordlift_Navigator_Shortcode();
1213
-		new Wordlift_Chord_Shortcode();
1214
-		new Wordlift_Geomap_Shortcode();
1215
-		new Wordlift_Timeline_Shortcode();
1216
-		new Wordlift_Related_Entities_Cloud_Shortcode( $this->relation_service );
1217
-		new Wordlift_Vocabulary_Shortcode( $this->configuration_service );
1211
+        // Initialize the shortcodes.
1212
+        new Wordlift_Navigator_Shortcode();
1213
+        new Wordlift_Chord_Shortcode();
1214
+        new Wordlift_Geomap_Shortcode();
1215
+        new Wordlift_Timeline_Shortcode();
1216
+        new Wordlift_Related_Entities_Cloud_Shortcode( $this->relation_service );
1217
+        new Wordlift_Vocabulary_Shortcode( $this->configuration_service );
1218 1218
 
1219
-		// Initialize the SEO service.
1220
-		new Wordlift_Seo_Service();
1219
+        // Initialize the SEO service.
1220
+        new Wordlift_Seo_Service();
1221 1221
 
1222
-		// Initialize the AMP service.
1223
-		new Wordlift_AMP_Service();
1222
+        // Initialize the AMP service.
1223
+        new Wordlift_AMP_Service();
1224 1224
 
1225
-		/** Services. */
1226
-		$this->google_analytics_export_service = new Wordlift_Google_Analytics_Export_Service();
1225
+        /** Services. */
1226
+        $this->google_analytics_export_service = new Wordlift_Google_Analytics_Export_Service();
1227 1227
 
1228
-		/** Adapters. */
1229
-		$this->entity_type_adapter      = new Wordlift_Entity_Type_Adapter( $this->entity_type_service );
1230
-		$this->publisher_ajax_adapter   = new Wordlift_Publisher_Ajax_Adapter( $publisher_service );
1231
-		$this->tinymce_adapter          = new Wordlift_Tinymce_Adapter( $this );
1232
-		$this->batch_analysis_adapter   = new Wordlift_Batch_Analysis_Adapter( $this->batch_analysis_service );
1233
-		$this->relation_rebuild_adapter = new Wordlift_Relation_Rebuild_Adapter( $this->relation_rebuild_service );
1234
-
1235
-		// Create a Rebuild Service instance, which we'll later bound to an ajax call.
1236
-		$this->rebuild_service = new Wordlift_Rebuild_Service(
1237
-			$this->sparql_service,
1238
-			$uri_service,
1239
-			$this->reference_rebuild_service
1240
-		);
1241
-
1242
-		/** Async Tasks. */
1243
-		new Wordlift_Sparql_Query_Async_Task();
1244
-		new Wordlift_Batch_Analysis_Request_Async_Task();
1245
-		new Wordlift_Batch_Analysis_Complete_Async_Task();
1246
-		new Wordlift_Batch_Analysis_Complete_Async_Task();
1247
-		new Wordlift_Push_References_Async_Task();
1248
-
1249
-		/** WL Autocomplete. */
1250
-		$this->autocomplete_service = new Wordlift_Autocomplete_Service( $this->configuration_service );
1251
-		$this->autocomplete_adapter = new Wordlift_Autocomplete_Adapter( $this->autocomplete_service );
1252
-
1253
-		/** WordPress Admin UI. */
1254
-
1255
-		// UI elements.
1256
-		$this->input_element           = new Wordlift_Admin_Input_Element();
1257
-		$this->radio_input_element     = new Wordlift_Admin_Radio_Input_Element();
1258
-		$this->select2_element         = new Wordlift_Admin_Select2_Element();
1259
-		$this->language_select_element = new Wordlift_Admin_Language_Select_Element();
1260
-		$tabs_element                  = new Wordlift_Admin_Tabs_Element();
1261
-		$this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $publisher_service, $tabs_element, $this->select2_element );
1262
-		$this->author_element          = new Wordlift_Admin_Author_Element( $publisher_service, $this->select2_element );
1263
-
1264
-		$this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->publisher_element, $this->radio_input_element );
1265
-		$this->batch_analysis_page       = new Wordlift_Batch_Analysis_Page( $this->batch_analysis_service );
1266
-		$this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
1267
-
1268
-		// Pages.
1269
-		new Wordlift_Admin_Post_Edit_Page( $this );
1270
-		new Wordlift_Entity_Type_Admin_Service();
1271
-
1272
-		// create an instance of the entity type list admin page controller.
1273
-		$this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
1274
-
1275
-		// create an instance of the entity type etting admin page controller.
1276
-		$this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
1277
-
1278
-		/** Widgets */
1279
-		$this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
1280
-
1281
-		/* WordPress Admin. */
1282
-		$this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
1283
-		$this->status_page             = new Wordlift_Admin_Status_Page( $this->entity_service, $this->sparql_service );
1284
-
1285
-		// Create an instance of the install wizard.
1286
-		$this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service );
1287
-
1288
-		$this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
1289
-
1290
-		// User Profile.
1291
-		new Wordlift_Admin_User_Profile_Page( $this->author_element, $this->user_service );
1292
-
1293
-		$this->entity_page_service = new Wordlift_Entity_Page_Service();
1294
-
1295
-		// Load the debug service if WP is in debug mode.
1296
-		if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
1297
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
1298
-			new Wordlift_Debug_Service( $this->entity_service, $uri_service );
1299
-		}
1300
-
1301
-		// Remote Image Service.
1302
-		new Wordlift_Remote_Image_Service();
1303
-	}
1304
-
1305
-	/**
1306
-	 * Define the locale for this plugin for internationalization.
1307
-	 *
1308
-	 * Uses the Wordlift_i18n class in order to set the domain and to register the hook
1309
-	 * with WordPress.
1310
-	 *
1311
-	 * @since    1.0.0
1312
-	 * @access   private
1313
-	 */
1314
-	private function set_locale() {
1315
-
1316
-		$plugin_i18n = new Wordlift_i18n();
1317
-		$plugin_i18n->set_domain( $this->get_plugin_name() );
1318
-
1319
-		$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
1320
-
1321
-	}
1322
-
1323
-	/**
1324
-	 * Register all of the hooks related to the admin area functionality
1325
-	 * of the plugin.
1326
-	 *
1327
-	 * @since    1.0.0
1328
-	 * @access   private
1329
-	 */
1330
-	private function define_admin_hooks() {
1331
-
1332
-		$plugin_admin = new Wordlift_Admin(
1333
-			$this->get_plugin_name(),
1334
-			$this->get_version(),
1335
-			$this->configuration_service,
1336
-			$this->notice_service,
1337
-			$this->user_service
1338
-		);
1339
-
1340
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
1341
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
1342
-
1343
-		// Hook the init action to taxonomy services.
1344
-		$this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
1345
-		$this->loader->add_action( 'init', $this->entity_types_taxonomy_service, 'init', 0 );
1346
-
1347
-		// Hook the deleted_post_meta action to the Thumbnail service.
1348
-		$this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
1349
-
1350
-		// Hook the added_post_meta action to the Thumbnail service.
1351
-		$this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1352
-
1353
-		// Hook the updated_post_meta action to the Thumbnail service.
1354
-		$this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1355
-
1356
-		// Hook the AJAX wl_timeline action to the Timeline service.
1357
-		$this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1358
-
1359
-		// Register custom allowed redirect hosts.
1360
-		$this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
1361
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1362
-		$this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
1363
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1364
-		$this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
1365
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1366
-		$this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
1367
-
1368
-		// Hook save_post to the entity service to update custom fields (such as alternate labels).
1369
-		// We have a priority of 9 because we want to be executed before data is sent to Redlink.
1370
-		$this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
1371
-		$this->loader->add_action( 'save_post', $this->rating_service, 'set_rating_for', 20, 1 );
1372
-
1373
-		$this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
1374
-		$this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
1375
-
1376
-		// Entity listing customization (wp-admin/edit.php)
1377
-		// Add custom columns.
1378
-		$this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
1379
-		// no explicit entity as it prevents handling of other post types.
1380
-		$this->loader->add_filter( 'manage_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
1381
-		// Add 4W selection.
1382
-		$this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
1383
-		$this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
1384
-		$this->loader->add_action( 'pre_get_posts', $this->entity_list_service, 'pre_get_posts' );
1385
-		$this->loader->add_action( 'load-edit.php', $this->entity_list_service, 'load_edit' );
1386
-		$this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
1387
-
1388
-		// Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
1389
-		// entities.
1390
-		$this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
1391
-
1392
-		// Filter imported post meta.
1393
-		$this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
1394
-
1395
-		// Notify the import service when an import starts and ends.
1396
-		$this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1397
-		$this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
1398
-
1399
-		// Hook the AJAX wl_rebuild action to the Rebuild Service.
1400
-		$this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1401
-		$this->loader->add_action( 'wp_ajax_wl_rebuild_references', $this->reference_rebuild_service, 'rebuild' );
1402
-
1403
-		// Hook the menu to the Download Your Data page.
1404
-		$this->loader->add_action( 'admin_menu', $this->download_your_data_page, 'admin_menu', 100, 0 );
1405
-		$this->loader->add_action( 'admin_menu', $this->status_page, 'admin_menu', 100, 0 );
1406
-		$this->loader->add_action( 'admin_menu', $this->entity_type_settings_admin_page, 'admin_menu', 100, 0 );
1407
-
1408
-		// Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1409
-		$this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1410
-
1411
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1412
-		$this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1413
-
1414
-		// Hook the AJAX wl_validate_key action to the Key Validation service.
1415
-		$this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1416
-
1417
-		// Hook the `admin_init` function to the Admin Setup.
1418
-		$this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1419
-
1420
-		// Hook the admin_init to the settings page.
1421
-		$this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1422
-
1423
-		// Hook the menu creation on the general wordlift menu creation.
1424
-		$this->loader->add_action( 'wl_admin_menu', $this->settings_page, 'admin_menu', 10, 2 );
1425
-		if ( defined( 'WORDLIFT_BATCH' ) && WORDLIFT_BATCH ) {
1426
-			// Add the functionality only if a flag is set in wp-config.php .
1427
-			$this->loader->add_action( 'wl_admin_menu', $this->batch_analysis_page, 'admin_menu', 10, 2 );
1428
-		}
1429
-
1430
-		// Hook key update.
1431
-		$this->loader->add_action( 'pre_update_option_wl_general_settings', $this->configuration_service, 'maybe_update_dataset_uri', 10, 2 );
1432
-		$this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1433
-
1434
-		// Add additional action links to the WordLift plugin in the plugins page.
1435
-		$this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1436
-
1437
-		// Hook the AJAX `wl_publisher` action name.
1438
-		$this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1439
-
1440
-		// Hook row actions for the entity type list admin.
1441
-		$this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1442
-
1443
-		/** Ajax actions. */
1444
-		$this->loader->add_action( 'wp_ajax_wl_google_analytics_export', $this->google_analytics_export_service, 'export' );
1445
-
1446
-		// Hook capabilities manipulation to allow access to entity type admin
1447
-		// page  on WordPress versions before 4.7.
1448
-		global $wp_version;
1449
-		if ( version_compare( $wp_version, '4.7', '<' ) ) {
1450
-			$this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'enable_admin_access_pre_47', 10, 4 );
1451
-		}
1452
-
1453
-		$this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1454
-
1455
-		/** Adapters. */
1456
-		$this->loader->add_filter( 'mce_external_plugins', $this->tinymce_adapter, 'mce_external_plugins', 10, 1 );
1457
-		$this->loader->add_action( 'wp_ajax_wl_batch_analysis_submit', $this->batch_analysis_adapter, 'submit' );
1458
-		$this->loader->add_action( 'wp_ajax_wl_batch_analysis_submit_posts', $this->batch_analysis_adapter, 'submit_posts' );
1459
-		$this->loader->add_action( 'wp_ajax_wl_batch_analysis_cancel', $this->batch_analysis_adapter, 'cancel' );
1460
-		$this->loader->add_action( 'wp_ajax_wl_batch_analysis_clear_warning', $this->batch_analysis_adapter, 'clear_warning' );
1461
-		$this->loader->add_action( 'wp_ajax_wl_relation_rebuild_process_all', $this->relation_rebuild_adapter, 'process_all' );
1462
-
1463
-		$this->loader->add_action( 'wp_ajax_wl_sample_data_create', $this->sample_data_ajax_adapter, 'create' );
1464
-		$this->loader->add_action( 'wp_ajax_wl_sample_data_delete', $this->sample_data_ajax_adapter, 'delete' );
1465
-
1466
-
1467
-		$this->loader->add_action( 'update_user_metadata', $this->user_service, 'update_user_metadata', 10, 5 );
1468
-		$this->loader->add_action( 'delete_user_metadata', $this->user_service, 'delete_user_metadata', 10, 5 );
1469
-
1470
-		// Handle the autocomplete request.
1471
-		add_action( 'wp_ajax_wl_autocomplete', array(
1472
-			$this->autocomplete_adapter,
1473
-			'wl_autocomplete',
1474
-		) );
1475
-		add_action( 'wp_ajax_nopriv_wl_autocomplete', array(
1476
-			$this->autocomplete_adapter,
1477
-			'wl_autocomplete',
1478
-		) );
1479
-
1480
-		// Hooks to restrict multisite super admin from manipulating entity types.
1481
-		if ( is_multisite() ) {
1482
-			$this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'restrict_super_admin', 10, 4 );
1483
-		}
1484
-
1485
-	}
1228
+        /** Adapters. */
1229
+        $this->entity_type_adapter      = new Wordlift_Entity_Type_Adapter( $this->entity_type_service );
1230
+        $this->publisher_ajax_adapter   = new Wordlift_Publisher_Ajax_Adapter( $publisher_service );
1231
+        $this->tinymce_adapter          = new Wordlift_Tinymce_Adapter( $this );
1232
+        $this->batch_analysis_adapter   = new Wordlift_Batch_Analysis_Adapter( $this->batch_analysis_service );
1233
+        $this->relation_rebuild_adapter = new Wordlift_Relation_Rebuild_Adapter( $this->relation_rebuild_service );
1234
+
1235
+        // Create a Rebuild Service instance, which we'll later bound to an ajax call.
1236
+        $this->rebuild_service = new Wordlift_Rebuild_Service(
1237
+            $this->sparql_service,
1238
+            $uri_service,
1239
+            $this->reference_rebuild_service
1240
+        );
1241
+
1242
+        /** Async Tasks. */
1243
+        new Wordlift_Sparql_Query_Async_Task();
1244
+        new Wordlift_Batch_Analysis_Request_Async_Task();
1245
+        new Wordlift_Batch_Analysis_Complete_Async_Task();
1246
+        new Wordlift_Batch_Analysis_Complete_Async_Task();
1247
+        new Wordlift_Push_References_Async_Task();
1248
+
1249
+        /** WL Autocomplete. */
1250
+        $this->autocomplete_service = new Wordlift_Autocomplete_Service( $this->configuration_service );
1251
+        $this->autocomplete_adapter = new Wordlift_Autocomplete_Adapter( $this->autocomplete_service );
1252
+
1253
+        /** WordPress Admin UI. */
1254
+
1255
+        // UI elements.
1256
+        $this->input_element           = new Wordlift_Admin_Input_Element();
1257
+        $this->radio_input_element     = new Wordlift_Admin_Radio_Input_Element();
1258
+        $this->select2_element         = new Wordlift_Admin_Select2_Element();
1259
+        $this->language_select_element = new Wordlift_Admin_Language_Select_Element();
1260
+        $tabs_element                  = new Wordlift_Admin_Tabs_Element();
1261
+        $this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $publisher_service, $tabs_element, $this->select2_element );
1262
+        $this->author_element          = new Wordlift_Admin_Author_Element( $publisher_service, $this->select2_element );
1263
+
1264
+        $this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->publisher_element, $this->radio_input_element );
1265
+        $this->batch_analysis_page       = new Wordlift_Batch_Analysis_Page( $this->batch_analysis_service );
1266
+        $this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
1267
+
1268
+        // Pages.
1269
+        new Wordlift_Admin_Post_Edit_Page( $this );
1270
+        new Wordlift_Entity_Type_Admin_Service();
1271
+
1272
+        // create an instance of the entity type list admin page controller.
1273
+        $this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
1274
+
1275
+        // create an instance of the entity type etting admin page controller.
1276
+        $this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
1277
+
1278
+        /** Widgets */
1279
+        $this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
1280
+
1281
+        /* WordPress Admin. */
1282
+        $this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
1283
+        $this->status_page             = new Wordlift_Admin_Status_Page( $this->entity_service, $this->sparql_service );
1284
+
1285
+        // Create an instance of the install wizard.
1286
+        $this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service );
1287
+
1288
+        $this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
1289
+
1290
+        // User Profile.
1291
+        new Wordlift_Admin_User_Profile_Page( $this->author_element, $this->user_service );
1292
+
1293
+        $this->entity_page_service = new Wordlift_Entity_Page_Service();
1294
+
1295
+        // Load the debug service if WP is in debug mode.
1296
+        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
1297
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
1298
+            new Wordlift_Debug_Service( $this->entity_service, $uri_service );
1299
+        }
1300
+
1301
+        // Remote Image Service.
1302
+        new Wordlift_Remote_Image_Service();
1303
+    }
1304
+
1305
+    /**
1306
+     * Define the locale for this plugin for internationalization.
1307
+     *
1308
+     * Uses the Wordlift_i18n class in order to set the domain and to register the hook
1309
+     * with WordPress.
1310
+     *
1311
+     * @since    1.0.0
1312
+     * @access   private
1313
+     */
1314
+    private function set_locale() {
1315
+
1316
+        $plugin_i18n = new Wordlift_i18n();
1317
+        $plugin_i18n->set_domain( $this->get_plugin_name() );
1318
+
1319
+        $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
1320
+
1321
+    }
1322
+
1323
+    /**
1324
+     * Register all of the hooks related to the admin area functionality
1325
+     * of the plugin.
1326
+     *
1327
+     * @since    1.0.0
1328
+     * @access   private
1329
+     */
1330
+    private function define_admin_hooks() {
1331
+
1332
+        $plugin_admin = new Wordlift_Admin(
1333
+            $this->get_plugin_name(),
1334
+            $this->get_version(),
1335
+            $this->configuration_service,
1336
+            $this->notice_service,
1337
+            $this->user_service
1338
+        );
1339
+
1340
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
1341
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
1342
+
1343
+        // Hook the init action to taxonomy services.
1344
+        $this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
1345
+        $this->loader->add_action( 'init', $this->entity_types_taxonomy_service, 'init', 0 );
1346
+
1347
+        // Hook the deleted_post_meta action to the Thumbnail service.
1348
+        $this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
1349
+
1350
+        // Hook the added_post_meta action to the Thumbnail service.
1351
+        $this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1352
+
1353
+        // Hook the updated_post_meta action to the Thumbnail service.
1354
+        $this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1355
+
1356
+        // Hook the AJAX wl_timeline action to the Timeline service.
1357
+        $this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1358
+
1359
+        // Register custom allowed redirect hosts.
1360
+        $this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
1361
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1362
+        $this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
1363
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1364
+        $this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
1365
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1366
+        $this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
1367
+
1368
+        // Hook save_post to the entity service to update custom fields (such as alternate labels).
1369
+        // We have a priority of 9 because we want to be executed before data is sent to Redlink.
1370
+        $this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
1371
+        $this->loader->add_action( 'save_post', $this->rating_service, 'set_rating_for', 20, 1 );
1372
+
1373
+        $this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
1374
+        $this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
1375
+
1376
+        // Entity listing customization (wp-admin/edit.php)
1377
+        // Add custom columns.
1378
+        $this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
1379
+        // no explicit entity as it prevents handling of other post types.
1380
+        $this->loader->add_filter( 'manage_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
1381
+        // Add 4W selection.
1382
+        $this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
1383
+        $this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
1384
+        $this->loader->add_action( 'pre_get_posts', $this->entity_list_service, 'pre_get_posts' );
1385
+        $this->loader->add_action( 'load-edit.php', $this->entity_list_service, 'load_edit' );
1386
+        $this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
1387
+
1388
+        // Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
1389
+        // entities.
1390
+        $this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
1391
+
1392
+        // Filter imported post meta.
1393
+        $this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
1394
+
1395
+        // Notify the import service when an import starts and ends.
1396
+        $this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1397
+        $this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
1398
+
1399
+        // Hook the AJAX wl_rebuild action to the Rebuild Service.
1400
+        $this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1401
+        $this->loader->add_action( 'wp_ajax_wl_rebuild_references', $this->reference_rebuild_service, 'rebuild' );
1402
+
1403
+        // Hook the menu to the Download Your Data page.
1404
+        $this->loader->add_action( 'admin_menu', $this->download_your_data_page, 'admin_menu', 100, 0 );
1405
+        $this->loader->add_action( 'admin_menu', $this->status_page, 'admin_menu', 100, 0 );
1406
+        $this->loader->add_action( 'admin_menu', $this->entity_type_settings_admin_page, 'admin_menu', 100, 0 );
1407
+
1408
+        // Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1409
+        $this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1410
+
1411
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1412
+        $this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1413
+
1414
+        // Hook the AJAX wl_validate_key action to the Key Validation service.
1415
+        $this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1416
+
1417
+        // Hook the `admin_init` function to the Admin Setup.
1418
+        $this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1419
+
1420
+        // Hook the admin_init to the settings page.
1421
+        $this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1422
+
1423
+        // Hook the menu creation on the general wordlift menu creation.
1424
+        $this->loader->add_action( 'wl_admin_menu', $this->settings_page, 'admin_menu', 10, 2 );
1425
+        if ( defined( 'WORDLIFT_BATCH' ) && WORDLIFT_BATCH ) {
1426
+            // Add the functionality only if a flag is set in wp-config.php .
1427
+            $this->loader->add_action( 'wl_admin_menu', $this->batch_analysis_page, 'admin_menu', 10, 2 );
1428
+        }
1429
+
1430
+        // Hook key update.
1431
+        $this->loader->add_action( 'pre_update_option_wl_general_settings', $this->configuration_service, 'maybe_update_dataset_uri', 10, 2 );
1432
+        $this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1433
+
1434
+        // Add additional action links to the WordLift plugin in the plugins page.
1435
+        $this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1436
+
1437
+        // Hook the AJAX `wl_publisher` action name.
1438
+        $this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1439
+
1440
+        // Hook row actions for the entity type list admin.
1441
+        $this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1442
+
1443
+        /** Ajax actions. */
1444
+        $this->loader->add_action( 'wp_ajax_wl_google_analytics_export', $this->google_analytics_export_service, 'export' );
1445
+
1446
+        // Hook capabilities manipulation to allow access to entity type admin
1447
+        // page  on WordPress versions before 4.7.
1448
+        global $wp_version;
1449
+        if ( version_compare( $wp_version, '4.7', '<' ) ) {
1450
+            $this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'enable_admin_access_pre_47', 10, 4 );
1451
+        }
1452
+
1453
+        $this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1454
+
1455
+        /** Adapters. */
1456
+        $this->loader->add_filter( 'mce_external_plugins', $this->tinymce_adapter, 'mce_external_plugins', 10, 1 );
1457
+        $this->loader->add_action( 'wp_ajax_wl_batch_analysis_submit', $this->batch_analysis_adapter, 'submit' );
1458
+        $this->loader->add_action( 'wp_ajax_wl_batch_analysis_submit_posts', $this->batch_analysis_adapter, 'submit_posts' );
1459
+        $this->loader->add_action( 'wp_ajax_wl_batch_analysis_cancel', $this->batch_analysis_adapter, 'cancel' );
1460
+        $this->loader->add_action( 'wp_ajax_wl_batch_analysis_clear_warning', $this->batch_analysis_adapter, 'clear_warning' );
1461
+        $this->loader->add_action( 'wp_ajax_wl_relation_rebuild_process_all', $this->relation_rebuild_adapter, 'process_all' );
1462
+
1463
+        $this->loader->add_action( 'wp_ajax_wl_sample_data_create', $this->sample_data_ajax_adapter, 'create' );
1464
+        $this->loader->add_action( 'wp_ajax_wl_sample_data_delete', $this->sample_data_ajax_adapter, 'delete' );
1465
+
1466
+
1467
+        $this->loader->add_action( 'update_user_metadata', $this->user_service, 'update_user_metadata', 10, 5 );
1468
+        $this->loader->add_action( 'delete_user_metadata', $this->user_service, 'delete_user_metadata', 10, 5 );
1469
+
1470
+        // Handle the autocomplete request.
1471
+        add_action( 'wp_ajax_wl_autocomplete', array(
1472
+            $this->autocomplete_adapter,
1473
+            'wl_autocomplete',
1474
+        ) );
1475
+        add_action( 'wp_ajax_nopriv_wl_autocomplete', array(
1476
+            $this->autocomplete_adapter,
1477
+            'wl_autocomplete',
1478
+        ) );
1479
+
1480
+        // Hooks to restrict multisite super admin from manipulating entity types.
1481
+        if ( is_multisite() ) {
1482
+            $this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'restrict_super_admin', 10, 4 );
1483
+        }
1484
+
1485
+    }
1486 1486
 
1487
-	/**
1488
-	 * Register all of the hooks related to the public-facing functionality
1489
-	 * of the plugin.
1490
-	 *
1491
-	 * @since    1.0.0
1492
-	 * @access   private
1493
-	 */
1494
-	private function define_public_hooks() {
1495
-
1496
-		$plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1487
+    /**
1488
+     * Register all of the hooks related to the public-facing functionality
1489
+     * of the plugin.
1490
+     *
1491
+     * @since    1.0.0
1492
+     * @access   private
1493
+     */
1494
+    private function define_public_hooks() {
1495
+
1496
+        $plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1497 1497
 
1498
-		// Register the entity post type.
1499
-		$this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1500
-		$this->loader->add_action( 'init', $this->install_service, 'install' );
1498
+        // Register the entity post type.
1499
+        $this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1500
+        $this->loader->add_action( 'init', $this->install_service, 'install' );
1501 1501
 
1502
-		// Bind the link generation and handling hooks to the entity link service.
1503
-		$this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1504
-		$this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', PHP_INT_MAX, 1 );
1505
-		$this->loader->add_filter( 'wp_unique_post_slug_is_bad_flat_slug', $this->entity_link_service, 'wp_unique_post_slug_is_bad_flat_slug', 10, 3 );
1506
-		$this->loader->add_filter( 'wp_unique_post_slug_is_bad_hierarchical_slug', $this->entity_link_service, 'wp_unique_post_slug_is_bad_hierarchical_slug', 10, 4 );
1502
+        // Bind the link generation and handling hooks to the entity link service.
1503
+        $this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1504
+        $this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', PHP_INT_MAX, 1 );
1505
+        $this->loader->add_filter( 'wp_unique_post_slug_is_bad_flat_slug', $this->entity_link_service, 'wp_unique_post_slug_is_bad_flat_slug', 10, 3 );
1506
+        $this->loader->add_filter( 'wp_unique_post_slug_is_bad_hierarchical_slug', $this->entity_link_service, 'wp_unique_post_slug_is_bad_hierarchical_slug', 10, 4 );
1507 1507
 
1508
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1509
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1508
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1509
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1510 1510
 
1511
-		// Hook the content filter service to add entity links.
1512
-		if ( ! defined( 'WL_DISABLE_CONTENT_FILTER' ) || ! WL_DISABLE_CONTENT_FILTER ) {
1513
-			$this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1514
-		}
1515
-
1516
-		// Hook the AJAX wl_timeline action to the Timeline service.
1517
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1518
-
1519
-		// Hook the ShareThis service.
1520
-		$this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1521
-		$this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1522
-
1523
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1524
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1525
-
1526
-		// Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1527
-		// in order to tweak WP's `WP_Query` to include entities in queries related
1528
-		// to categories.
1529
-		$this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1530
-
1531
-		/*
1511
+        // Hook the content filter service to add entity links.
1512
+        if ( ! defined( 'WL_DISABLE_CONTENT_FILTER' ) || ! WL_DISABLE_CONTENT_FILTER ) {
1513
+            $this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1514
+        }
1515
+
1516
+        // Hook the AJAX wl_timeline action to the Timeline service.
1517
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1518
+
1519
+        // Hook the ShareThis service.
1520
+        $this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1521
+        $this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1522
+
1523
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1524
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1525
+
1526
+        // Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1527
+        // in order to tweak WP's `WP_Query` to include entities in queries related
1528
+        // to categories.
1529
+        $this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1530
+
1531
+        /*
1532 1532
 		 * Hook the `pre_get_posts` action to the `Wordlift_Entity_Page_Service`
1533 1533
 		 * in order to tweak WP's `WP_Query` to show event related entities in reverse
1534 1534
 		 * order of start time.
1535 1535
 		 */
1536
-		$this->loader->add_action( 'pre_get_posts', $this->entity_page_service, 'pre_get_posts', 10, 1 );
1537
-
1538
-		$this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1539
-
1540
-		// This hook have to run before the rating service, as otherwise the post might not be a proper entity when rating is done.
1541
-		$this->loader->add_action( 'save_post', $this->entity_type_adapter, 'save_post', 9, 3 );
1542
-
1543
-	}
1544
-
1545
-	/**
1546
-	 * Run the loader to execute all of the hooks with WordPress.
1547
-	 *
1548
-	 * @since    1.0.0
1549
-	 */
1550
-	public function run() {
1551
-		$this->loader->run();
1552
-	}
1553
-
1554
-	/**
1555
-	 * The name of the plugin used to uniquely identify it within the context of
1556
-	 * WordPress and to define internationalization functionality.
1557
-	 *
1558
-	 * @since     1.0.0
1559
-	 * @return    string    The name of the plugin.
1560
-	 */
1561
-	public function get_plugin_name() {
1562
-		return $this->plugin_name;
1563
-	}
1564
-
1565
-	/**
1566
-	 * The reference to the class that orchestrates the hooks with the plugin.
1567
-	 *
1568
-	 * @since     1.0.0
1569
-	 * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
1570
-	 */
1571
-	public function get_loader() {
1572
-		return $this->loader;
1573
-	}
1574
-
1575
-	/**
1576
-	 * Retrieve the version number of the plugin.
1577
-	 *
1578
-	 * @since     1.0.0
1579
-	 * @return    string    The version number of the plugin.
1580
-	 */
1581
-	public function get_version() {
1582
-		return $this->version;
1583
-	}
1584
-
1585
-	/**
1586
-	 * Load dependencies for WP-CLI.
1587
-	 *
1588
-	 * @since 3.18.0
1589
-	 * @throws Exception
1590
-	 */
1591
-	private function load_cli_dependencies() {
1592
-
1593
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'cli/class-wordlift-push-reference-data-command.php';
1594
-
1595
-		$push_reference_data_command = new Wordlift_Push_Reference_Data_Command( $this->relation_service, $this->entity_service, $this->sparql_service, $this->configuration_service, $this->entity_type_service );
1596
-
1597
-		WP_CLI::add_command( 'wl references push', $push_reference_data_command );
1598
-
1599
-	}
1536
+        $this->loader->add_action( 'pre_get_posts', $this->entity_page_service, 'pre_get_posts', 10, 1 );
1537
+
1538
+        $this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1539
+
1540
+        // This hook have to run before the rating service, as otherwise the post might not be a proper entity when rating is done.
1541
+        $this->loader->add_action( 'save_post', $this->entity_type_adapter, 'save_post', 9, 3 );
1542
+
1543
+    }
1544
+
1545
+    /**
1546
+     * Run the loader to execute all of the hooks with WordPress.
1547
+     *
1548
+     * @since    1.0.0
1549
+     */
1550
+    public function run() {
1551
+        $this->loader->run();
1552
+    }
1553
+
1554
+    /**
1555
+     * The name of the plugin used to uniquely identify it within the context of
1556
+     * WordPress and to define internationalization functionality.
1557
+     *
1558
+     * @since     1.0.0
1559
+     * @return    string    The name of the plugin.
1560
+     */
1561
+    public function get_plugin_name() {
1562
+        return $this->plugin_name;
1563
+    }
1564
+
1565
+    /**
1566
+     * The reference to the class that orchestrates the hooks with the plugin.
1567
+     *
1568
+     * @since     1.0.0
1569
+     * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
1570
+     */
1571
+    public function get_loader() {
1572
+        return $this->loader;
1573
+    }
1574
+
1575
+    /**
1576
+     * Retrieve the version number of the plugin.
1577
+     *
1578
+     * @since     1.0.0
1579
+     * @return    string    The version number of the plugin.
1580
+     */
1581
+    public function get_version() {
1582
+        return $this->version;
1583
+    }
1584
+
1585
+    /**
1586
+     * Load dependencies for WP-CLI.
1587
+     *
1588
+     * @since 3.18.0
1589
+     * @throws Exception
1590
+     */
1591
+    private function load_cli_dependencies() {
1592
+
1593
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'cli/class-wordlift-push-reference-data-command.php';
1594
+
1595
+        $push_reference_data_command = new Wordlift_Push_Reference_Data_Command( $this->relation_service, $this->entity_service, $this->sparql_service, $this->configuration_service, $this->entity_type_service );
1596
+
1597
+        WP_CLI::add_command( 'wl references push', $push_reference_data_command );
1598
+
1599
+    }
1600 1600
 
1601 1601
 }
Please login to merge, or discard this patch.