Completed
Pull Request — develop (#1436)
by Naveen
50s
created
src/wordlift/jsonld/class-abstract-reference.php 2 patches
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -11,35 +11,35 @@
 block discarded – undo
11 11
  */
12 12
 abstract class Abstract_Reference implements Reference {
13 13
 
14
-	/**
15
-	 * @var int
16
-	 */
17
-	private $id;
18
-
19
-	/**
20
-	 * Abstract_Reference constructor.
21
-	 *
22
-	 * @param $id int Identifier for the reference.
23
-	 */
24
-	public function __construct( $id ) {
25
-		$this->id = $id;
26
-	}
27
-
28
-	abstract function get_type();
29
-
30
-	public function get_id() {
31
-		return $this->id;
32
-	}
33
-
34
-	/**
35
-	 * This function is necessary because array_unique can be applied
36
-	 * on the references, we prepend the id with the type, for example
37
-	 * post reference with post id 1 would be equal to {@link Object_Type_Enum::POST."_1"}
38
-	 * @return string
39
-	 */
40
-	public function __toString() {
41
-		return $this->get_type() . "_" . $this->get_id();
42
-	}
14
+    /**
15
+     * @var int
16
+     */
17
+    private $id;
18
+
19
+    /**
20
+     * Abstract_Reference constructor.
21
+     *
22
+     * @param $id int Identifier for the reference.
23
+     */
24
+    public function __construct( $id ) {
25
+        $this->id = $id;
26
+    }
27
+
28
+    abstract function get_type();
29
+
30
+    public function get_id() {
31
+        return $this->id;
32
+    }
33
+
34
+    /**
35
+     * This function is necessary because array_unique can be applied
36
+     * on the references, we prepend the id with the type, for example
37
+     * post reference with post id 1 would be equal to {@link Object_Type_Enum::POST."_1"}
38
+     * @return string
39
+     */
40
+    public function __toString() {
41
+        return $this->get_type() . "_" . $this->get_id();
42
+    }
43 43
 
44 44
 
45 45
 }
46 46
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -21,7 +21,7 @@  discard block
 block discarded – undo
21 21
 	 *
22 22
 	 * @param $id int Identifier for the reference.
23 23
 	 */
24
-	public function __construct( $id ) {
24
+	public function __construct($id) {
25 25
 		$this->id = $id;
26 26
 	}
27 27
 
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 	 * @return string
39 39
 	 */
40 40
 	public function __toString() {
41
-		return $this->get_type() . "_" . $this->get_id();
41
+		return $this->get_type()."_".$this->get_id();
42 42
 	}
43 43
 
44 44
 
Please login to merge, or discard this patch.
src/wordlift/common/term-checklist/class-term-checklist.php 2 patches
Indentation   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -9,28 +9,28 @@  discard block
 block discarded – undo
9 9
  */
10 10
 class Term_Checklist {
11 11
 
12
-	/**
13
-	 * @param $input_name string The name of the input field assigned to checkbox.
14
-	 * @param $terms array<\WP_Term>
15
-	 * @param $selected_term_slugs array<string> The list of selected term slugs.
16
-	 *
17
-	 * @return string Html string to be rendered.
18
-	 */
19
-	public static function render( $input_name, $terms, $selected_term_slugs ) {
12
+    /**
13
+     * @param $input_name string The name of the input field assigned to checkbox.
14
+     * @param $terms array<\WP_Term>
15
+     * @param $selected_term_slugs array<string> The list of selected term slugs.
16
+     *
17
+     * @return string Html string to be rendered.
18
+     */
19
+    public static function render( $input_name, $terms, $selected_term_slugs ) {
20 20
 
21 21
 
22
-		$terms_html = "";
22
+        $terms_html = "";
23 23
 
24
-		$input_name = esc_html( $input_name );
24
+        $input_name = esc_html( $input_name );
25 25
 
26
-		foreach ( $terms as $term ) {
26
+        foreach ( $terms as $term ) {
27 27
 
28
-			/**
29
-			 * @var $term \WP_Term
30
-			 */
31
-			$term_name  = esc_html( $term->name );
32
-			$checked    = in_array( $term->slug, $selected_term_slugs ) ? 'checked' : '';
33
-			$terms_html .= <<<EOF
28
+            /**
29
+             * @var $term \WP_Term
30
+             */
31
+            $term_name  = esc_html( $term->name );
32
+            $checked    = in_array( $term->slug, $selected_term_slugs ) ? 'checked' : '';
33
+            $terms_html .= <<<EOF
34 34
 <li id="wl_entity_type-{$term->term_id}">
35 35
 	<label class="selectit">
36 36
 	<input value="{$term->slug}" type="checkbox" name="{$input_name}[]" id="in-wl_entity_type-{$term->term_id}" $checked>
@@ -39,10 +39,10 @@  discard block
 block discarded – undo
39 39
 </li>
40 40
 EOF;
41 41
 
42
-		}
42
+        }
43 43
 
44
-		return '<input type="text" id="wl_entity_type_search" placeholder="Search Entity Types.." /><ul id="wl-entity-type__ul">' . $terms_html . '</ul>';
45
-	}
44
+        return '<input type="text" id="wl_entity_type_search" placeholder="Search Entity Types.." /><ul id="wl-entity-type__ul">' . $terms_html . '</ul>';
45
+    }
46 46
 
47 47
 
48 48
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -16,20 +16,20 @@  discard block
 block discarded – undo
16 16
 	 *
17 17
 	 * @return string Html string to be rendered.
18 18
 	 */
19
-	public static function render( $input_name, $terms, $selected_term_slugs ) {
19
+	public static function render($input_name, $terms, $selected_term_slugs) {
20 20
 
21 21
 
22 22
 		$terms_html = "";
23 23
 
24
-		$input_name = esc_html( $input_name );
24
+		$input_name = esc_html($input_name);
25 25
 
26
-		foreach ( $terms as $term ) {
26
+		foreach ($terms as $term) {
27 27
 
28 28
 			/**
29 29
 			 * @var $term \WP_Term
30 30
 			 */
31
-			$term_name  = esc_html( $term->name );
32
-			$checked    = in_array( $term->slug, $selected_term_slugs ) ? 'checked' : '';
31
+			$term_name  = esc_html($term->name);
32
+			$checked    = in_array($term->slug, $selected_term_slugs) ? 'checked' : '';
33 33
 			$terms_html .= <<<EOF
34 34
 <li id="wl_entity_type-{$term->term_id}">
35 35
 	<label class="selectit">
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 
42 42
 		}
43 43
 
44
-		return '<input type="text" id="wl_entity_type_search" placeholder="Search Entity Types.." /><ul id="wl-entity-type__ul">' . $terms_html . '</ul>';
44
+		return '<input type="text" id="wl_entity_type_search" placeholder="Search Entity Types.." /><ul id="wl-entity-type__ul">'.$terms_html.'</ul>';
45 45
 	}
46 46
 
47 47
 
Please login to merge, or discard this patch.
src/wordlift/link/class-post-link.php 2 patches
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -13,62 +13,62 @@
 block discarded – undo
13 13
 
14 14
 class Post_Link extends Default_Link {
15 15
 
16
-	/**
17
-	 * @var \Wordlift_Entity_Service
18
-	 */
19
-	private $entity_service;
20
-	/**
21
-	 * @var \Wordlift_Entity_Uri_Service
22
-	 */
23
-	private $entity_uri_service;
16
+    /**
17
+     * @var \Wordlift_Entity_Service
18
+     */
19
+    private $entity_service;
20
+    /**
21
+     * @var \Wordlift_Entity_Uri_Service
22
+     */
23
+    private $entity_uri_service;
24 24
 
25 25
 
26
-	public function __construct() {
27
-		parent::__construct();
28
-		$this->entity_service     = Wordlift_Entity_Service::get_instance();
29
-		$this->entity_uri_service = \Wordlift_Entity_Uri_Service::get_instance();
30
-	}
26
+    public function __construct() {
27
+        parent::__construct();
28
+        $this->entity_service     = Wordlift_Entity_Service::get_instance();
29
+        $this->entity_uri_service = \Wordlift_Entity_Uri_Service::get_instance();
30
+    }
31 31
 
32 32
 
33
-	public function get_same_as_uris( $id ) {
33
+    public function get_same_as_uris( $id ) {
34 34
 
35
-		return array_merge(
36
-			array( $this->entity_service->get_uri( $id ) ),
37
-			get_post_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
38
-		);
35
+        return array_merge(
36
+            array( $this->entity_service->get_uri( $id ) ),
37
+            get_post_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
38
+        );
39 39
 
40
-	}
40
+    }
41 41
 
42
-	public function get_id( $uri ) {
43
-		$entity = $this->entity_uri_service->get_entity( $uri );
44
-		if ( ! $entity ) {
45
-			return false;
46
-		}
42
+    public function get_id( $uri ) {
43
+        $entity = $this->entity_uri_service->get_entity( $uri );
44
+        if ( ! $entity ) {
45
+            return false;
46
+        }
47 47
 
48
-		return $entity->ID;
49
-	}
48
+        return $entity->ID;
49
+    }
50 50
 
51
-	public function get_synonyms( $id ) {
52
-		// Get possible alternative entity_labels we can select from.
53
-		$entity_labels = $this->entity_service->get_alternative_labels( $id );
51
+    public function get_synonyms( $id ) {
52
+        // Get possible alternative entity_labels we can select from.
53
+        $entity_labels = $this->entity_service->get_alternative_labels( $id );
54 54
 
55
-		/*
55
+        /*
56 56
 		 * Since the original text might use an alternative entity_label than the
57 57
 		 * Entity title, add the title itself which is not returned by the api.
58 58
 		 */
59
-		$entity_labels[] = get_the_title( $id );
59
+        $entity_labels[] = get_the_title( $id );
60 60
 
61
-		// Add some randomness to the entity_label selection.
62
-		shuffle( $entity_labels );
61
+        // Add some randomness to the entity_label selection.
62
+        shuffle( $entity_labels );
63 63
 
64
-		return $entity_labels;
65
-	}
64
+        return $entity_labels;
65
+    }
66 66
 
67
-	public function get_permalink( $id ) {
68
-		return get_permalink( $id );
69
-	}
67
+    public function get_permalink( $id ) {
68
+        return get_permalink( $id );
69
+    }
70 70
 
71
-	public function get_edit_page_link( $id ) {
72
-		return get_edit_post_link( $id, 'none' );
73
-	}
71
+    public function get_edit_page_link( $id ) {
72
+        return get_edit_post_link( $id, 'none' );
73
+    }
74 74
 }
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -30,45 +30,45 @@
 block discarded – undo
30 30
 	}
31 31
 
32 32
 
33
-	public function get_same_as_uris( $id ) {
33
+	public function get_same_as_uris($id) {
34 34
 
35 35
 		return array_merge(
36
-			array( $this->entity_service->get_uri( $id ) ),
37
-			get_post_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
36
+			array($this->entity_service->get_uri($id)),
37
+			get_post_meta($id, Wordlift_Schema_Service::FIELD_SAME_AS)
38 38
 		);
39 39
 
40 40
 	}
41 41
 
42
-	public function get_id( $uri ) {
43
-		$entity = $this->entity_uri_service->get_entity( $uri );
44
-		if ( ! $entity ) {
42
+	public function get_id($uri) {
43
+		$entity = $this->entity_uri_service->get_entity($uri);
44
+		if ( ! $entity) {
45 45
 			return false;
46 46
 		}
47 47
 
48 48
 		return $entity->ID;
49 49
 	}
50 50
 
51
-	public function get_synonyms( $id ) {
51
+	public function get_synonyms($id) {
52 52
 		// Get possible alternative entity_labels we can select from.
53
-		$entity_labels = $this->entity_service->get_alternative_labels( $id );
53
+		$entity_labels = $this->entity_service->get_alternative_labels($id);
54 54
 
55 55
 		/*
56 56
 		 * Since the original text might use an alternative entity_label than the
57 57
 		 * Entity title, add the title itself which is not returned by the api.
58 58
 		 */
59
-		$entity_labels[] = get_the_title( $id );
59
+		$entity_labels[] = get_the_title($id);
60 60
 
61 61
 		// Add some randomness to the entity_label selection.
62
-		shuffle( $entity_labels );
62
+		shuffle($entity_labels);
63 63
 
64 64
 		return $entity_labels;
65 65
 	}
66 66
 
67
-	public function get_permalink( $id ) {
68
-		return get_permalink( $id );
67
+	public function get_permalink($id) {
68
+		return get_permalink($id);
69 69
 	}
70 70
 
71
-	public function get_edit_page_link( $id ) {
72
-		return get_edit_post_link( $id, 'none' );
71
+	public function get_edit_page_link($id) {
72
+		return get_edit_post_link($id, 'none');
73 73
 	}
74 74
 }
Please login to merge, or discard this patch.
src/wordlift/link/class-object-link-provider.php 2 patches
Indentation   +138 added lines, -138 removed lines patch added patch discarded remove patch
@@ -11,144 +11,144 @@
 block discarded – undo
11 11
 use Wordlift\Object_Type_Enum;
12 12
 
13 13
 class Object_Link_Provider extends Singleton {
14
-	/**
15
-	 * @var array<Link>
16
-	 */
17
-	private $link_providers;
18
-
19
-	/**
20
-	 * @return Object_Link_Provider
21
-	 */
22
-	public static function get_instance() {
23
-		return parent::get_instance();
24
-	}
25
-
26
-	public function __construct() {
27
-		parent::__construct();
28
-		$this->link_providers = array(
29
-			Object_Type_Enum::POST => Post_Link::get_instance(),
30
-			Object_Type_Enum::TERM => Term_Link::get_instance()
31
-		);
32
-	}
33
-
34
-	/**
35
-	 * @param $id int
36
-	 * @param $label_to_be_ignored string
37
-	 * @param $object_type int
38
-	 *
39
-	 * @return string
40
-	 */
41
-	public function get_link_title( $id, $label_to_be_ignored, $object_type ) {
42
-		$provider = $this->get_provider( $object_type );
43
-		if ( ! $provider ) {
44
-			return '';
45
-		}
46
-
47
-		return $provider->get_link_title( $id, $label_to_be_ignored );
48
-	}
49
-
50
-
51
-	/**
52
-	 * Return the object type by the entity uri.
53
-	 * @return int which can be any of the {@link Object_Type_Enum} values.
54
-	 */
55
-	public function get_object_type( $uri ) {
56
-
57
-		$link_providers = $this->link_providers;
58
-		foreach ( $link_providers as $type => $provider ) {
59
-			/**
60
-			 * @var $provider Link
61
-			 */
62
-			$id = $provider->get_id( $uri );
63
-			if ( $id ) {
64
-				return $type;
65
-			}
66
-		}
67
-
68
-		return Object_Type_Enum::UNKNOWN;
69
-	}
70
-
71
-	public function get_id_by_uri( $uri ) {
72
-		$link_providers = $this->link_providers;
73
-		foreach ( $link_providers as $provider ) {
74
-			/**
75
-			 * @var $provider Link
76
-			 */
77
-			$id = $provider->get_id( $uri );
78
-			if ( $id ) {
79
-				return $id;
80
-			}
81
-		}
82
-
83
-		return false;
84
-	}
85
-
86
-	/**
87
-	 * @param $uri
88
-	 * @param $object_type
89
-	 *
90
-	 * @return int
91
-	 */
92
-	public function get_object_id_by_type( $uri, $object_type ) {
93
-		return $this->link_providers[ $object_type ]->get_id( $uri );
94
-	}
95
-
96
-	public function get_same_as_uris( $id, $object_type ) {
97
-
98
-		$provider = $this->get_provider( $object_type );
99
-		if ( ! $provider ) {
100
-			return array();
101
-		}
102
-
103
-		return $provider->get_same_as_uris( $id );
104
-	}
105
-
106
-	/**
107
-	 * @param $object_type
108
-	 *
109
-	 * @return mixed|Link
110
-	 */
111
-	private function get_provider( $object_type ) {
112
-
113
-		if ( ! array_key_exists( $object_type, $this->link_providers ) ) {
114
-			return false;
115
-		}
116
-
117
-		return $this->link_providers[ $object_type ];
118
-	}
119
-
120
-
121
-	public function get_permalink( $id, $object_type ) {
122
-		$provider = $this->get_provider( $object_type );
123
-		if ( ! $provider ) {
124
-			return false;
125
-		}
126
-
127
-		return $provider->get_permalink( $id );
128
-	}
129
-
130
-	/**
131
-	 * Return the edit term page link.
132
-	 *
133
-	 * @param $object_id
134
-	 * @param $uri
135
-	 *
136
-	 * @return string | false
137
-	 * @since 3.32.0
138
-	 */
139
-	public function get_edit_page_link( $object_id, $uri ) {
140
-
141
-		$object_type = $this->get_object_type( $uri );
142
-
143
-		$provider = $this->get_provider( $object_type );
144
-
145
-		if ( ! $provider ) {
146
-			return false;
147
-		}
148
-
149
-		return $provider->get_edit_page_link( $object_id );
150
-
151
-	}
14
+    /**
15
+     * @var array<Link>
16
+     */
17
+    private $link_providers;
18
+
19
+    /**
20
+     * @return Object_Link_Provider
21
+     */
22
+    public static function get_instance() {
23
+        return parent::get_instance();
24
+    }
25
+
26
+    public function __construct() {
27
+        parent::__construct();
28
+        $this->link_providers = array(
29
+            Object_Type_Enum::POST => Post_Link::get_instance(),
30
+            Object_Type_Enum::TERM => Term_Link::get_instance()
31
+        );
32
+    }
33
+
34
+    /**
35
+     * @param $id int
36
+     * @param $label_to_be_ignored string
37
+     * @param $object_type int
38
+     *
39
+     * @return string
40
+     */
41
+    public function get_link_title( $id, $label_to_be_ignored, $object_type ) {
42
+        $provider = $this->get_provider( $object_type );
43
+        if ( ! $provider ) {
44
+            return '';
45
+        }
46
+
47
+        return $provider->get_link_title( $id, $label_to_be_ignored );
48
+    }
49
+
50
+
51
+    /**
52
+     * Return the object type by the entity uri.
53
+     * @return int which can be any of the {@link Object_Type_Enum} values.
54
+     */
55
+    public function get_object_type( $uri ) {
56
+
57
+        $link_providers = $this->link_providers;
58
+        foreach ( $link_providers as $type => $provider ) {
59
+            /**
60
+             * @var $provider Link
61
+             */
62
+            $id = $provider->get_id( $uri );
63
+            if ( $id ) {
64
+                return $type;
65
+            }
66
+        }
67
+
68
+        return Object_Type_Enum::UNKNOWN;
69
+    }
70
+
71
+    public function get_id_by_uri( $uri ) {
72
+        $link_providers = $this->link_providers;
73
+        foreach ( $link_providers as $provider ) {
74
+            /**
75
+             * @var $provider Link
76
+             */
77
+            $id = $provider->get_id( $uri );
78
+            if ( $id ) {
79
+                return $id;
80
+            }
81
+        }
82
+
83
+        return false;
84
+    }
85
+
86
+    /**
87
+     * @param $uri
88
+     * @param $object_type
89
+     *
90
+     * @return int
91
+     */
92
+    public function get_object_id_by_type( $uri, $object_type ) {
93
+        return $this->link_providers[ $object_type ]->get_id( $uri );
94
+    }
95
+
96
+    public function get_same_as_uris( $id, $object_type ) {
97
+
98
+        $provider = $this->get_provider( $object_type );
99
+        if ( ! $provider ) {
100
+            return array();
101
+        }
102
+
103
+        return $provider->get_same_as_uris( $id );
104
+    }
105
+
106
+    /**
107
+     * @param $object_type
108
+     *
109
+     * @return mixed|Link
110
+     */
111
+    private function get_provider( $object_type ) {
112
+
113
+        if ( ! array_key_exists( $object_type, $this->link_providers ) ) {
114
+            return false;
115
+        }
116
+
117
+        return $this->link_providers[ $object_type ];
118
+    }
119
+
120
+
121
+    public function get_permalink( $id, $object_type ) {
122
+        $provider = $this->get_provider( $object_type );
123
+        if ( ! $provider ) {
124
+            return false;
125
+        }
126
+
127
+        return $provider->get_permalink( $id );
128
+    }
129
+
130
+    /**
131
+     * Return the edit term page link.
132
+     *
133
+     * @param $object_id
134
+     * @param $uri
135
+     *
136
+     * @return string | false
137
+     * @since 3.32.0
138
+     */
139
+    public function get_edit_page_link( $object_id, $uri ) {
140
+
141
+        $object_type = $this->get_object_type( $uri );
142
+
143
+        $provider = $this->get_provider( $object_type );
144
+
145
+        if ( ! $provider ) {
146
+            return false;
147
+        }
148
+
149
+        return $provider->get_edit_page_link( $object_id );
150
+
151
+    }
152 152
 
153 153
 
154 154
 }
155 155
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -38,13 +38,13 @@  discard block
 block discarded – undo
38 38
 	 *
39 39
 	 * @return string
40 40
 	 */
41
-	public function get_link_title( $id, $label_to_be_ignored, $object_type ) {
42
-		$provider = $this->get_provider( $object_type );
43
-		if ( ! $provider ) {
41
+	public function get_link_title($id, $label_to_be_ignored, $object_type) {
42
+		$provider = $this->get_provider($object_type);
43
+		if ( ! $provider) {
44 44
 			return '';
45 45
 		}
46 46
 
47
-		return $provider->get_link_title( $id, $label_to_be_ignored );
47
+		return $provider->get_link_title($id, $label_to_be_ignored);
48 48
 	}
49 49
 
50 50
 
@@ -52,15 +52,15 @@  discard block
 block discarded – undo
52 52
 	 * Return the object type by the entity uri.
53 53
 	 * @return int which can be any of the {@link Object_Type_Enum} values.
54 54
 	 */
55
-	public function get_object_type( $uri ) {
55
+	public function get_object_type($uri) {
56 56
 
57 57
 		$link_providers = $this->link_providers;
58
-		foreach ( $link_providers as $type => $provider ) {
58
+		foreach ($link_providers as $type => $provider) {
59 59
 			/**
60 60
 			 * @var $provider Link
61 61
 			 */
62
-			$id = $provider->get_id( $uri );
63
-			if ( $id ) {
62
+			$id = $provider->get_id($uri);
63
+			if ($id) {
64 64
 				return $type;
65 65
 			}
66 66
 		}
@@ -68,14 +68,14 @@  discard block
 block discarded – undo
68 68
 		return Object_Type_Enum::UNKNOWN;
69 69
 	}
70 70
 
71
-	public function get_id_by_uri( $uri ) {
71
+	public function get_id_by_uri($uri) {
72 72
 		$link_providers = $this->link_providers;
73
-		foreach ( $link_providers as $provider ) {
73
+		foreach ($link_providers as $provider) {
74 74
 			/**
75 75
 			 * @var $provider Link
76 76
 			 */
77
-			$id = $provider->get_id( $uri );
78
-			if ( $id ) {
77
+			$id = $provider->get_id($uri);
78
+			if ($id) {
79 79
 				return $id;
80 80
 			}
81 81
 		}
@@ -89,18 +89,18 @@  discard block
 block discarded – undo
89 89
 	 *
90 90
 	 * @return int
91 91
 	 */
92
-	public function get_object_id_by_type( $uri, $object_type ) {
93
-		return $this->link_providers[ $object_type ]->get_id( $uri );
92
+	public function get_object_id_by_type($uri, $object_type) {
93
+		return $this->link_providers[$object_type]->get_id($uri);
94 94
 	}
95 95
 
96
-	public function get_same_as_uris( $id, $object_type ) {
96
+	public function get_same_as_uris($id, $object_type) {
97 97
 
98
-		$provider = $this->get_provider( $object_type );
99
-		if ( ! $provider ) {
98
+		$provider = $this->get_provider($object_type);
99
+		if ( ! $provider) {
100 100
 			return array();
101 101
 		}
102 102
 
103
-		return $provider->get_same_as_uris( $id );
103
+		return $provider->get_same_as_uris($id);
104 104
 	}
105 105
 
106 106
 	/**
@@ -108,23 +108,23 @@  discard block
 block discarded – undo
108 108
 	 *
109 109
 	 * @return mixed|Link
110 110
 	 */
111
-	private function get_provider( $object_type ) {
111
+	private function get_provider($object_type) {
112 112
 
113
-		if ( ! array_key_exists( $object_type, $this->link_providers ) ) {
113
+		if ( ! array_key_exists($object_type, $this->link_providers)) {
114 114
 			return false;
115 115
 		}
116 116
 
117
-		return $this->link_providers[ $object_type ];
117
+		return $this->link_providers[$object_type];
118 118
 	}
119 119
 
120 120
 
121
-	public function get_permalink( $id, $object_type ) {
122
-		$provider = $this->get_provider( $object_type );
123
-		if ( ! $provider ) {
121
+	public function get_permalink($id, $object_type) {
122
+		$provider = $this->get_provider($object_type);
123
+		if ( ! $provider) {
124 124
 			return false;
125 125
 		}
126 126
 
127
-		return $provider->get_permalink( $id );
127
+		return $provider->get_permalink($id);
128 128
 	}
129 129
 
130 130
 	/**
@@ -136,17 +136,17 @@  discard block
 block discarded – undo
136 136
 	 * @return string | false
137 137
 	 * @since 3.32.0
138 138
 	 */
139
-	public function get_edit_page_link( $object_id, $uri ) {
139
+	public function get_edit_page_link($object_id, $uri) {
140 140
 
141
-		$object_type = $this->get_object_type( $uri );
141
+		$object_type = $this->get_object_type($uri);
142 142
 
143
-		$provider = $this->get_provider( $object_type );
143
+		$provider = $this->get_provider($object_type);
144 144
 
145
-		if ( ! $provider ) {
145
+		if ( ! $provider) {
146 146
 			return false;
147 147
 		}
148 148
 
149
-		return $provider->get_edit_page_link( $object_id );
149
+		return $provider->get_edit_page_link($object_id);
150 150
 
151 151
 	}
152 152
 
Please login to merge, or discard this patch.
src/wordlift/link/class-term-link.php 2 patches
Indentation   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -14,47 +14,47 @@
 block discarded – undo
14 14
 
15 15
 class Term_Link extends Default_Link {
16 16
 
17
-	/**
18
-	 * @var Uri_Service
19
-	 */
20
-	private $term_uri_service;
21
-
22
-	/**
23
-	 * @var Synonyms_Service
24
-	 */
25
-	private $synonyms_service;
26
-
27
-	public function __construct() {
28
-		parent::__construct();
29
-		$this->term_uri_service = Uri_Service::get_instance();
30
-		$this->synonyms_service = Synonyms_Service::get_instance();
31
-	}
32
-
33
-	public function get_same_as_uris( $id ) {
34
-		return array_merge(
35
-			(array) $this->term_uri_service->get_uri_by_term( $id ),
36
-			get_term_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
37
-		);
38
-	}
39
-
40
-	public function get_id( $uri ) {
41
-		$term = $this->term_uri_service->get_term( $uri );
42
-		if ( ! $term ) {
43
-			return false;
44
-		}
45
-
46
-		return $term->term_id;
47
-	}
48
-
49
-	public function get_synonyms( $id ) {
50
-		return $this->synonyms_service->get_synonyms( $id );
51
-	}
52
-
53
-	public function get_permalink( $id ) {
54
-		return get_term_link( $id );
55
-	}
56
-
57
-	public function get_edit_page_link( $id ) {
58
-		return get_edit_term_link( $id );
59
-	}
17
+    /**
18
+     * @var Uri_Service
19
+     */
20
+    private $term_uri_service;
21
+
22
+    /**
23
+     * @var Synonyms_Service
24
+     */
25
+    private $synonyms_service;
26
+
27
+    public function __construct() {
28
+        parent::__construct();
29
+        $this->term_uri_service = Uri_Service::get_instance();
30
+        $this->synonyms_service = Synonyms_Service::get_instance();
31
+    }
32
+
33
+    public function get_same_as_uris( $id ) {
34
+        return array_merge(
35
+            (array) $this->term_uri_service->get_uri_by_term( $id ),
36
+            get_term_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
37
+        );
38
+    }
39
+
40
+    public function get_id( $uri ) {
41
+        $term = $this->term_uri_service->get_term( $uri );
42
+        if ( ! $term ) {
43
+            return false;
44
+        }
45
+
46
+        return $term->term_id;
47
+    }
48
+
49
+    public function get_synonyms( $id ) {
50
+        return $this->synonyms_service->get_synonyms( $id );
51
+    }
52
+
53
+    public function get_permalink( $id ) {
54
+        return get_term_link( $id );
55
+    }
56
+
57
+    public function get_edit_page_link( $id ) {
58
+        return get_edit_term_link( $id );
59
+    }
60 60
 }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -30,31 +30,31 @@
 block discarded – undo
30 30
 		$this->synonyms_service = Synonyms_Service::get_instance();
31 31
 	}
32 32
 
33
-	public function get_same_as_uris( $id ) {
33
+	public function get_same_as_uris($id) {
34 34
 		return array_merge(
35
-			(array) $this->term_uri_service->get_uri_by_term( $id ),
36
-			get_term_meta( $id, Wordlift_Schema_Service::FIELD_SAME_AS )
35
+			(array) $this->term_uri_service->get_uri_by_term($id),
36
+			get_term_meta($id, Wordlift_Schema_Service::FIELD_SAME_AS)
37 37
 		);
38 38
 	}
39 39
 
40
-	public function get_id( $uri ) {
41
-		$term = $this->term_uri_service->get_term( $uri );
42
-		if ( ! $term ) {
40
+	public function get_id($uri) {
41
+		$term = $this->term_uri_service->get_term($uri);
42
+		if ( ! $term) {
43 43
 			return false;
44 44
 		}
45 45
 
46 46
 		return $term->term_id;
47 47
 	}
48 48
 
49
-	public function get_synonyms( $id ) {
50
-		return $this->synonyms_service->get_synonyms( $id );
49
+	public function get_synonyms($id) {
50
+		return $this->synonyms_service->get_synonyms($id);
51 51
 	}
52 52
 
53
-	public function get_permalink( $id ) {
54
-		return get_term_link( $id );
53
+	public function get_permalink($id) {
54
+		return get_term_link($id);
55 55
 	}
56 56
 
57
-	public function get_edit_page_link( $id ) {
58
-		return get_edit_term_link( $id );
57
+	public function get_edit_page_link($id) {
58
+		return get_edit_term_link($id);
59 59
 	}
60 60
 }
Please login to merge, or discard this patch.
src/wordlift/link/class-link.php 2 patches
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -9,22 +9,22 @@
 block discarded – undo
9 9
 
10 10
 interface Link {
11 11
 
12
-	public function get_link_title( $id, $label_to_be_ignored );
12
+    public function get_link_title( $id, $label_to_be_ignored );
13 13
 
14
-	public function get_same_as_uris( $id );
14
+    public function get_same_as_uris( $id );
15 15
 
16
-	public function get_id( $uri );
16
+    public function get_id( $uri );
17 17
 
18
-	public function get_synonyms( $id );
18
+    public function get_synonyms( $id );
19 19
 
20
-	public function get_permalink( $id );
20
+    public function get_permalink( $id );
21 21
 
22
-	/**
23
-	 * Return the edit page link.
24
-	 *
25
-	 * @param $id
26
-	 *
27
-	 * @return string
28
-	 */
29
-	public function get_edit_page_link( $id );
22
+    /**
23
+     * Return the edit page link.
24
+     *
25
+     * @param $id
26
+     *
27
+     * @return string
28
+     */
29
+    public function get_edit_page_link( $id );
30 30
 }
31 31
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -9,15 +9,15 @@  discard block
 block discarded – undo
9 9
 
10 10
 interface Link {
11 11
 
12
-	public function get_link_title( $id, $label_to_be_ignored );
12
+	public function get_link_title($id, $label_to_be_ignored);
13 13
 
14
-	public function get_same_as_uris( $id );
14
+	public function get_same_as_uris($id);
15 15
 
16
-	public function get_id( $uri );
16
+	public function get_id($uri);
17 17
 
18
-	public function get_synonyms( $id );
18
+	public function get_synonyms($id);
19 19
 
20
-	public function get_permalink( $id );
20
+	public function get_permalink($id);
21 21
 
22 22
 	/**
23 23
 	 * Return the edit page link.
@@ -26,5 +26,5 @@  discard block
 block discarded – undo
26 26
 	 *
27 27
 	 * @return string
28 28
 	 */
29
-	public function get_edit_page_link( $id );
29
+	public function get_edit_page_link($id);
30 30
 }
31 31
\ No newline at end of file
Please login to merge, or discard this patch.
src/wordlift/entity-type/class-entity-type-setter.php 2 patches
Indentation   +174 added lines, -174 removed lines patch added patch discarded remove patch
@@ -12,180 +12,180 @@
 block discarded – undo
12 12
 class Entity_Type_Setter {
13 13
 
14 14
 
15
-	const STARTER_PLAN = 'wl_starter';
16
-
17
-	const PROFESSIONAL_PLAN = 'wl_professional';
18
-
19
-	const BUSINESS_PLAN = 'wl_business';
20
-
21
-	private static $subscription_types = array(
22
-		self::STARTER_PLAN,
23
-		self::PROFESSIONAL_PLAN,
24
-		self::BUSINESS_PLAN
25
-	);
26
-
27
-
28
-	public static function get_starter_entity_types() {
29
-		return array(
30
-			array(
31
-				'label'       => 'Person',
32
-				'description' => 'A person (or a music artist).',
33
-			),
34
-			array(
35
-				'label'       => 'Thing',
36
-				'description' => 'A generic thing (something that doesn\'t fit in the previous definitions.',
37
-			),
38
-
39
-			array(
40
-				'label'       => 'Place',
41
-				'description' => 'A place.',
42
-			),
43
-
44
-			array(
45
-				'label'       => 'CreativeWork',
46
-				'description' => 'A creative work (or a Music Album).',
47
-			),
48
-			array(
49
-				'label'       => 'Organization',
50
-				'description' => 'An organization, including a government or a newspaper.',
51
-			),
52
-
53
-			array(
54
-				'label'       => 'Article',
55
-				'description' => 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.'
56
-			),
57
-
58
-			array(
59
-				'label'       => 'WebSite',
60
-				'description' => 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.'
61
-			),
62
-
63
-			array(
64
-				'label'       => 'NewsArticle',
65
-				'description' => 'A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.'
66
-			),
67
-
68
-			array(
69
-				'label'       => 'AboutPage',
70
-				'description' => 'An About page.'
71
-			),
72
-
73
-			array(
74
-				'label'       => 'ContactPage',
75
-				'description' => 'A Contact Page.'
76
-			)
77
-
78
-		);
79
-	}
80
-
81
-
82
-	public static function get_professional_entity_types() {
83
-		return array(
84
-
85
-			array(
86
-				'label'       => 'FAQPage',
87
-				'description' => 'A FAQPage is a WebPage presenting one or more "Frequently asked questions".'
88
-			),
89
-			array(
90
-				'label'       => 'LocalBusiness',
91
-				'description' => 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.'
92
-			),
93
-			array(
94
-				'label'       => 'Recipe',
95
-				'description' => 'A recipe'
96
-			),
97
-			array(
98
-				'label'       => 'PodcastEpisode',
99
-				'description' => 'A single episode of a podcast series.'
100
-			),
101
-			array(
102
-				'label'       => 'Course',
103
-				'description' => 'A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. '
104
-			),
105
-			array(
106
-				'label'       => 'Event',
107
-				'description' => 'An event happening at a certain time and location, such as a concert, lecture, or festival.'
108
-			),
109
-			array(
110
-				'label'       => 'Review',
111
-				'description' => 'A review of an item - for example, of a restaurant, movie, or store.'
112
-			),
113
-
114
-		);
115
-	}
116
-
117
-
118
-	private function get_entity_types_by_package_type( $package_type ) {
119
-
120
-		switch ( $package_type ) {
121
-			case self::STARTER_PLAN:
122
-				return self::get_starter_entity_types();
123
-			case self::BUSINESS_PLAN:
124
-			case self::PROFESSIONAL_PLAN:
125
-				// We return same entity types for professional and business plans.
126
-				// Business plan should have sync schema ui feature enabled, to sync all the entity types.
127
-				return array_merge(
128
-					self::get_starter_entity_types(),
129
-					self::get_professional_entity_types()
130
-				);
131
-			default:
132
-				return array();
133
-
134
-		}
135
-
136
-	}
137
-
138
-
139
-	public function __construct() {
140
-		add_action( 'wl_package_type_changed', array( $this, 'wl_package_type_changed' ) );
141
-	}
142
-
143
-
144
-	public function wl_package_type_changed( $package_type ) {
145
-
146
-		// Dont make any changes if we cant identify the subscription type.
147
-		if ( ! $package_type || ! in_array( $package_type, self::$subscription_types ) ) {
148
-			return;
149
-		}
150
-
151
-		$entity_types_data = $this->get_entity_types_by_package_type( $package_type );
152
-
153
-		// If we dont have entity types returned, then dont reset the entity types, return early.
154
-		if ( ! $entity_types_data ) {
155
-			return;
156
-		}
157
-
158
-		// Remove all entity types from db.
159
-		$this->remove_all_entity_types();
160
-
161
-		// Repopulate the ones returned by package type.
162
-		foreach ( $entity_types_data as $term_data ) {
163
-			wp_insert_term(
164
-				$term_data['label'],
165
-				Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME,
166
-				array(
167
-					'description' => $term_data['description']
168
-				)
169
-			);
170
-		}
171
-
172
-	}
173
-
174
-
175
-	/**
176
-	 * Remove all the entity types from db
177
-	 * @return void
178
-	 */
179
-	private function remove_all_entity_types() {
180
-
181
-		$entity_types = Terms_Compat::get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array(
182
-			'hide_empty' => false,
183
-			'fields'     => 'ids'
184
-		) );
185
-		foreach ( $entity_types as $entity_type_id ) {
186
-			wp_delete_term( $entity_type_id, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME );
187
-		}
188
-	}
15
+    const STARTER_PLAN = 'wl_starter';
16
+
17
+    const PROFESSIONAL_PLAN = 'wl_professional';
18
+
19
+    const BUSINESS_PLAN = 'wl_business';
20
+
21
+    private static $subscription_types = array(
22
+        self::STARTER_PLAN,
23
+        self::PROFESSIONAL_PLAN,
24
+        self::BUSINESS_PLAN
25
+    );
26
+
27
+
28
+    public static function get_starter_entity_types() {
29
+        return array(
30
+            array(
31
+                'label'       => 'Person',
32
+                'description' => 'A person (or a music artist).',
33
+            ),
34
+            array(
35
+                'label'       => 'Thing',
36
+                'description' => 'A generic thing (something that doesn\'t fit in the previous definitions.',
37
+            ),
38
+
39
+            array(
40
+                'label'       => 'Place',
41
+                'description' => 'A place.',
42
+            ),
43
+
44
+            array(
45
+                'label'       => 'CreativeWork',
46
+                'description' => 'A creative work (or a Music Album).',
47
+            ),
48
+            array(
49
+                'label'       => 'Organization',
50
+                'description' => 'An organization, including a government or a newspaper.',
51
+            ),
52
+
53
+            array(
54
+                'label'       => 'Article',
55
+                'description' => 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.'
56
+            ),
57
+
58
+            array(
59
+                'label'       => 'WebSite',
60
+                'description' => 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.'
61
+            ),
62
+
63
+            array(
64
+                'label'       => 'NewsArticle',
65
+                'description' => 'A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.'
66
+            ),
67
+
68
+            array(
69
+                'label'       => 'AboutPage',
70
+                'description' => 'An About page.'
71
+            ),
72
+
73
+            array(
74
+                'label'       => 'ContactPage',
75
+                'description' => 'A Contact Page.'
76
+            )
77
+
78
+        );
79
+    }
80
+
81
+
82
+    public static function get_professional_entity_types() {
83
+        return array(
84
+
85
+            array(
86
+                'label'       => 'FAQPage',
87
+                'description' => 'A FAQPage is a WebPage presenting one or more "Frequently asked questions".'
88
+            ),
89
+            array(
90
+                'label'       => 'LocalBusiness',
91
+                'description' => 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.'
92
+            ),
93
+            array(
94
+                'label'       => 'Recipe',
95
+                'description' => 'A recipe'
96
+            ),
97
+            array(
98
+                'label'       => 'PodcastEpisode',
99
+                'description' => 'A single episode of a podcast series.'
100
+            ),
101
+            array(
102
+                'label'       => 'Course',
103
+                'description' => 'A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. '
104
+            ),
105
+            array(
106
+                'label'       => 'Event',
107
+                'description' => 'An event happening at a certain time and location, such as a concert, lecture, or festival.'
108
+            ),
109
+            array(
110
+                'label'       => 'Review',
111
+                'description' => 'A review of an item - for example, of a restaurant, movie, or store.'
112
+            ),
113
+
114
+        );
115
+    }
116
+
117
+
118
+    private function get_entity_types_by_package_type( $package_type ) {
119
+
120
+        switch ( $package_type ) {
121
+            case self::STARTER_PLAN:
122
+                return self::get_starter_entity_types();
123
+            case self::BUSINESS_PLAN:
124
+            case self::PROFESSIONAL_PLAN:
125
+                // We return same entity types for professional and business plans.
126
+                // Business plan should have sync schema ui feature enabled, to sync all the entity types.
127
+                return array_merge(
128
+                    self::get_starter_entity_types(),
129
+                    self::get_professional_entity_types()
130
+                );
131
+            default:
132
+                return array();
133
+
134
+        }
135
+
136
+    }
137
+
138
+
139
+    public function __construct() {
140
+        add_action( 'wl_package_type_changed', array( $this, 'wl_package_type_changed' ) );
141
+    }
142
+
143
+
144
+    public function wl_package_type_changed( $package_type ) {
145
+
146
+        // Dont make any changes if we cant identify the subscription type.
147
+        if ( ! $package_type || ! in_array( $package_type, self::$subscription_types ) ) {
148
+            return;
149
+        }
150
+
151
+        $entity_types_data = $this->get_entity_types_by_package_type( $package_type );
152
+
153
+        // If we dont have entity types returned, then dont reset the entity types, return early.
154
+        if ( ! $entity_types_data ) {
155
+            return;
156
+        }
157
+
158
+        // Remove all entity types from db.
159
+        $this->remove_all_entity_types();
160
+
161
+        // Repopulate the ones returned by package type.
162
+        foreach ( $entity_types_data as $term_data ) {
163
+            wp_insert_term(
164
+                $term_data['label'],
165
+                Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME,
166
+                array(
167
+                    'description' => $term_data['description']
168
+                )
169
+            );
170
+        }
171
+
172
+    }
173
+
174
+
175
+    /**
176
+     * Remove all the entity types from db
177
+     * @return void
178
+     */
179
+    private function remove_all_entity_types() {
180
+
181
+        $entity_types = Terms_Compat::get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array(
182
+            'hide_empty' => false,
183
+            'fields'     => 'ids'
184
+        ) );
185
+        foreach ( $entity_types as $entity_type_id ) {
186
+            wp_delete_term( $entity_type_id, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME );
187
+        }
188
+    }
189 189
 
190 190
 
191 191
 }
192 192
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -115,9 +115,9 @@  discard block
 block discarded – undo
115 115
 	}
116 116
 
117 117
 
118
-	private function get_entity_types_by_package_type( $package_type ) {
118
+	private function get_entity_types_by_package_type($package_type) {
119 119
 
120
-		switch ( $package_type ) {
120
+		switch ($package_type) {
121 121
 			case self::STARTER_PLAN:
122 122
 				return self::get_starter_entity_types();
123 123
 			case self::BUSINESS_PLAN:
@@ -137,21 +137,21 @@  discard block
 block discarded – undo
137 137
 
138 138
 
139 139
 	public function __construct() {
140
-		add_action( 'wl_package_type_changed', array( $this, 'wl_package_type_changed' ) );
140
+		add_action('wl_package_type_changed', array($this, 'wl_package_type_changed'));
141 141
 	}
142 142
 
143 143
 
144
-	public function wl_package_type_changed( $package_type ) {
144
+	public function wl_package_type_changed($package_type) {
145 145
 
146 146
 		// Dont make any changes if we cant identify the subscription type.
147
-		if ( ! $package_type || ! in_array( $package_type, self::$subscription_types ) ) {
147
+		if ( ! $package_type || ! in_array($package_type, self::$subscription_types)) {
148 148
 			return;
149 149
 		}
150 150
 
151
-		$entity_types_data = $this->get_entity_types_by_package_type( $package_type );
151
+		$entity_types_data = $this->get_entity_types_by_package_type($package_type);
152 152
 
153 153
 		// If we dont have entity types returned, then dont reset the entity types, return early.
154
-		if ( ! $entity_types_data ) {
154
+		if ( ! $entity_types_data) {
155 155
 			return;
156 156
 		}
157 157
 
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 		$this->remove_all_entity_types();
160 160
 
161 161
 		// Repopulate the ones returned by package type.
162
-		foreach ( $entity_types_data as $term_data ) {
162
+		foreach ($entity_types_data as $term_data) {
163 163
 			wp_insert_term(
164 164
 				$term_data['label'],
165 165
 				Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME,
@@ -178,12 +178,12 @@  discard block
 block discarded – undo
178 178
 	 */
179 179
 	private function remove_all_entity_types() {
180 180
 
181
-		$entity_types = Terms_Compat::get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array(
181
+		$entity_types = Terms_Compat::get_terms(Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array(
182 182
 			'hide_empty' => false,
183 183
 			'fields'     => 'ids'
184
-		) );
185
-		foreach ( $entity_types as $entity_type_id ) {
186
-			wp_delete_term( $entity_type_id, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME );
184
+		));
185
+		foreach ($entity_types as $entity_type_id) {
186
+			wp_delete_term($entity_type_id, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME);
187 187
 		}
188 188
 	}
189 189
 
Please login to merge, or discard this patch.
src/wordlift/vocabulary/class-terms-compat.php 2 patches
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -3,20 +3,20 @@
 block discarded – undo
3 3
 
4 4
 class Terms_Compat {
5 5
 
6
-	public static function get_terms( $taxonomy, $args ) {
7
-		global $wp_version;
6
+    public static function get_terms( $taxonomy, $args ) {
7
+        global $wp_version;
8 8
 
9
-		if ( version_compare( $wp_version, '4.5', '<' ) ) {
10
-			return get_terms( $taxonomy, $args );
11
-		} else {
12
-			$args['taxonomy'] = $taxonomy;
13
-			return get_terms( $args );
14
-		}
15
-	}
9
+        if ( version_compare( $wp_version, '4.5', '<' ) ) {
10
+            return get_terms( $taxonomy, $args );
11
+        } else {
12
+            $args['taxonomy'] = $taxonomy;
13
+            return get_terms( $args );
14
+        }
15
+    }
16 16
 
17
-	public static function get_public_taxonomies() {
18
-		return get_taxonomies( array( 'public' => true ) );
19
-	}
17
+    public static function get_public_taxonomies() {
18
+        return get_taxonomies( array( 'public' => true ) );
19
+    }
20 20
 
21 21
 
22 22
 }
23 23
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -3,19 +3,19 @@
 block discarded – undo
3 3
 
4 4
 class Terms_Compat {
5 5
 
6
-	public static function get_terms( $taxonomy, $args ) {
6
+	public static function get_terms($taxonomy, $args) {
7 7
 		global $wp_version;
8 8
 
9
-		if ( version_compare( $wp_version, '4.5', '<' ) ) {
10
-			return get_terms( $taxonomy, $args );
9
+		if (version_compare($wp_version, '4.5', '<')) {
10
+			return get_terms($taxonomy, $args);
11 11
 		} else {
12 12
 			$args['taxonomy'] = $taxonomy;
13
-			return get_terms( $args );
13
+			return get_terms($args);
14 14
 		}
15 15
 	}
16 16
 
17 17
 	public static function get_public_taxonomies() {
18
-		return get_taxonomies( array( 'public' => true ) );
18
+		return get_taxonomies(array('public' => true));
19 19
 	}
20 20
 
21 21
 
Please login to merge, or discard this patch.
src/includes/class-wordlift.php 1 patch
Indentation   +1925 added lines, -1925 removed lines patch added patch discarded remove patch
@@ -84,1649 +84,1649 @@  discard block
 block discarded – undo
84 84
  */
85 85
 class Wordlift {
86 86
 
87
-	//<editor-fold desc="## FIELDS">
88
-
89
-	/**
90
-	 * The loader that's responsible for maintaining and registering all hooks that power
91
-	 * the plugin.
92
-	 *
93
-	 * @since    1.0.0
94
-	 * @access   protected
95
-	 * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
96
-	 */
97
-	protected $loader;
98
-
99
-	/**
100
-	 * The unique identifier of this plugin.
101
-	 *
102
-	 * @since    1.0.0
103
-	 * @access   protected
104
-	 * @var      string $plugin_name The string used to uniquely identify this plugin.
105
-	 */
106
-	protected $plugin_name;
107
-
108
-	/**
109
-	 * The current version of the plugin.
110
-	 *
111
-	 * @since    1.0.0
112
-	 * @access   protected
113
-	 * @var      string $version The current version of the plugin.
114
-	 */
115
-	protected $version;
116
-
117
-	/**
118
-	 * The {@link Wordlift_Tinymce_Adapter} instance.
119
-	 *
120
-	 * @since  3.12.0
121
-	 * @access protected
122
-	 * @var \Wordlift_Tinymce_Adapter $tinymce_adapter The {@link Wordlift_Tinymce_Adapter} instance.
123
-	 */
124
-	protected $tinymce_adapter;
125
-
126
-	/**
127
-	 * The {@link Faq_Tinymce_Adapter} instance
128
-	 * @since 3.26.0
129
-	 * @access protected
130
-	 * @var Faq_Tinymce_Adapter $faq_tinymce_adapter .
131
-	 */
132
-	//protected $faq_tinymce_adapter;
133
-
134
-	/**
135
-	 * The Thumbnail service.
136
-	 *
137
-	 * @since  3.1.5
138
-	 * @access private
139
-	 * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
140
-	 */
141
-	private $thumbnail_service;
142
-
143
-	/**
144
-	 * The UI service.
145
-	 *
146
-	 * @since  3.2.0
147
-	 * @access private
148
-	 * @var \Wordlift_UI_Service $ui_service The UI service.
149
-	 */
150
-	private $ui_service;
151
-
152
-	/**
153
-	 * The Schema service.
154
-	 *
155
-	 * @since  3.3.0
156
-	 * @access protected
157
-	 * @var \Wordlift_Schema_Service $schema_service The Schema service.
158
-	 */
159
-	protected $schema_service;
160
-
161
-	/**
162
-	 * The Entity service.
163
-	 *
164
-	 * @since  3.1.0
165
-	 * @access protected
166
-	 * @var \Wordlift_Entity_Service $entity_service The Entity service.
167
-	 */
168
-	protected $entity_service;
169
-
170
-	/**
171
-	 * The Topic Taxonomy service.
172
-	 *
173
-	 * @since  3.5.0
174
-	 * @access private
175
-	 * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
176
-	 */
177
-	private $topic_taxonomy_service;
178
-
179
-	/**
180
-	 * The Entity Types Taxonomy service.
181
-	 *
182
-	 * @since  3.18.0
183
-	 * @access private
184
-	 * @var \Wordlift_Entity_Type_Taxonomy_Service The Entity Types Taxonomy service.
185
-	 */
186
-	private $entity_types_taxonomy_service;
187
-
188
-	/**
189
-	 * The User service.
190
-	 *
191
-	 * @since  3.1.7
192
-	 * @access protected
193
-	 * @var \Wordlift_User_Service $user_service The User service.
194
-	 */
195
-	protected $user_service;
196
-
197
-	/**
198
-	 * The Timeline service.
199
-	 *
200
-	 * @since  3.1.0
201
-	 * @access private
202
-	 * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
203
-	 */
204
-	private $timeline_service;
205
-
206
-	/**
207
-	 * The Redirect service.
208
-	 *
209
-	 * @since  3.2.0
210
-	 * @access private
211
-	 * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
212
-	 */
213
-	private $redirect_service;
214
-
215
-	/**
216
-	 * The Notice service.
217
-	 *
218
-	 * @since  3.3.0
219
-	 * @access private
220
-	 * @var \Wordlift_Notice_Service $notice_service The Notice service.
221
-	 */
222
-	private $notice_service;
223
-
224
-	/**
225
-	 * The Entity list customization.
226
-	 *
227
-	 * @since  3.3.0
228
-	 * @access protected
229
-	 * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
230
-	 */
231
-	protected $entity_list_service;
232
-
233
-	/**
234
-	 * The Entity Types Taxonomy Walker.
235
-	 *
236
-	 * @since  3.1.0
237
-	 * @access private
238
-	 * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
239
-	 */
240
-	private $entity_types_taxonomy_walker;
241
-
242
-	/**
243
-	 * The ShareThis service.
244
-	 *
245
-	 * @since  3.2.0
246
-	 * @access private
247
-	 * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
248
-	 */
249
-	private $sharethis_service;
250
-
251
-	/**
252
-	 * The PrimaShop adapter.
253
-	 *
254
-	 * @since  3.2.3
255
-	 * @access private
256
-	 * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
257
-	 */
258
-	private $primashop_adapter;
259
-
260
-	/**
261
-	 * The WordLift Dashboard adapter.
262
-	 *
263
-	 * @since  3.4.0
264
-	 * @access private
265
-	 * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
266
-	 */
267
-	private $dashboard_service;
268
-
269
-	/**
270
-	 * The entity type service.
271
-	 *
272
-	 * @since  3.6.0
273
-	 * @access private
274
-	 * @var \Wordlift_Entity_Post_Type_Service
275
-	 */
276
-	private $entity_post_type_service;
277
-
278
-	/**
279
-	 * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
280
-	 *
281
-	 * @since  3.6.0
282
-	 * @access private
283
-	 * @var \Wordlift_Entity_Link_Service $entity_link_service The {@link Wordlift_Entity_Link_Service} instance.
284
-	 */
285
-	private $entity_link_service;
286
-
287
-	/**
288
-	 * A {@link Wordlift_Sparql_Service} instance.
289
-	 *
290
-	 * @since    3.6.0
291
-	 * @access   protected
292
-	 * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
293
-	 */
294
-	protected $sparql_service;
295
-
296
-	/**
297
-	 * A {@link Wordlift_Import_Service} instance.
298
-	 *
299
-	 * @since  3.6.0
300
-	 * @access private
301
-	 * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
302
-	 */
303
-	private $import_service;
304
-
305
-	/**
306
-	 * A {@link Wordlift_Rebuild_Service} instance.
307
-	 *
308
-	 * @since  3.6.0
309
-	 * @access private
310
-	 * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
311
-	 */
312
-	private $rebuild_service;
313
-
314
-	/**
315
-	 * A {@link Wordlift_Jsonld_Service} instance.
316
-	 *
317
-	 * @since  3.7.0
318
-	 * @access protected
319
-	 * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
320
-	 */
321
-	protected $jsonld_service;
322
-
323
-	/**
324
-	 * A {@link Wordlift_Website_Jsonld_Converter} instance.
325
-	 *
326
-	 * @since  3.14.0
327
-	 * @access protected
328
-	 * @var \Wordlift_Website_Jsonld_Converter $jsonld_website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
329
-	 */
330
-	protected $jsonld_website_converter;
331
-
332
-	/**
333
-	 * A {@link Wordlift_Property_Factory} instance.
334
-	 *
335
-	 * @since  3.7.0
336
-	 * @access private
337
-	 * @var \Wordlift_Property_Factory $property_factory
338
-	 */
339
-	private $property_factory;
340
-
341
-	/**
342
-	 * The 'Download Your Data' page.
343
-	 *
344
-	 * @since  3.6.0
345
-	 * @access private
346
-	 * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
347
-	 */
348
-	private $download_your_data_page;
349
-
350
-	/**
351
-	 * The 'WordLift Settings' page.
352
-	 *
353
-	 * @since  3.11.0
354
-	 * @access protected
355
-	 * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
356
-	 */
357
-	protected $settings_page;
358
-
359
-	/**
360
-	 * The install wizard page.
361
-	 *
362
-	 * @since  3.9.0
363
-	 * @access private
364
-	 * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
365
-	 */
366
-	public $admin_setup;
367
-
368
-	/**
369
-	 * The Content Filter Service hooks up to the 'the_content' filter and provides
370
-	 * linking of entities to their pages.
371
-	 *
372
-	 * @since  3.8.0
373
-	 * @access private
374
-	 * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
375
-	 */
376
-	private $content_filter_service;
377
-
378
-	/**
379
-	 * The Faq Content filter service
380
-	 * @since  3.26.0
381
-	 * @access private
382
-	 * @var Faq_Content_Filter $faq_content_filter_service A {@link Faq_Content_Filter} instance.
383
-	 */
384
-	private $faq_content_filter_service;
385
-
386
-	/**
387
-	 * A {@link Wordlift_Key_Validation_Service} instance.
388
-	 *
389
-	 * @since  3.9.0
390
-	 * @access private
391
-	 * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
392
-	 */
393
-	private $key_validation_service;
394
-
395
-	/**
396
-	 * A {@link Wordlift_Rating_Service} instance.
397
-	 *
398
-	 * @since  3.10.0
399
-	 * @access private
400
-	 * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
401
-	 */
402
-	private $rating_service;
403
-
404
-	/**
405
-	 * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
406
-	 *
407
-	 * @since  3.10.0
408
-	 * @access protected
409
-	 * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
410
-	 */
411
-	protected $post_to_jsonld_converter;
412
-
413
-	/**
414
-	 * A {@link Wordlift_Configuration_Service} instance.
415
-	 *
416
-	 * @since  3.10.0
417
-	 * @access protected
418
-	 * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
419
-	 */
420
-	protected $configuration_service;
421
-
422
-	/**
423
-	 * A {@link Wordlift_Install_Service} instance.
424
-	 *
425
-	 * @since  3.18.0
426
-	 * @access protected
427
-	 * @var \Wordlift_Install_Service $install_service A {@link Wordlift_Install_Service} instance.
428
-	 */
429
-	protected $install_service;
430
-
431
-	/**
432
-	 * A {@link Wordlift_Entity_Type_Service} instance.
433
-	 *
434
-	 * @since  3.10.0
435
-	 * @access protected
436
-	 * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
437
-	 */
438
-	protected $entity_type_service;
439
-
440
-	/**
441
-	 * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
442
-	 *
443
-	 * @since  3.10.0
444
-	 * @access protected
445
-	 * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
446
-	 */
447
-	protected $entity_post_to_jsonld_converter;
448
-
449
-	/**
450
-	 * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
451
-	 *
452
-	 * @since  3.10.0
453
-	 * @access protected
454
-	 * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
455
-	 */
456
-	protected $postid_to_jsonld_converter;
457
-
458
-	/**
459
-	 * The {@link Wordlift_Admin_Status_Page} class.
460
-	 *
461
-	 * @since  3.9.8
462
-	 * @access private
463
-	 * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
464
-	 */
465
-	private $status_page;
466
-
467
-	/**
468
-	 * The {@link Wordlift_Category_Taxonomy_Service} instance.
469
-	 *
470
-	 * @since  3.11.0
471
-	 * @access protected
472
-	 * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
473
-	 */
474
-	protected $category_taxonomy_service;
475
-
476
-	/**
477
-	 * The {@link Wordlift_Entity_Page_Service} instance.
478
-	 *
479
-	 * @since  3.11.0
480
-	 * @access protected
481
-	 * @var \Wordlift_Entity_Page_Service $entity_page_service The {@link Wordlift_Entity_Page_Service} instance.
482
-	 */
483
-	protected $entity_page_service;
484
-
485
-	/**
486
-	 * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
487
-	 *
488
-	 * @since  3.11.0
489
-	 * @access protected
490
-	 * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
491
-	 */
492
-	protected $settings_page_action_link;
493
-
494
-	/**
495
-	 * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
496
-	 *
497
-	 * @since  3.11.0
498
-	 * @access protected
499
-	 * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
500
-	 */
501
-	protected $analytics_settings_page_action_link;
502
-
503
-	/**
504
-	 * The {@link Wordlift_Analytics_Connect} class.
505
-	 *
506
-	 * @since  3.11.0
507
-	 * @access protected
508
-	 * @var \Wordlift_Analytics_Connect $analytics_connect The {@link Wordlift_Analytics_Connect} class.
509
-	 */
510
-	protected $analytics_connect;
511
-
512
-	/**
513
-	 * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
514
-	 *
515
-	 * @since  3.11.0
516
-	 * @access protected
517
-	 * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
518
-	 */
519
-	protected $publisher_ajax_adapter;
520
-
521
-	/**
522
-	 * The {@link Wordlift_Admin_Input_Element} element renderer.
523
-	 *
524
-	 * @since  3.11.0
525
-	 * @access protected
526
-	 * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
527
-	 */
528
-	protected $input_element;
529
-
530
-	/**
531
-	 * The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
532
-	 *
533
-	 * @since  3.13.0
534
-	 * @access protected
535
-	 * @var \Wordlift_Admin_Radio_Input_Element $radio_input_element The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
536
-	 */
537
-	protected $radio_input_element;
538
-
539
-	/**
540
-	 * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
541
-	 *
542
-	 * @since  3.11.0
543
-	 * @access protected
544
-	 * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
545
-	 */
546
-	protected $language_select_element;
547
-
548
-	/**
549
-	 * The {@link Wordlift_Admin_Country_Select_Element} element renderer.
550
-	 *
551
-	 * @since  3.18.0
552
-	 * @access protected
553
-	 * @var \Wordlift_Admin_Country_Select_Element $country_select_element The {@link Wordlift_Admin_Country_Select_Element} element renderer.
554
-	 */
555
-	protected $country_select_element;
556
-
557
-	/**
558
-	 * The {@link Wordlift_Admin_Publisher_Element} element renderer.
559
-	 *
560
-	 * @since  3.11.0
561
-	 * @access protected
562
-	 * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
563
-	 */
564
-	protected $publisher_element;
565
-
566
-	/**
567
-	 * The {@link Wordlift_Admin_Select2_Element} element renderer.
568
-	 *
569
-	 * @since  3.11.0
570
-	 * @access protected
571
-	 * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
572
-	 */
573
-	protected $select2_element;
574
-
575
-	/**
576
-	 * The controller for the entity type list admin page
577
-	 *
578
-	 * @since  3.11.0
579
-	 * @access private
580
-	 * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
581
-	 */
582
-	private $entity_type_admin_page;
583
-
584
-	/**
585
-	 * The controller for the entity type settings admin page
586
-	 *
587
-	 * @since  3.11.0
588
-	 * @access private
589
-	 * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
590
-	 */
591
-	private $entity_type_settings_admin_page;
592
-
593
-	/**
594
-	 * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
595
-	 *
596
-	 * @since  3.11.0
597
-	 * @access protected
598
-	 * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
599
-	 */
600
-	protected $related_entities_cloud_widget;
601
-
602
-	/**
603
-	 * The {@link Wordlift_Admin_Author_Element} instance.
604
-	 *
605
-	 * @since  3.14.0
606
-	 * @access protected
607
-	 * @var \Wordlift_Admin_Author_Element $author_element The {@link Wordlift_Admin_Author_Element} instance.
608
-	 */
609
-	protected $author_element;
610
-
611
-	/**
612
-	 * The {@link Wordlift_Sample_Data_Service} instance.
613
-	 *
614
-	 * @since  3.12.0
615
-	 * @access protected
616
-	 * @var \Wordlift_Sample_Data_Service $sample_data_service The {@link Wordlift_Sample_Data_Service} instance.
617
-	 */
618
-	protected $sample_data_service;
619
-
620
-	/**
621
-	 * The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
622
-	 *
623
-	 * @since  3.12.0
624
-	 * @access protected
625
-	 * @var \Wordlift_Sample_Data_Ajax_Adapter $sample_data_ajax_adapter The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
626
-	 */
627
-	protected $sample_data_ajax_adapter;
628
-
629
-	/**
630
-	 * The {@link Wordlift_Relation_Rebuild_Service} instance.
631
-	 *
632
-	 * @since  3.14.3
633
-	 * @access private
634
-	 * @var \Wordlift_Relation_Rebuild_Service $relation_rebuild_service The {@link Wordlift_Relation_Rebuild_Service} instance.
635
-	 */
636
-	private $relation_rebuild_service;
637
-
638
-	/**
639
-	 * The {@link Wordlift_Relation_Rebuild_Adapter} instance.
640
-	 *
641
-	 * @since  3.14.3
642
-	 * @access private
643
-	 * @var \Wordlift_Relation_Rebuild_Adapter $relation_rebuild_adapter The {@link Wordlift_Relation_Rebuild_Adapter} instance.
644
-	 */
645
-	private $relation_rebuild_adapter;
646
-
647
-	/**
648
-	 * The {@link Wordlift_Reference_Rebuild_Service} instance.
649
-	 *
650
-	 * @since  3.18.0
651
-	 * @access private
652
-	 * @var \Wordlift_Reference_Rebuild_Service $reference_rebuild_service The {@link Wordlift_Reference_Rebuild_Service} instance.
653
-	 */
654
-	private $reference_rebuild_service;
655
-
656
-	/**
657
-	 * The {@link Wordlift_Google_Analytics_Export_Service} instance.
658
-	 *
659
-	 * @since  3.16.0
660
-	 * @access protected
661
-	 * @var \Wordlift_Google_Analytics_Export_Service $google_analytics_export_service The {@link Wordlift_Google_Analytics_Export_Service} instance.
662
-	 */
663
-	protected $google_analytics_export_service;
664
-
665
-	/**
666
-	 * {@link Wordlift}'s singleton instance.
667
-	 *
668
-	 * @since  3.15.0
669
-	 * @access protected
670
-	 * @var \Wordlift_Entity_Type_Adapter $entity_type_adapter The {@link Wordlift_Entity_Type_Adapter} instance.
671
-	 */
672
-	protected $entity_type_adapter;
673
-
674
-	/**
675
-	 * The {@link Wordlift_Storage_Factory} instance.
676
-	 *
677
-	 * @since  3.15.0
678
-	 * @access protected
679
-	 * @var \Wordlift_Storage_Factory $storage_factory The {@link Wordlift_Storage_Factory} instance.
680
-	 */
681
-	protected $storage_factory;
682
-
683
-	/**
684
-	 * The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
685
-	 *
686
-	 * @since  3.15.0
687
-	 * @access protected
688
-	 * @var \Wordlift_Sparql_Tuple_Rendition_Factory $rendition_factory The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
689
-	 */
690
-	protected $rendition_factory;
691
-
692
-	/**
693
-	 * The {@link Wordlift_Autocomplete_Adapter} instance.
694
-	 *
695
-	 * @since  3.15.0
696
-	 * @access private
697
-	 * @var \Wordlift_Autocomplete_Adapter $autocomplete_adapter The {@link Wordlift_Autocomplete_Adapter} instance.
698
-	 */
699
-	private $autocomplete_adapter;
700
-
701
-	/**
702
-	 * The {@link Wordlift_Relation_Service} instance.
703
-	 *
704
-	 * @since  3.15.0
705
-	 * @access protected
706
-	 * @var \Wordlift_Relation_Service $relation_service The {@link Wordlift_Relation_Service} instance.
707
-	 */
708
-	protected $relation_service;
709
-
710
-	/**
711
-	 * The {@link Wordlift_Cached_Post_Converter} instance.
712
-	 *
713
-	 * @since  3.16.0
714
-	 * @access protected
715
-	 * @var  \Wordlift_Cached_Post_Converter $cached_postid_to_jsonld_converter The {@link Wordlift_Cached_Post_Converter} instance.
716
-	 *
717
-	 */
718
-	protected $cached_postid_to_jsonld_converter;
719
-
720
-	/**
721
-	 * The {@link Wordlift_Entity_Uri_Service} instance.
722
-	 *
723
-	 * @since  3.16.3
724
-	 * @access protected
725
-	 * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
726
-	 */
727
-	protected $entity_uri_service;
728
-
729
-	/**
730
-	 * The {@link Wordlift_Publisher_Service} instance.
731
-	 *
732
-	 * @since  3.19.0
733
-	 * @access protected
734
-	 * @var \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance.
735
-	 */
736
-	protected $publisher_service;
737
-
738
-	/**
739
-	 * The {@link Wordlift_Context_Cards_Service} instance.
740
-	 *
741
-	 * @var \Wordlift_Context_Cards_Service The {@link Wordlift_Context_Cards_Service} instance.
742
-	 */
743
-	protected $context_cards_service;
744
-
745
-	/**
746
-	 * {@link Wordlift}'s singleton instance.
747
-	 *
748
-	 * @since  3.11.2
749
-	 * @access private
750
-	 * @var Wordlift $instance {@link Wordlift}'s singleton instance.
751
-	 */
752
-	private static $instance;
753
-
754
-	/**
755
-	 * A singleton instance of features registry.
756
-	 * @since 3.30.0
757
-	 * @var Features_Registry
758
-	 */
759
-	private $features_registry;
760
-
761
-	//</editor-fold>
762
-
763
-	/**
764
-	 * Define the core functionality of the plugin.
765
-	 *
766
-	 * Set the plugin name and the plugin version that can be used throughout the plugin.
767
-	 * Load the dependencies, define the locale, and set the hooks for the admin area and
768
-	 * the public-facing side of the site.
769
-	 *
770
-	 * @since    1.0.0
771
-	 */
772
-	public function __construct() {
773
-
774
-		self::$instance = $this;
775
-
776
-		$this->plugin_name = 'wordlift';
777
-		$this->version     = '3.32.0';
778
-		$this->load_dependencies();
779
-		$this->set_locale();
780
-		$this->define_admin_hooks();
781
-		$this->define_public_hooks();
782
-
783
-		// If we're in `WP_CLI` load the related files.
784
-		if ( class_exists( 'WP_CLI' ) ) {
785
-			$this->load_cli_dependencies();
786
-		}
787
-
788
-	}
789
-
790
-	/**
791
-	 * Get the singleton instance.
792
-	 *
793
-	 * @return Wordlift The {@link Wordlift} singleton instance.
794
-	 * @since 3.11.2
795
-	 *
796
-	 */
797
-	public static function get_instance() {
798
-
799
-		return self::$instance;
800
-	}
801
-
802
-	/**
803
-	 * Load the required dependencies for this plugin.
804
-	 *
805
-	 * Include the following files that make up the plugin:
806
-	 *
807
-	 * - Wordlift_Loader. Orchestrates the hooks of the plugin.
808
-	 * - Wordlift_i18n. Defines internationalization functionality.
809
-	 * - Wordlift_Admin. Defines all hooks for the admin area.
810
-	 * - Wordlift_Public. Defines all hooks for the public side of the site.
811
-	 *
812
-	 * Create an instance of the loader which will be used to register the hooks
813
-	 * with WordPress.
814
-	 *
815
-	 * @throws Exception
816
-	 * @since    1.0.0
817
-	 * @access   private
818
-	 */
819
-	private function load_dependencies() {
820
-
821
-		/**
822
-		 * The class responsible for orchestrating the actions and filters of the
823
-		 * core plugin.
824
-		 */
825
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
826
-
827
-		// The class responsible for plugin uninstall.
828
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-deactivator-feedback.php';
829
-
830
-		/**
831
-		 * The class responsible for defining internationalization functionality
832
-		 * of the plugin.
833
-		 */
834
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
835
-
836
-		/**
837
-		 * WordLift's supported languages.
838
-		 */
839
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
840
-
841
-		/**
842
-		 * WordLift's supported countries.
843
-		 */
844
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-countries.php';
845
-
846
-		/**
847
-		 * Provide support functions to sanitize data.
848
-		 */
849
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
850
-
851
-		/** Services. */
852
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
853
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-http-api.php';
854
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
855
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
856
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
857
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
858
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
859
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-linked-data-service.php';
860
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-relation-service.php';
861
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-image-service.php';
862
-
863
-		/**
864
-		 * The Query builder.
865
-		 */
866
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
867
-
868
-		/**
869
-		 * The Schema service.
870
-		 */
871
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
872
-
873
-		/**
874
-		 * The schema:url property service.
875
-		 */
876
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
877
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
878
-
879
-		/**
880
-		 * The UI service.
881
-		 */
882
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
883
-
884
-		/**
885
-		 * The Thumbnail service.
886
-		 */
887
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
888
-
889
-		/**
890
-		 * The Entity Types Taxonomy service.
891
-		 */
892
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-taxonomy-service.php';
893
-
894
-		/**
895
-		 * The Entity service.
896
-		 */
897
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-uri-service.php';
898
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
899
-
900
-		// Add the entity rating service.
901
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
902
-
903
-		/**
904
-		 * The User service.
905
-		 */
906
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
907
-
908
-		/**
909
-		 * The Timeline service.
910
-		 */
911
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
912
-
913
-		/**
914
-		 * The Topic Taxonomy service.
915
-		 */
916
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
917
-
918
-		/**
919
-		 * The SPARQL service.
920
-		 */
921
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
922
-
923
-		/**
924
-		 * The WordLift import service.
925
-		 */
926
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
927
-
928
-		/**
929
-		 * The WordLift URI service.
930
-		 */
931
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
932
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
933
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-service.php';
934
-
935
-		/**
936
-		 * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
937
-		 */
938
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-listable.php';
939
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-rebuild-service.php';
940
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-reference-rebuild-service.php';
941
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-service.php';
942
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-adapter.php';
943
-
944
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
945
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
946
-
947
-		/**
948
-		 * Load the converters.
949
-		 */
950
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
951
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
952
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
953
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
954
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
955
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-website-converter.php';
956
-
957
-		/**
958
-		 * Load cache-related files.
959
-		 */
960
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/cache/require.php';
961
-
962
-		/**
963
-		 * Load the content filter.
964
-		 */
965
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
966
-
967
-		/*
87
+    //<editor-fold desc="## FIELDS">
88
+
89
+    /**
90
+     * The loader that's responsible for maintaining and registering all hooks that power
91
+     * the plugin.
92
+     *
93
+     * @since    1.0.0
94
+     * @access   protected
95
+     * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
96
+     */
97
+    protected $loader;
98
+
99
+    /**
100
+     * The unique identifier of this plugin.
101
+     *
102
+     * @since    1.0.0
103
+     * @access   protected
104
+     * @var      string $plugin_name The string used to uniquely identify this plugin.
105
+     */
106
+    protected $plugin_name;
107
+
108
+    /**
109
+     * The current version of the plugin.
110
+     *
111
+     * @since    1.0.0
112
+     * @access   protected
113
+     * @var      string $version The current version of the plugin.
114
+     */
115
+    protected $version;
116
+
117
+    /**
118
+     * The {@link Wordlift_Tinymce_Adapter} instance.
119
+     *
120
+     * @since  3.12.0
121
+     * @access protected
122
+     * @var \Wordlift_Tinymce_Adapter $tinymce_adapter The {@link Wordlift_Tinymce_Adapter} instance.
123
+     */
124
+    protected $tinymce_adapter;
125
+
126
+    /**
127
+     * The {@link Faq_Tinymce_Adapter} instance
128
+     * @since 3.26.0
129
+     * @access protected
130
+     * @var Faq_Tinymce_Adapter $faq_tinymce_adapter .
131
+     */
132
+    //protected $faq_tinymce_adapter;
133
+
134
+    /**
135
+     * The Thumbnail service.
136
+     *
137
+     * @since  3.1.5
138
+     * @access private
139
+     * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
140
+     */
141
+    private $thumbnail_service;
142
+
143
+    /**
144
+     * The UI service.
145
+     *
146
+     * @since  3.2.0
147
+     * @access private
148
+     * @var \Wordlift_UI_Service $ui_service The UI service.
149
+     */
150
+    private $ui_service;
151
+
152
+    /**
153
+     * The Schema service.
154
+     *
155
+     * @since  3.3.0
156
+     * @access protected
157
+     * @var \Wordlift_Schema_Service $schema_service The Schema service.
158
+     */
159
+    protected $schema_service;
160
+
161
+    /**
162
+     * The Entity service.
163
+     *
164
+     * @since  3.1.0
165
+     * @access protected
166
+     * @var \Wordlift_Entity_Service $entity_service The Entity service.
167
+     */
168
+    protected $entity_service;
169
+
170
+    /**
171
+     * The Topic Taxonomy service.
172
+     *
173
+     * @since  3.5.0
174
+     * @access private
175
+     * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
176
+     */
177
+    private $topic_taxonomy_service;
178
+
179
+    /**
180
+     * The Entity Types Taxonomy service.
181
+     *
182
+     * @since  3.18.0
183
+     * @access private
184
+     * @var \Wordlift_Entity_Type_Taxonomy_Service The Entity Types Taxonomy service.
185
+     */
186
+    private $entity_types_taxonomy_service;
187
+
188
+    /**
189
+     * The User service.
190
+     *
191
+     * @since  3.1.7
192
+     * @access protected
193
+     * @var \Wordlift_User_Service $user_service The User service.
194
+     */
195
+    protected $user_service;
196
+
197
+    /**
198
+     * The Timeline service.
199
+     *
200
+     * @since  3.1.0
201
+     * @access private
202
+     * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
203
+     */
204
+    private $timeline_service;
205
+
206
+    /**
207
+     * The Redirect service.
208
+     *
209
+     * @since  3.2.0
210
+     * @access private
211
+     * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
212
+     */
213
+    private $redirect_service;
214
+
215
+    /**
216
+     * The Notice service.
217
+     *
218
+     * @since  3.3.0
219
+     * @access private
220
+     * @var \Wordlift_Notice_Service $notice_service The Notice service.
221
+     */
222
+    private $notice_service;
223
+
224
+    /**
225
+     * The Entity list customization.
226
+     *
227
+     * @since  3.3.0
228
+     * @access protected
229
+     * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
230
+     */
231
+    protected $entity_list_service;
232
+
233
+    /**
234
+     * The Entity Types Taxonomy Walker.
235
+     *
236
+     * @since  3.1.0
237
+     * @access private
238
+     * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
239
+     */
240
+    private $entity_types_taxonomy_walker;
241
+
242
+    /**
243
+     * The ShareThis service.
244
+     *
245
+     * @since  3.2.0
246
+     * @access private
247
+     * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
248
+     */
249
+    private $sharethis_service;
250
+
251
+    /**
252
+     * The PrimaShop adapter.
253
+     *
254
+     * @since  3.2.3
255
+     * @access private
256
+     * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
257
+     */
258
+    private $primashop_adapter;
259
+
260
+    /**
261
+     * The WordLift Dashboard adapter.
262
+     *
263
+     * @since  3.4.0
264
+     * @access private
265
+     * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
266
+     */
267
+    private $dashboard_service;
268
+
269
+    /**
270
+     * The entity type service.
271
+     *
272
+     * @since  3.6.0
273
+     * @access private
274
+     * @var \Wordlift_Entity_Post_Type_Service
275
+     */
276
+    private $entity_post_type_service;
277
+
278
+    /**
279
+     * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
280
+     *
281
+     * @since  3.6.0
282
+     * @access private
283
+     * @var \Wordlift_Entity_Link_Service $entity_link_service The {@link Wordlift_Entity_Link_Service} instance.
284
+     */
285
+    private $entity_link_service;
286
+
287
+    /**
288
+     * A {@link Wordlift_Sparql_Service} instance.
289
+     *
290
+     * @since    3.6.0
291
+     * @access   protected
292
+     * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
293
+     */
294
+    protected $sparql_service;
295
+
296
+    /**
297
+     * A {@link Wordlift_Import_Service} instance.
298
+     *
299
+     * @since  3.6.0
300
+     * @access private
301
+     * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
302
+     */
303
+    private $import_service;
304
+
305
+    /**
306
+     * A {@link Wordlift_Rebuild_Service} instance.
307
+     *
308
+     * @since  3.6.0
309
+     * @access private
310
+     * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
311
+     */
312
+    private $rebuild_service;
313
+
314
+    /**
315
+     * A {@link Wordlift_Jsonld_Service} instance.
316
+     *
317
+     * @since  3.7.0
318
+     * @access protected
319
+     * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
320
+     */
321
+    protected $jsonld_service;
322
+
323
+    /**
324
+     * A {@link Wordlift_Website_Jsonld_Converter} instance.
325
+     *
326
+     * @since  3.14.0
327
+     * @access protected
328
+     * @var \Wordlift_Website_Jsonld_Converter $jsonld_website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
329
+     */
330
+    protected $jsonld_website_converter;
331
+
332
+    /**
333
+     * A {@link Wordlift_Property_Factory} instance.
334
+     *
335
+     * @since  3.7.0
336
+     * @access private
337
+     * @var \Wordlift_Property_Factory $property_factory
338
+     */
339
+    private $property_factory;
340
+
341
+    /**
342
+     * The 'Download Your Data' page.
343
+     *
344
+     * @since  3.6.0
345
+     * @access private
346
+     * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
347
+     */
348
+    private $download_your_data_page;
349
+
350
+    /**
351
+     * The 'WordLift Settings' page.
352
+     *
353
+     * @since  3.11.0
354
+     * @access protected
355
+     * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
356
+     */
357
+    protected $settings_page;
358
+
359
+    /**
360
+     * The install wizard page.
361
+     *
362
+     * @since  3.9.0
363
+     * @access private
364
+     * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
365
+     */
366
+    public $admin_setup;
367
+
368
+    /**
369
+     * The Content Filter Service hooks up to the 'the_content' filter and provides
370
+     * linking of entities to their pages.
371
+     *
372
+     * @since  3.8.0
373
+     * @access private
374
+     * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
375
+     */
376
+    private $content_filter_service;
377
+
378
+    /**
379
+     * The Faq Content filter service
380
+     * @since  3.26.0
381
+     * @access private
382
+     * @var Faq_Content_Filter $faq_content_filter_service A {@link Faq_Content_Filter} instance.
383
+     */
384
+    private $faq_content_filter_service;
385
+
386
+    /**
387
+     * A {@link Wordlift_Key_Validation_Service} instance.
388
+     *
389
+     * @since  3.9.0
390
+     * @access private
391
+     * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
392
+     */
393
+    private $key_validation_service;
394
+
395
+    /**
396
+     * A {@link Wordlift_Rating_Service} instance.
397
+     *
398
+     * @since  3.10.0
399
+     * @access private
400
+     * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
401
+     */
402
+    private $rating_service;
403
+
404
+    /**
405
+     * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
406
+     *
407
+     * @since  3.10.0
408
+     * @access protected
409
+     * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
410
+     */
411
+    protected $post_to_jsonld_converter;
412
+
413
+    /**
414
+     * A {@link Wordlift_Configuration_Service} instance.
415
+     *
416
+     * @since  3.10.0
417
+     * @access protected
418
+     * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
419
+     */
420
+    protected $configuration_service;
421
+
422
+    /**
423
+     * A {@link Wordlift_Install_Service} instance.
424
+     *
425
+     * @since  3.18.0
426
+     * @access protected
427
+     * @var \Wordlift_Install_Service $install_service A {@link Wordlift_Install_Service} instance.
428
+     */
429
+    protected $install_service;
430
+
431
+    /**
432
+     * A {@link Wordlift_Entity_Type_Service} instance.
433
+     *
434
+     * @since  3.10.0
435
+     * @access protected
436
+     * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
437
+     */
438
+    protected $entity_type_service;
439
+
440
+    /**
441
+     * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
442
+     *
443
+     * @since  3.10.0
444
+     * @access protected
445
+     * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
446
+     */
447
+    protected $entity_post_to_jsonld_converter;
448
+
449
+    /**
450
+     * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
451
+     *
452
+     * @since  3.10.0
453
+     * @access protected
454
+     * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
455
+     */
456
+    protected $postid_to_jsonld_converter;
457
+
458
+    /**
459
+     * The {@link Wordlift_Admin_Status_Page} class.
460
+     *
461
+     * @since  3.9.8
462
+     * @access private
463
+     * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
464
+     */
465
+    private $status_page;
466
+
467
+    /**
468
+     * The {@link Wordlift_Category_Taxonomy_Service} instance.
469
+     *
470
+     * @since  3.11.0
471
+     * @access protected
472
+     * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
473
+     */
474
+    protected $category_taxonomy_service;
475
+
476
+    /**
477
+     * The {@link Wordlift_Entity_Page_Service} instance.
478
+     *
479
+     * @since  3.11.0
480
+     * @access protected
481
+     * @var \Wordlift_Entity_Page_Service $entity_page_service The {@link Wordlift_Entity_Page_Service} instance.
482
+     */
483
+    protected $entity_page_service;
484
+
485
+    /**
486
+     * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
487
+     *
488
+     * @since  3.11.0
489
+     * @access protected
490
+     * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
491
+     */
492
+    protected $settings_page_action_link;
493
+
494
+    /**
495
+     * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
496
+     *
497
+     * @since  3.11.0
498
+     * @access protected
499
+     * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
500
+     */
501
+    protected $analytics_settings_page_action_link;
502
+
503
+    /**
504
+     * The {@link Wordlift_Analytics_Connect} class.
505
+     *
506
+     * @since  3.11.0
507
+     * @access protected
508
+     * @var \Wordlift_Analytics_Connect $analytics_connect The {@link Wordlift_Analytics_Connect} class.
509
+     */
510
+    protected $analytics_connect;
511
+
512
+    /**
513
+     * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
514
+     *
515
+     * @since  3.11.0
516
+     * @access protected
517
+     * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
518
+     */
519
+    protected $publisher_ajax_adapter;
520
+
521
+    /**
522
+     * The {@link Wordlift_Admin_Input_Element} element renderer.
523
+     *
524
+     * @since  3.11.0
525
+     * @access protected
526
+     * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
527
+     */
528
+    protected $input_element;
529
+
530
+    /**
531
+     * The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
532
+     *
533
+     * @since  3.13.0
534
+     * @access protected
535
+     * @var \Wordlift_Admin_Radio_Input_Element $radio_input_element The {@link Wordlift_Admin_Radio_Input_Element} element renderer.
536
+     */
537
+    protected $radio_input_element;
538
+
539
+    /**
540
+     * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
541
+     *
542
+     * @since  3.11.0
543
+     * @access protected
544
+     * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
545
+     */
546
+    protected $language_select_element;
547
+
548
+    /**
549
+     * The {@link Wordlift_Admin_Country_Select_Element} element renderer.
550
+     *
551
+     * @since  3.18.0
552
+     * @access protected
553
+     * @var \Wordlift_Admin_Country_Select_Element $country_select_element The {@link Wordlift_Admin_Country_Select_Element} element renderer.
554
+     */
555
+    protected $country_select_element;
556
+
557
+    /**
558
+     * The {@link Wordlift_Admin_Publisher_Element} element renderer.
559
+     *
560
+     * @since  3.11.0
561
+     * @access protected
562
+     * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
563
+     */
564
+    protected $publisher_element;
565
+
566
+    /**
567
+     * The {@link Wordlift_Admin_Select2_Element} element renderer.
568
+     *
569
+     * @since  3.11.0
570
+     * @access protected
571
+     * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
572
+     */
573
+    protected $select2_element;
574
+
575
+    /**
576
+     * The controller for the entity type list admin page
577
+     *
578
+     * @since  3.11.0
579
+     * @access private
580
+     * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
581
+     */
582
+    private $entity_type_admin_page;
583
+
584
+    /**
585
+     * The controller for the entity type settings admin page
586
+     *
587
+     * @since  3.11.0
588
+     * @access private
589
+     * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
590
+     */
591
+    private $entity_type_settings_admin_page;
592
+
593
+    /**
594
+     * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
595
+     *
596
+     * @since  3.11.0
597
+     * @access protected
598
+     * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
599
+     */
600
+    protected $related_entities_cloud_widget;
601
+
602
+    /**
603
+     * The {@link Wordlift_Admin_Author_Element} instance.
604
+     *
605
+     * @since  3.14.0
606
+     * @access protected
607
+     * @var \Wordlift_Admin_Author_Element $author_element The {@link Wordlift_Admin_Author_Element} instance.
608
+     */
609
+    protected $author_element;
610
+
611
+    /**
612
+     * The {@link Wordlift_Sample_Data_Service} instance.
613
+     *
614
+     * @since  3.12.0
615
+     * @access protected
616
+     * @var \Wordlift_Sample_Data_Service $sample_data_service The {@link Wordlift_Sample_Data_Service} instance.
617
+     */
618
+    protected $sample_data_service;
619
+
620
+    /**
621
+     * The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
622
+     *
623
+     * @since  3.12.0
624
+     * @access protected
625
+     * @var \Wordlift_Sample_Data_Ajax_Adapter $sample_data_ajax_adapter The {@link Wordlift_Sample_Data_Ajax_Adapter} instance.
626
+     */
627
+    protected $sample_data_ajax_adapter;
628
+
629
+    /**
630
+     * The {@link Wordlift_Relation_Rebuild_Service} instance.
631
+     *
632
+     * @since  3.14.3
633
+     * @access private
634
+     * @var \Wordlift_Relation_Rebuild_Service $relation_rebuild_service The {@link Wordlift_Relation_Rebuild_Service} instance.
635
+     */
636
+    private $relation_rebuild_service;
637
+
638
+    /**
639
+     * The {@link Wordlift_Relation_Rebuild_Adapter} instance.
640
+     *
641
+     * @since  3.14.3
642
+     * @access private
643
+     * @var \Wordlift_Relation_Rebuild_Adapter $relation_rebuild_adapter The {@link Wordlift_Relation_Rebuild_Adapter} instance.
644
+     */
645
+    private $relation_rebuild_adapter;
646
+
647
+    /**
648
+     * The {@link Wordlift_Reference_Rebuild_Service} instance.
649
+     *
650
+     * @since  3.18.0
651
+     * @access private
652
+     * @var \Wordlift_Reference_Rebuild_Service $reference_rebuild_service The {@link Wordlift_Reference_Rebuild_Service} instance.
653
+     */
654
+    private $reference_rebuild_service;
655
+
656
+    /**
657
+     * The {@link Wordlift_Google_Analytics_Export_Service} instance.
658
+     *
659
+     * @since  3.16.0
660
+     * @access protected
661
+     * @var \Wordlift_Google_Analytics_Export_Service $google_analytics_export_service The {@link Wordlift_Google_Analytics_Export_Service} instance.
662
+     */
663
+    protected $google_analytics_export_service;
664
+
665
+    /**
666
+     * {@link Wordlift}'s singleton instance.
667
+     *
668
+     * @since  3.15.0
669
+     * @access protected
670
+     * @var \Wordlift_Entity_Type_Adapter $entity_type_adapter The {@link Wordlift_Entity_Type_Adapter} instance.
671
+     */
672
+    protected $entity_type_adapter;
673
+
674
+    /**
675
+     * The {@link Wordlift_Storage_Factory} instance.
676
+     *
677
+     * @since  3.15.0
678
+     * @access protected
679
+     * @var \Wordlift_Storage_Factory $storage_factory The {@link Wordlift_Storage_Factory} instance.
680
+     */
681
+    protected $storage_factory;
682
+
683
+    /**
684
+     * The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
685
+     *
686
+     * @since  3.15.0
687
+     * @access protected
688
+     * @var \Wordlift_Sparql_Tuple_Rendition_Factory $rendition_factory The {@link Wordlift_Sparql_Tuple_Rendition_Factory} instance.
689
+     */
690
+    protected $rendition_factory;
691
+
692
+    /**
693
+     * The {@link Wordlift_Autocomplete_Adapter} instance.
694
+     *
695
+     * @since  3.15.0
696
+     * @access private
697
+     * @var \Wordlift_Autocomplete_Adapter $autocomplete_adapter The {@link Wordlift_Autocomplete_Adapter} instance.
698
+     */
699
+    private $autocomplete_adapter;
700
+
701
+    /**
702
+     * The {@link Wordlift_Relation_Service} instance.
703
+     *
704
+     * @since  3.15.0
705
+     * @access protected
706
+     * @var \Wordlift_Relation_Service $relation_service The {@link Wordlift_Relation_Service} instance.
707
+     */
708
+    protected $relation_service;
709
+
710
+    /**
711
+     * The {@link Wordlift_Cached_Post_Converter} instance.
712
+     *
713
+     * @since  3.16.0
714
+     * @access protected
715
+     * @var  \Wordlift_Cached_Post_Converter $cached_postid_to_jsonld_converter The {@link Wordlift_Cached_Post_Converter} instance.
716
+     *
717
+     */
718
+    protected $cached_postid_to_jsonld_converter;
719
+
720
+    /**
721
+     * The {@link Wordlift_Entity_Uri_Service} instance.
722
+     *
723
+     * @since  3.16.3
724
+     * @access protected
725
+     * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
726
+     */
727
+    protected $entity_uri_service;
728
+
729
+    /**
730
+     * The {@link Wordlift_Publisher_Service} instance.
731
+     *
732
+     * @since  3.19.0
733
+     * @access protected
734
+     * @var \Wordlift_Publisher_Service $publisher_service The {@link Wordlift_Publisher_Service} instance.
735
+     */
736
+    protected $publisher_service;
737
+
738
+    /**
739
+     * The {@link Wordlift_Context_Cards_Service} instance.
740
+     *
741
+     * @var \Wordlift_Context_Cards_Service The {@link Wordlift_Context_Cards_Service} instance.
742
+     */
743
+    protected $context_cards_service;
744
+
745
+    /**
746
+     * {@link Wordlift}'s singleton instance.
747
+     *
748
+     * @since  3.11.2
749
+     * @access private
750
+     * @var Wordlift $instance {@link Wordlift}'s singleton instance.
751
+     */
752
+    private static $instance;
753
+
754
+    /**
755
+     * A singleton instance of features registry.
756
+     * @since 3.30.0
757
+     * @var Features_Registry
758
+     */
759
+    private $features_registry;
760
+
761
+    //</editor-fold>
762
+
763
+    /**
764
+     * Define the core functionality of the plugin.
765
+     *
766
+     * Set the plugin name and the plugin version that can be used throughout the plugin.
767
+     * Load the dependencies, define the locale, and set the hooks for the admin area and
768
+     * the public-facing side of the site.
769
+     *
770
+     * @since    1.0.0
771
+     */
772
+    public function __construct() {
773
+
774
+        self::$instance = $this;
775
+
776
+        $this->plugin_name = 'wordlift';
777
+        $this->version     = '3.32.0';
778
+        $this->load_dependencies();
779
+        $this->set_locale();
780
+        $this->define_admin_hooks();
781
+        $this->define_public_hooks();
782
+
783
+        // If we're in `WP_CLI` load the related files.
784
+        if ( class_exists( 'WP_CLI' ) ) {
785
+            $this->load_cli_dependencies();
786
+        }
787
+
788
+    }
789
+
790
+    /**
791
+     * Get the singleton instance.
792
+     *
793
+     * @return Wordlift The {@link Wordlift} singleton instance.
794
+     * @since 3.11.2
795
+     *
796
+     */
797
+    public static function get_instance() {
798
+
799
+        return self::$instance;
800
+    }
801
+
802
+    /**
803
+     * Load the required dependencies for this plugin.
804
+     *
805
+     * Include the following files that make up the plugin:
806
+     *
807
+     * - Wordlift_Loader. Orchestrates the hooks of the plugin.
808
+     * - Wordlift_i18n. Defines internationalization functionality.
809
+     * - Wordlift_Admin. Defines all hooks for the admin area.
810
+     * - Wordlift_Public. Defines all hooks for the public side of the site.
811
+     *
812
+     * Create an instance of the loader which will be used to register the hooks
813
+     * with WordPress.
814
+     *
815
+     * @throws Exception
816
+     * @since    1.0.0
817
+     * @access   private
818
+     */
819
+    private function load_dependencies() {
820
+
821
+        /**
822
+         * The class responsible for orchestrating the actions and filters of the
823
+         * core plugin.
824
+         */
825
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
826
+
827
+        // The class responsible for plugin uninstall.
828
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-deactivator-feedback.php';
829
+
830
+        /**
831
+         * The class responsible for defining internationalization functionality
832
+         * of the plugin.
833
+         */
834
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
835
+
836
+        /**
837
+         * WordLift's supported languages.
838
+         */
839
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
840
+
841
+        /**
842
+         * WordLift's supported countries.
843
+         */
844
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-countries.php';
845
+
846
+        /**
847
+         * Provide support functions to sanitize data.
848
+         */
849
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
850
+
851
+        /** Services. */
852
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
853
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-http-api.php';
854
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
855
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
856
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
857
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
858
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
859
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-linked-data-service.php';
860
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-relation-service.php';
861
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-image-service.php';
862
+
863
+        /**
864
+         * The Query builder.
865
+         */
866
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
867
+
868
+        /**
869
+         * The Schema service.
870
+         */
871
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
872
+
873
+        /**
874
+         * The schema:url property service.
875
+         */
876
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
877
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
878
+
879
+        /**
880
+         * The UI service.
881
+         */
882
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
883
+
884
+        /**
885
+         * The Thumbnail service.
886
+         */
887
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
888
+
889
+        /**
890
+         * The Entity Types Taxonomy service.
891
+         */
892
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-taxonomy-service.php';
893
+
894
+        /**
895
+         * The Entity service.
896
+         */
897
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-uri-service.php';
898
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
899
+
900
+        // Add the entity rating service.
901
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
902
+
903
+        /**
904
+         * The User service.
905
+         */
906
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
907
+
908
+        /**
909
+         * The Timeline service.
910
+         */
911
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
912
+
913
+        /**
914
+         * The Topic Taxonomy service.
915
+         */
916
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
917
+
918
+        /**
919
+         * The SPARQL service.
920
+         */
921
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
922
+
923
+        /**
924
+         * The WordLift import service.
925
+         */
926
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
927
+
928
+        /**
929
+         * The WordLift URI service.
930
+         */
931
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
932
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
933
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-service.php';
934
+
935
+        /**
936
+         * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
937
+         */
938
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-listable.php';
939
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-rebuild-service.php';
940
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-reference-rebuild-service.php';
941
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-service.php';
942
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/rebuild/class-wordlift-relation-rebuild-adapter.php';
943
+
944
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
945
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
946
+
947
+        /**
948
+         * Load the converters.
949
+         */
950
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
951
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
952
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
953
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
954
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
955
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-website-converter.php';
956
+
957
+        /**
958
+         * Load cache-related files.
959
+         */
960
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/cache/require.php';
961
+
962
+        /**
963
+         * Load the content filter.
964
+         */
965
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
966
+
967
+        /*
968 968
 		 * Load the excerpt helper.
969 969
 		 */
970
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-excerpt-helper.php';
971
-
972
-		/**
973
-		 * Load the JSON-LD service to publish entities using JSON-LD.s
974
-		 *
975
-		 * @since 3.8.0
976
-		 */
977
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
978
-
979
-		// The Publisher Service and the AJAX adapter.
980
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
981
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
982
-
983
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-adapter.php';
984
-
985
-		/**
986
-		 * Load the WordLift key validation service.
987
-		 */
988
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
989
-
990
-		// Load the `Wordlift_Category_Taxonomy_Service` class definition.
991
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
992
-
993
-		// Load the `Wordlift_Entity_Page_Service` class definition.
994
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-page-service.php';
995
-
996
-		/** Linked Data. */
997
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage.php';
998
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-storage.php';
999
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-property-storage.php';
1000
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-taxonomy-storage.php';
1001
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-schema-class-storage.php';
1002
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-author-storage.php';
1003
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-uri-storage.php';
1004
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-image-storage.php';
1005
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-related-storage.php';
1006
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-url-property-storage.php';
1007
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage-factory.php';
1008
-
1009
-		/** Linked Data Rendition. */
1010
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/intf-wordlift-sparql-tuple-rendition.php';
1011
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-default-sparql-tuple-rendition.php';
1012
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-address-sparql-tuple-rendition.php';
1013
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-sparql-tuple-rendition-factory.php';
1014
-
1015
-		/** Services. */
1016
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-google-analytics-export-service.php';
1017
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-api-service.php';
1018
-
1019
-		/** Adapters. */
1020
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-tinymce-adapter.php';
1021
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-newrelic-adapter.php';
1022
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-ajax-adapter.php';
1023
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-adapter.php';
1024
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-wprocket-adapter.php';
1025
-
1026
-		/** Async Tasks. */
1027
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-async-task.php';
1028
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-sparql-query-async-task.php';
1029
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-push-references-async-task.php';
1030
-
1031
-		/** Autocomplete. */
1032
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-adapter.php';
1033
-
1034
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-remote-image-service.php';
1035
-
1036
-		/** Analytics */
1037
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/analytics/class-wordlift-analytics-connect.php';
1038
-
1039
-		/**
1040
-		 * The class responsible for defining all actions that occur in the admin area.
1041
-		 */
1042
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
1043
-
1044
-		/**
1045
-		 * The class to customize the entity list admin page.
1046
-		 */
1047
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
1048
-
1049
-		/**
1050
-		 * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
1051
-		 */
1052
-		global $wp_version;
1053
-		if ( version_compare( $wp_version, '5.3', '<' ) ) {
1054
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
1055
-		} else {
1056
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker-5-3.php';
1057
-		}
1058
-
1059
-		/**
1060
-		 * The Notice service.
1061
-		 */
1062
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
1063
-
1064
-		/**
1065
-		 * The PrimaShop adapter.
1066
-		 */
1067
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
1068
-
1069
-		/**
1070
-		 * The WordLift Dashboard service.
1071
-		 */
1072
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
1073
-
1074
-		/**
1075
-		 * The admin 'Install wizard' page.
1076
-		 */
1077
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
1078
-
1079
-		/**
1080
-		 * The WordLift entity type list admin page controller.
1081
-		 */
1082
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
1083
-
1084
-		/**
1085
-		 * The WordLift entity type settings admin page controller.
1086
-		 */
1087
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
1088
-
1089
-		/**
1090
-		 * The admin 'Download Your Data' page.
1091
-		 */
1092
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
1093
-
1094
-		/**
1095
-		 * The admin 'WordLift Settings' page.
1096
-		 */
1097
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/intf-wordlift-admin-element.php';
1098
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-input-element.php';
1099
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-input-radio-element.php';
1100
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-select-element.php';
1101
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-select2-element.php';
1102
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-language-select-element.php';
1103
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-country-select-element.php';
1104
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-tabs-element.php';
1105
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-author-element.php';
1106
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-publisher-element.php';
1107
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
1108
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
1109
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-analytics-page.php';
1110
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
1111
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-analytics-page-action-link.php';
1112
-
1113
-		/** Admin Pages */
1114
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-user-profile-page.php';
1115
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
1116
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-admin-service.php';
1117
-
1118
-		/**
1119
-		 * The class responsible for defining all actions that occur in the public-facing
1120
-		 * side of the site.
1121
-		 */
1122
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
1123
-
1124
-		/**
1125
-		 * The shortcode abstract class.
1126
-		 */
1127
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
1128
-
1129
-		/**
1130
-		 * The Timeline shortcode.
1131
-		 */
1132
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
1133
-
1134
-		/**
1135
-		 * The Navigator shortcode.
1136
-		 */
1137
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
1138
-
1139
-		/**
1140
-		 * The Products Navigator shortcode.
1141
-		 */
1142
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-products-navigator-shortcode.php';
1143
-
1144
-		/**
1145
-		 * The chord shortcode.
1146
-		 */
1147
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
1148
-
1149
-		/**
1150
-		 * The geomap shortcode.
1151
-		 */
1152
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
1153
-
1154
-		/**
1155
-		 * The entity cloud shortcode.
1156
-		 */
1157
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-shortcode.php';
1158
-
1159
-		/**
1160
-		 * The entity glossary shortcode.
1161
-		 */
1162
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-alphabet-service.php';
1163
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-vocabulary-shortcode.php';
1164
-
1165
-		/**
1166
-		 * Faceted Search shortcode.
1167
-		 */
1168
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-faceted-search-shortcode.php';
1169
-
1170
-		/**
1171
-		 * The ShareThis service.
1172
-		 */
1173
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
1174
-
1175
-		/**
1176
-		 * The SEO service.
1177
-		 */
1178
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
1179
-
1180
-		/**
1181
-		 * The AMP service.
1182
-		 */
1183
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-amp-service.php';
1184
-
1185
-		/** Widgets */
1186
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
1187
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
1188
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-context-cards.php';
1189
-
1190
-		/*
970
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-excerpt-helper.php';
971
+
972
+        /**
973
+         * Load the JSON-LD service to publish entities using JSON-LD.s
974
+         *
975
+         * @since 3.8.0
976
+         */
977
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
978
+
979
+        // The Publisher Service and the AJAX adapter.
980
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
981
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
982
+
983
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-adapter.php';
984
+
985
+        /**
986
+         * Load the WordLift key validation service.
987
+         */
988
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
989
+
990
+        // Load the `Wordlift_Category_Taxonomy_Service` class definition.
991
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
992
+
993
+        // Load the `Wordlift_Entity_Page_Service` class definition.
994
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-page-service.php';
995
+
996
+        /** Linked Data. */
997
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage.php';
998
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-storage.php';
999
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-property-storage.php';
1000
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-taxonomy-storage.php';
1001
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-schema-class-storage.php';
1002
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-author-storage.php';
1003
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-meta-uri-storage.php';
1004
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-image-storage.php';
1005
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-post-related-storage.php';
1006
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-url-property-storage.php';
1007
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/storage/class-wordlift-storage-factory.php';
1008
+
1009
+        /** Linked Data Rendition. */
1010
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/intf-wordlift-sparql-tuple-rendition.php';
1011
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-default-sparql-tuple-rendition.php';
1012
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-address-sparql-tuple-rendition.php';
1013
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/linked-data/rendition/class-wordlift-sparql-tuple-rendition-factory.php';
1014
+
1015
+        /** Services. */
1016
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-google-analytics-export-service.php';
1017
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-api-service.php';
1018
+
1019
+        /** Adapters. */
1020
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-tinymce-adapter.php';
1021
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-newrelic-adapter.php';
1022
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sample-data-ajax-adapter.php';
1023
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-adapter.php';
1024
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-wprocket-adapter.php';
1025
+
1026
+        /** Async Tasks. */
1027
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-async-task.php';
1028
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-sparql-query-async-task.php';
1029
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/wp-async-task/class-wordlift-push-references-async-task.php';
1030
+
1031
+        /** Autocomplete. */
1032
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-autocomplete-adapter.php';
1033
+
1034
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-remote-image-service.php';
1035
+
1036
+        /** Analytics */
1037
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/analytics/class-wordlift-analytics-connect.php';
1038
+
1039
+        /**
1040
+         * The class responsible for defining all actions that occur in the admin area.
1041
+         */
1042
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
1043
+
1044
+        /**
1045
+         * The class to customize the entity list admin page.
1046
+         */
1047
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
1048
+
1049
+        /**
1050
+         * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
1051
+         */
1052
+        global $wp_version;
1053
+        if ( version_compare( $wp_version, '5.3', '<' ) ) {
1054
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
1055
+        } else {
1056
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker-5-3.php';
1057
+        }
1058
+
1059
+        /**
1060
+         * The Notice service.
1061
+         */
1062
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
1063
+
1064
+        /**
1065
+         * The PrimaShop adapter.
1066
+         */
1067
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
1068
+
1069
+        /**
1070
+         * The WordLift Dashboard service.
1071
+         */
1072
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
1073
+
1074
+        /**
1075
+         * The admin 'Install wizard' page.
1076
+         */
1077
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
1078
+
1079
+        /**
1080
+         * The WordLift entity type list admin page controller.
1081
+         */
1082
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
1083
+
1084
+        /**
1085
+         * The WordLift entity type settings admin page controller.
1086
+         */
1087
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
1088
+
1089
+        /**
1090
+         * The admin 'Download Your Data' page.
1091
+         */
1092
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
1093
+
1094
+        /**
1095
+         * The admin 'WordLift Settings' page.
1096
+         */
1097
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/intf-wordlift-admin-element.php';
1098
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-input-element.php';
1099
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-input-radio-element.php';
1100
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-select-element.php';
1101
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-select2-element.php';
1102
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-language-select-element.php';
1103
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-country-select-element.php';
1104
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-tabs-element.php';
1105
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-author-element.php';
1106
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/elements/class-wordlift-admin-publisher-element.php';
1107
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
1108
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
1109
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-analytics-page.php';
1110
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
1111
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-analytics-page-action-link.php';
1112
+
1113
+        /** Admin Pages */
1114
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-user-profile-page.php';
1115
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
1116
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-admin-service.php';
1117
+
1118
+        /**
1119
+         * The class responsible for defining all actions that occur in the public-facing
1120
+         * side of the site.
1121
+         */
1122
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
1123
+
1124
+        /**
1125
+         * The shortcode abstract class.
1126
+         */
1127
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
1128
+
1129
+        /**
1130
+         * The Timeline shortcode.
1131
+         */
1132
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
1133
+
1134
+        /**
1135
+         * The Navigator shortcode.
1136
+         */
1137
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
1138
+
1139
+        /**
1140
+         * The Products Navigator shortcode.
1141
+         */
1142
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-products-navigator-shortcode.php';
1143
+
1144
+        /**
1145
+         * The chord shortcode.
1146
+         */
1147
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
1148
+
1149
+        /**
1150
+         * The geomap shortcode.
1151
+         */
1152
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
1153
+
1154
+        /**
1155
+         * The entity cloud shortcode.
1156
+         */
1157
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-shortcode.php';
1158
+
1159
+        /**
1160
+         * The entity glossary shortcode.
1161
+         */
1162
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-alphabet-service.php';
1163
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-vocabulary-shortcode.php';
1164
+
1165
+        /**
1166
+         * Faceted Search shortcode.
1167
+         */
1168
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-faceted-search-shortcode.php';
1169
+
1170
+        /**
1171
+         * The ShareThis service.
1172
+         */
1173
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
1174
+
1175
+        /**
1176
+         * The SEO service.
1177
+         */
1178
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
1179
+
1180
+        /**
1181
+         * The AMP service.
1182
+         */
1183
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-amp-service.php';
1184
+
1185
+        /** Widgets */
1186
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
1187
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
1188
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-context-cards.php';
1189
+
1190
+        /*
1191 1191
 		 * Schema.org Services.
1192 1192
 		 *
1193 1193
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/835
1194 1194
 		 */
1195
-		if ( WL_ALL_ENTITY_TYPES ) {
1196
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-sync-service.php';
1197
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-property-service.php';
1198
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-class-service.php';
1199
-			new Wordlift_Schemaorg_Sync_Service();
1200
-			$schemaorg_property_service = new Wordlift_Schemaorg_Property_Service();
1201
-			new Wordlift_Schemaorg_Class_Service();
1202
-		} else {
1203
-			$schemaorg_property_service = null;
1204
-		}
1205
-
1206
-		$this->loader = new Wordlift_Loader();
1207
-		/**
1208
-		 * @since 3.30.0
1209
-		 */
1210
-		$this->features_registry = Features_Registry::get_instance();
1195
+        if ( WL_ALL_ENTITY_TYPES ) {
1196
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-sync-service.php';
1197
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-property-service.php';
1198
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/schemaorg/class-wordlift-schemaorg-class-service.php';
1199
+            new Wordlift_Schemaorg_Sync_Service();
1200
+            $schemaorg_property_service = new Wordlift_Schemaorg_Property_Service();
1201
+            new Wordlift_Schemaorg_Class_Service();
1202
+        } else {
1203
+            $schemaorg_property_service = null;
1204
+        }
1205
+
1206
+        $this->loader = new Wordlift_Loader();
1207
+        /**
1208
+         * @since 3.30.0
1209
+         */
1210
+        $this->features_registry = Features_Registry::get_instance();
1211 1211
 
1212
-		// Instantiate a global logger.
1213
-		global $wl_logger;
1214
-		$wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
1212
+        // Instantiate a global logger.
1213
+        global $wl_logger;
1214
+        $wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
1215 1215
 
1216
-		// Load the `wl-api` end-point.
1217
-		new Wordlift_Http_Api();
1216
+        // Load the `wl-api` end-point.
1217
+        new Wordlift_Http_Api();
1218 1218
 
1219
-		// Load the Install Service.
1220
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-service.php';
1221
-		$this->install_service = new Wordlift_Install_Service();
1219
+        // Load the Install Service.
1220
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'install/class-wordlift-install-service.php';
1221
+        $this->install_service = new Wordlift_Install_Service();
1222 1222
 
1223
-		/** Services. */
1224
-		// Create the configuration service.
1225
-		$this->configuration_service = new Wordlift_Configuration_Service();
1226
-		$api_service                 = new Wordlift_Api_Service( $this->configuration_service );
1223
+        /** Services. */
1224
+        // Create the configuration service.
1225
+        $this->configuration_service = new Wordlift_Configuration_Service();
1226
+        $api_service                 = new Wordlift_Api_Service( $this->configuration_service );
1227 1227
 
1228
-		// Create an entity type service instance. It'll be later bound to the init action.
1229
-		$this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
1228
+        // Create an entity type service instance. It'll be later bound to the init action.
1229
+        $this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
1230 1230
 
1231
-		// Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
1232
-		$this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
1231
+        // Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
1232
+        $this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
1233 1233
 
1234
-		// Create an instance of the UI service.
1235
-		$this->ui_service = new Wordlift_UI_Service();
1234
+        // Create an instance of the UI service.
1235
+        $this->ui_service = new Wordlift_UI_Service();
1236 1236
 
1237
-		// Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
1238
-		$this->thumbnail_service = new Wordlift_Thumbnail_Service();
1237
+        // Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
1238
+        $this->thumbnail_service = new Wordlift_Thumbnail_Service();
1239 1239
 
1240
-		$this->sparql_service        = new Wordlift_Sparql_Service();
1241
-		$schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
1242
-		$this->notice_service        = new Wordlift_Notice_Service();
1243
-		$this->relation_service      = new Wordlift_Relation_Service();
1240
+        $this->sparql_service        = new Wordlift_Sparql_Service();
1241
+        $schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
1242
+        $this->notice_service        = new Wordlift_Notice_Service();
1243
+        $this->relation_service      = new Wordlift_Relation_Service();
1244 1244
 
1245
-		$entity_uri_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'entity_uri/' );
1246
-		$this->entity_uri_service = new Wordlift_Cached_Entity_Uri_Service( $this->configuration_service, $entity_uri_cache_service );
1247
-		$this->entity_service     = new Wordlift_Entity_Service( $this->ui_service, $this->relation_service, $this->entity_uri_service );
1248
-		$this->user_service       = new Wordlift_User_Service( $this->sparql_service, $this->entity_service );
1245
+        $entity_uri_cache_service = new Wordlift_File_Cache_Service( WL_TEMP_DIR . 'entity_uri/' );
1246
+        $this->entity_uri_service = new Wordlift_Cached_Entity_Uri_Service( $this->configuration_service, $entity_uri_cache_service );
1247
+        $this->entity_service     = new Wordlift_Entity_Service( $this->ui_service, $this->relation_service, $this->entity_uri_service );
1248
+        $this->user_service       = new Wordlift_User_Service( $this->sparql_service, $this->entity_service );
1249 1249
 
1250
-		// Instantiate the JSON-LD service.
1251
-		$property_getter = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1250
+        // Instantiate the JSON-LD service.
1251
+        $property_getter = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1252 1252
 
1253
-		/** Linked Data. */
1254
-		$this->storage_factory   = new Wordlift_Storage_Factory( $this->entity_service, $this->user_service, $property_getter );
1255
-		$this->rendition_factory = new Wordlift_Sparql_Tuple_Rendition_Factory( $this->entity_service );
1253
+        /** Linked Data. */
1254
+        $this->storage_factory   = new Wordlift_Storage_Factory( $this->entity_service, $this->user_service, $property_getter );
1255
+        $this->rendition_factory = new Wordlift_Sparql_Tuple_Rendition_Factory( $this->entity_service );
1256 1256
 
1257
-		$this->schema_service = new Wordlift_Schema_Service( $this->storage_factory, $this->rendition_factory, $this->configuration_service );
1257
+        $this->schema_service = new Wordlift_Schema_Service( $this->storage_factory, $this->rendition_factory, $this->configuration_service );
1258 1258
 
1259
-		// Create a new instance of the Redirect service.
1260
-		$this->redirect_service    = new Wordlift_Redirect_Service( $this->entity_uri_service );
1261
-		$this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
1259
+        // Create a new instance of the Redirect service.
1260
+        $this->redirect_service    = new Wordlift_Redirect_Service( $this->entity_uri_service );
1261
+        $this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
1262 1262
 
1263
-		// Create a new instance of the Timeline service and Timeline shortcode.
1264
-		$this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service, $this->entity_type_service );
1263
+        // Create a new instance of the Timeline service and Timeline shortcode.
1264
+        $this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service, $this->entity_type_service );
1265 1265
 
1266
-		$this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
1266
+        $this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
1267 1267
 
1268
-		$this->topic_taxonomy_service        = new Wordlift_Topic_Taxonomy_Service();
1269
-		$this->entity_types_taxonomy_service = new Wordlift_Entity_Type_Taxonomy_Service();
1268
+        $this->topic_taxonomy_service        = new Wordlift_Topic_Taxonomy_Service();
1269
+        $this->entity_types_taxonomy_service = new Wordlift_Entity_Type_Taxonomy_Service();
1270 1270
 
1271
-		// Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
1272
-		$this->sharethis_service = new Wordlift_ShareThis_Service();
1271
+        // Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
1272
+        $this->sharethis_service = new Wordlift_ShareThis_Service();
1273 1273
 
1274
-		// Create an instance of the PrimaShop adapter.
1275
-		$this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
1274
+        // Create an instance of the PrimaShop adapter.
1275
+        $this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
1276 1276
 
1277
-		// Create an import service instance to hook later to WP's import function.
1278
-		$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() );
1277
+        // Create an import service instance to hook later to WP's import function.
1278
+        $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() );
1279 1279
 
1280
-		$uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
1280
+        $uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
1281 1281
 
1282
-		// Create the entity rating service.
1283
-		$this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
1282
+        // Create the entity rating service.
1283
+        $this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
1284 1284
 
1285
-		// Create entity list customization (wp-admin/edit.php).
1286
-		$this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
1285
+        // Create entity list customization (wp-admin/edit.php).
1286
+        $this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
1287 1287
 
1288
-		// Create a new instance of the Redirect service.
1289
-		$this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service, $this->entity_service );
1288
+        // Create a new instance of the Redirect service.
1289
+        $this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service, $this->entity_service );
1290 1290
 
1291
-		// Create an instance of the Publisher Service and the AJAX Adapter.
1292
-		$this->publisher_service = new Wordlift_Publisher_Service( $this->configuration_service );
1293
-		$this->property_factory  = new Wordlift_Property_Factory( $schema_url_property_service );
1294
-		$this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
1291
+        // Create an instance of the Publisher Service and the AJAX Adapter.
1292
+        $this->publisher_service = new Wordlift_Publisher_Service( $this->configuration_service );
1293
+        $this->property_factory  = new Wordlift_Property_Factory( $schema_url_property_service );
1294
+        $this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
1295 1295
 
1296
-		$attachment_service = new Wordlift_Attachment_Service();
1296
+        $attachment_service = new Wordlift_Attachment_Service();
1297 1297
 
1298
-		// Instantiate the JSON-LD service.
1299
-		$property_getter                       = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1300
-		$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 );
1301
-		$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, $schemaorg_property_service, $this->post_to_jsonld_converter );
1302
-		$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 );
1303
-		$this->jsonld_website_converter        = new Wordlift_Website_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1298
+        // Instantiate the JSON-LD service.
1299
+        $property_getter                       = Wordlift_Property_Getter_Factory::create( $this->entity_service );
1300
+        $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 );
1301
+        $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, $schemaorg_property_service, $this->post_to_jsonld_converter );
1302
+        $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 );
1303
+        $this->jsonld_website_converter        = new Wordlift_Website_Jsonld_Converter( $this->entity_type_service, $this->entity_service, $this->user_service, $attachment_service, $this->configuration_service );
1304 1304
 
1305
-		$jsonld_cache                            = new Ttl_Cache( 'jsonld', 86400 );
1306
-		$this->cached_postid_to_jsonld_converter = new Wordlift_Cached_Post_Converter( $this->postid_to_jsonld_converter, $this->configuration_service, $jsonld_cache );
1307
-		/*
1305
+        $jsonld_cache                            = new Ttl_Cache( 'jsonld', 86400 );
1306
+        $this->cached_postid_to_jsonld_converter = new Wordlift_Cached_Post_Converter( $this->postid_to_jsonld_converter, $this->configuration_service, $jsonld_cache );
1307
+        /*
1308 1308
 		 * Load the `Wordlift_Term_JsonLd_Adapter`.
1309 1309
 		 *
1310 1310
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/892
1311 1311
 		 *
1312 1312
 		 * @since 3.20.0
1313 1313
 		 */
1314
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-term-jsonld-adapter.php';
1315
-		$term_jsonld_adapter = new Wordlift_Term_JsonLd_Adapter( $this->entity_uri_service, $this->jsonld_service );
1316
-		$this->jsonld_service                    = new Wordlift_Jsonld_Service( $this->entity_service, $this->cached_postid_to_jsonld_converter, $this->jsonld_website_converter, $term_jsonld_adapter );
1317
-
1318
-
1319
-		$jsonld_service      = new Jsonld_Service(
1320
-			$this->jsonld_service,
1321
-			$term_jsonld_adapter,
1322
-			new Jsonld_User_Service( $this->user_service ) );
1323
-		new Jsonld_Endpoint( $jsonld_service, $this->entity_uri_service );
1324
-
1325
-		// Prints the JSON-LD in the head.
1326
-		new Jsonld_Adapter( $this->jsonld_service );
1327
-
1328
-		new Jsonld_By_Id_Endpoint( $this->jsonld_service, $this->entity_uri_service );
1329
-
1330
-		$this->key_validation_service = new Wordlift_Key_Validation_Service( $this->configuration_service );
1331
-		$this->content_filter_service = new Wordlift_Content_Filter_Service( $this->entity_service, $this->configuration_service, $this->entity_uri_service );
1332
-		// Creating Faq Content filter service.
1333
-		$this->faq_content_filter_service = new Faq_Content_Filter();
1334
-		$this->relation_rebuild_service   = new Wordlift_Relation_Rebuild_Service( $this->content_filter_service, $this->entity_service );
1335
-		$this->sample_data_service        = new Wordlift_Sample_Data_Service( $this->entity_type_service, $this->configuration_service, $this->user_service );
1336
-		$this->sample_data_ajax_adapter   = new Wordlift_Sample_Data_Ajax_Adapter( $this->sample_data_service );
1337
-		$this->reference_rebuild_service  = new Wordlift_Reference_Rebuild_Service( $this->entity_service );
1338
-
1339
-		$this->loader->add_action( 'enqueue_block_editor_assets', $this, 'add_wl_enabled_blocks' );
1340
-		$this->loader->add_action( 'admin_enqueue_scripts', $this, 'add_wl_enabled_blocks' );
1341
-
1342
-		/**
1343
-		 * Filter: wl_feature__enable__blocks.
1344
-		 *
1345
-		 * @param bool whether the blocks needed to be registered, defaults to true.
1346
-		 *
1347
-		 * @return bool
1348
-		 * @since 3.27.6
1349
-		 */
1350
-		if ( apply_filters( 'wl_feature__enable__blocks', true ) ) {
1351
-			// Initialize the short-codes.
1352
-			new Async_Template_Decorator( new Wordlift_Navigator_Shortcode() );
1353
-			new Wordlift_Chord_Shortcode();
1354
-			new Wordlift_Geomap_Shortcode();
1355
-			new Wordlift_Timeline_Shortcode();
1356
-			new Wordlift_Related_Entities_Cloud_Shortcode( $this->relation_service, $this->entity_service );
1357
-			new Wordlift_Vocabulary_Shortcode( $this->configuration_service );
1358
-			new Async_Template_Decorator( new Wordlift_Faceted_Search_Shortcode() );
1359
-		}
1360
-
1361
-		new Wordlift_Products_Navigator_Shortcode();
1362
-
1363
-
1364
-		// Initialize the Context Cards Service
1365
-		$this->context_cards_service = new Wordlift_Context_Cards_Service();
1366
-
1367
-		// Initialize the SEO service.
1368
-		new Wordlift_Seo_Service();
1369
-
1370
-		// Initialize the AMP service.
1371
-		new Wordlift_AMP_Service( $this->jsonld_service );
1372
-
1373
-		/** Services. */
1374
-		$this->google_analytics_export_service = new Wordlift_Google_Analytics_Export_Service();
1375
-		new Wordlift_Image_Service();
1376
-
1377
-		/** Adapters. */
1378
-		$this->entity_type_adapter    = new Wordlift_Entity_Type_Adapter( $this->entity_type_service );
1379
-		$this->publisher_ajax_adapter = new Wordlift_Publisher_Ajax_Adapter( $this->publisher_service );
1380
-		$this->tinymce_adapter        = new Wordlift_Tinymce_Adapter( $this );
1381
-		//$this->faq_tinymce_adapter      = new Faq_Tinymce_Adapter();
1382
-		$this->relation_rebuild_adapter = new Wordlift_Relation_Rebuild_Adapter( $this->relation_rebuild_service );
1383
-
1384
-		/*
1314
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-term-jsonld-adapter.php';
1315
+        $term_jsonld_adapter = new Wordlift_Term_JsonLd_Adapter( $this->entity_uri_service, $this->jsonld_service );
1316
+        $this->jsonld_service                    = new Wordlift_Jsonld_Service( $this->entity_service, $this->cached_postid_to_jsonld_converter, $this->jsonld_website_converter, $term_jsonld_adapter );
1317
+
1318
+
1319
+        $jsonld_service      = new Jsonld_Service(
1320
+            $this->jsonld_service,
1321
+            $term_jsonld_adapter,
1322
+            new Jsonld_User_Service( $this->user_service ) );
1323
+        new Jsonld_Endpoint( $jsonld_service, $this->entity_uri_service );
1324
+
1325
+        // Prints the JSON-LD in the head.
1326
+        new Jsonld_Adapter( $this->jsonld_service );
1327
+
1328
+        new Jsonld_By_Id_Endpoint( $this->jsonld_service, $this->entity_uri_service );
1329
+
1330
+        $this->key_validation_service = new Wordlift_Key_Validation_Service( $this->configuration_service );
1331
+        $this->content_filter_service = new Wordlift_Content_Filter_Service( $this->entity_service, $this->configuration_service, $this->entity_uri_service );
1332
+        // Creating Faq Content filter service.
1333
+        $this->faq_content_filter_service = new Faq_Content_Filter();
1334
+        $this->relation_rebuild_service   = new Wordlift_Relation_Rebuild_Service( $this->content_filter_service, $this->entity_service );
1335
+        $this->sample_data_service        = new Wordlift_Sample_Data_Service( $this->entity_type_service, $this->configuration_service, $this->user_service );
1336
+        $this->sample_data_ajax_adapter   = new Wordlift_Sample_Data_Ajax_Adapter( $this->sample_data_service );
1337
+        $this->reference_rebuild_service  = new Wordlift_Reference_Rebuild_Service( $this->entity_service );
1338
+
1339
+        $this->loader->add_action( 'enqueue_block_editor_assets', $this, 'add_wl_enabled_blocks' );
1340
+        $this->loader->add_action( 'admin_enqueue_scripts', $this, 'add_wl_enabled_blocks' );
1341
+
1342
+        /**
1343
+         * Filter: wl_feature__enable__blocks.
1344
+         *
1345
+         * @param bool whether the blocks needed to be registered, defaults to true.
1346
+         *
1347
+         * @return bool
1348
+         * @since 3.27.6
1349
+         */
1350
+        if ( apply_filters( 'wl_feature__enable__blocks', true ) ) {
1351
+            // Initialize the short-codes.
1352
+            new Async_Template_Decorator( new Wordlift_Navigator_Shortcode() );
1353
+            new Wordlift_Chord_Shortcode();
1354
+            new Wordlift_Geomap_Shortcode();
1355
+            new Wordlift_Timeline_Shortcode();
1356
+            new Wordlift_Related_Entities_Cloud_Shortcode( $this->relation_service, $this->entity_service );
1357
+            new Wordlift_Vocabulary_Shortcode( $this->configuration_service );
1358
+            new Async_Template_Decorator( new Wordlift_Faceted_Search_Shortcode() );
1359
+        }
1360
+
1361
+        new Wordlift_Products_Navigator_Shortcode();
1362
+
1363
+
1364
+        // Initialize the Context Cards Service
1365
+        $this->context_cards_service = new Wordlift_Context_Cards_Service();
1366
+
1367
+        // Initialize the SEO service.
1368
+        new Wordlift_Seo_Service();
1369
+
1370
+        // Initialize the AMP service.
1371
+        new Wordlift_AMP_Service( $this->jsonld_service );
1372
+
1373
+        /** Services. */
1374
+        $this->google_analytics_export_service = new Wordlift_Google_Analytics_Export_Service();
1375
+        new Wordlift_Image_Service();
1376
+
1377
+        /** Adapters. */
1378
+        $this->entity_type_adapter    = new Wordlift_Entity_Type_Adapter( $this->entity_type_service );
1379
+        $this->publisher_ajax_adapter = new Wordlift_Publisher_Ajax_Adapter( $this->publisher_service );
1380
+        $this->tinymce_adapter        = new Wordlift_Tinymce_Adapter( $this );
1381
+        //$this->faq_tinymce_adapter      = new Faq_Tinymce_Adapter();
1382
+        $this->relation_rebuild_adapter = new Wordlift_Relation_Rebuild_Adapter( $this->relation_rebuild_service );
1383
+
1384
+        /*
1385 1385
 		 * Exclude our public js from WP-Rocket.
1386 1386
 		 *
1387 1387
 		 * @since 3.19.4
1388 1388
 		 *
1389 1389
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/842.
1390 1390
 		 */
1391
-		new Wordlift_WpRocket_Adapter();
1392
-
1393
-		// Create a Rebuild Service instance, which we'll later bound to an ajax call.
1394
-		$this->rebuild_service = new Wordlift_Rebuild_Service(
1395
-			$this->sparql_service,
1396
-			$uri_service
1397
-		);
1398
-
1399
-		$that = $this;
1400
-		add_action( 'plugins_loaded', function () use ( $that ) {
1401
-			if ( ! apply_filters( 'wl_feature__enable__dataset-ng', false ) ) {
1402
-				new Wordlift_Linked_Data_Service( $that->entity_service, $that->entity_type_service, $that->schema_service, $that->sparql_service );
1403
-				new Wordlift_Sparql_Query_Async_Task();
1404
-				new Wordlift_Push_References_Async_Task();
1405
-			}
1406
-		} );
1407
-
1408
-		/** WordPress Admin UI. */
1409
-
1410
-		// UI elements.
1411
-		$this->input_element           = new Wordlift_Admin_Input_Element();
1412
-		$this->radio_input_element     = new Wordlift_Admin_Radio_Input_Element();
1413
-		$this->select2_element         = new Wordlift_Admin_Select2_Element();
1414
-		$this->language_select_element = new Wordlift_Admin_Language_Select_Element();
1415
-		$this->country_select_element  = new Wordlift_Admin_Country_Select_Element();
1416
-		$tabs_element                  = new Wordlift_Admin_Tabs_Element();
1417
-		$this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $this->publisher_service, $tabs_element, $this->select2_element );
1418
-		$this->author_element          = new Wordlift_Admin_Author_Element( $this->publisher_service, $this->select2_element );
1419
-
1420
-		$this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->country_select_element, $this->publisher_element, $this->radio_input_element );
1421
-		$this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
1422
-
1423
-		$this->analytics_settings_page             = new Wordlift_Admin_Settings_Analytics_Page( $this->configuration_service, $this->input_element, $this->radio_input_element );
1424
-		$this->analytics_settings_page_action_link = new Wordlift_Admin_Settings_Analytics_Page_Action_Link( $this->analytics_settings_page );
1425
-		$this->analytics_connect                   = new Wordlift_Analytics_Connect();
1426
-
1427
-		// Pages.
1428
-		/*
1391
+        new Wordlift_WpRocket_Adapter();
1392
+
1393
+        // Create a Rebuild Service instance, which we'll later bound to an ajax call.
1394
+        $this->rebuild_service = new Wordlift_Rebuild_Service(
1395
+            $this->sparql_service,
1396
+            $uri_service
1397
+        );
1398
+
1399
+        $that = $this;
1400
+        add_action( 'plugins_loaded', function () use ( $that ) {
1401
+            if ( ! apply_filters( 'wl_feature__enable__dataset-ng', false ) ) {
1402
+                new Wordlift_Linked_Data_Service( $that->entity_service, $that->entity_type_service, $that->schema_service, $that->sparql_service );
1403
+                new Wordlift_Sparql_Query_Async_Task();
1404
+                new Wordlift_Push_References_Async_Task();
1405
+            }
1406
+        } );
1407
+
1408
+        /** WordPress Admin UI. */
1409
+
1410
+        // UI elements.
1411
+        $this->input_element           = new Wordlift_Admin_Input_Element();
1412
+        $this->radio_input_element     = new Wordlift_Admin_Radio_Input_Element();
1413
+        $this->select2_element         = new Wordlift_Admin_Select2_Element();
1414
+        $this->language_select_element = new Wordlift_Admin_Language_Select_Element();
1415
+        $this->country_select_element  = new Wordlift_Admin_Country_Select_Element();
1416
+        $tabs_element                  = new Wordlift_Admin_Tabs_Element();
1417
+        $this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $this->publisher_service, $tabs_element, $this->select2_element );
1418
+        $this->author_element          = new Wordlift_Admin_Author_Element( $this->publisher_service, $this->select2_element );
1419
+
1420
+        $this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->country_select_element, $this->publisher_element, $this->radio_input_element );
1421
+        $this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
1422
+
1423
+        $this->analytics_settings_page             = new Wordlift_Admin_Settings_Analytics_Page( $this->configuration_service, $this->input_element, $this->radio_input_element );
1424
+        $this->analytics_settings_page_action_link = new Wordlift_Admin_Settings_Analytics_Page_Action_Link( $this->analytics_settings_page );
1425
+        $this->analytics_connect                   = new Wordlift_Analytics_Connect();
1426
+
1427
+        // Pages.
1428
+        /*
1429 1429
 		 * Call the `wl_can_see_classification_box` filter to determine whether we can display the classification box.
1430 1430
 		 *
1431 1431
 		 * @since 3.20.3
1432 1432
 		 *
1433 1433
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/914
1434 1434
 		 */
1435
-		if ( apply_filters( 'wl_can_see_classification_box', true ) ) {
1436
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
1437
-			new Wordlift_Admin_Post_Edit_Page( $this );
1438
-		}
1439
-		new Wordlift_Entity_Type_Admin_Service();
1435
+        if ( apply_filters( 'wl_can_see_classification_box', true ) ) {
1436
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
1437
+            new Wordlift_Admin_Post_Edit_Page( $this );
1438
+        }
1439
+        new Wordlift_Entity_Type_Admin_Service();
1440 1440
 
1441
-		// create an instance of the entity type list admin page controller.
1442
-		$this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
1441
+        // create an instance of the entity type list admin page controller.
1442
+        $this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
1443 1443
 
1444
-		// create an instance of the entity type setting admin page controller.
1445
-		$this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
1444
+        // create an instance of the entity type setting admin page controller.
1445
+        $this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
1446 1446
 
1447
-		/** Widgets */
1448
-		$this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
1447
+        /** Widgets */
1448
+        $this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
1449 1449
 
1450
-		/* WordPress Admin. */
1451
-		$this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
1452
-		$this->status_page             = new Wordlift_Admin_Status_Page( $this->entity_service, $this->sparql_service );
1450
+        /* WordPress Admin. */
1451
+        $this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
1452
+        $this->status_page             = new Wordlift_Admin_Status_Page( $this->entity_service, $this->sparql_service );
1453 1453
 
1454
-		// Create an instance of the install wizard.
1455
-		$this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service, $this->language_select_element, $this->country_select_element );
1454
+        // Create an instance of the install wizard.
1455
+        $this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service, $this->language_select_element, $this->country_select_element );
1456 1456
 
1457
-		$this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
1457
+        $this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
1458 1458
 
1459
-		// User Profile.
1460
-		new Wordlift_Admin_User_Profile_Page( $this->author_element, $this->user_service );
1459
+        // User Profile.
1460
+        new Wordlift_Admin_User_Profile_Page( $this->author_element, $this->user_service );
1461 1461
 
1462
-		$this->entity_page_service = new Wordlift_Entity_Page_Service();
1462
+        $this->entity_page_service = new Wordlift_Entity_Page_Service();
1463 1463
 
1464
-		// Load the debug service if WP is in debug mode.
1465
-		if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
1466
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
1467
-			new Wordlift_Debug_Service( $this->entity_service, $uri_service );
1468
-		}
1464
+        // Load the debug service if WP is in debug mode.
1465
+        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
1466
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
1467
+            new Wordlift_Debug_Service( $this->entity_service, $uri_service );
1468
+        }
1469 1469
 
1470
-		// Remote Image Service.
1471
-		new Wordlift_Remote_Image_Service();
1470
+        // Remote Image Service.
1471
+        new Wordlift_Remote_Image_Service();
1472 1472
 
1473
-		/*
1473
+        /*
1474 1474
 		 * Provides mappings between post types and entity types.
1475 1475
 		 *
1476 1476
 		 * @since 3.20.0
1477 1477
 		 *
1478 1478
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/852.
1479 1479
 		 */
1480
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-batch-action.php';
1481
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/mapping/class-wordlift-mapping-service.php';
1482
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/mapping/class-wordlift-mapping-ajax-adapter.php';
1480
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-batch-action.php';
1481
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/mapping/class-wordlift-mapping-service.php';
1482
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/mapping/class-wordlift-mapping-ajax-adapter.php';
1483 1483
 
1484
-		// Create an instance of the Mapping Service and assign it to the Ajax Adapter.
1485
-		new Wordlift_Mapping_Ajax_Adapter( new Wordlift_Mapping_Service( Wordlift_Entity_Type_Service::get_instance() ) );
1484
+        // Create an instance of the Mapping Service and assign it to the Ajax Adapter.
1485
+        new Wordlift_Mapping_Ajax_Adapter( new Wordlift_Mapping_Service( Wordlift_Entity_Type_Service::get_instance() ) );
1486 1486
 
1487
-		/*
1487
+        /*
1488 1488
 		 * Batch Operations. They're similar to Batch Actions but do not require working on post types.
1489 1489
 		 *
1490 1490
 		 * Eventually Batch Actions will become Batch Operations.
1491 1491
 		 *
1492 1492
 		 * @since 3.20.0
1493 1493
 		 */
1494
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch/intf-wordlift-batch-operation.php';
1495
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch/class-wordlift-batch-operation-ajax-adapter.php';
1496
-		/*
1494
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch/intf-wordlift-batch-operation.php';
1495
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/batch/class-wordlift-batch-operation-ajax-adapter.php';
1496
+        /*
1497 1497
 		 * Load the Mappings JSON-LD post processing.
1498 1498
 		 *
1499 1499
 		 * @since 3.25.0
1500 1500
 		 */
1501 1501
 
1502
-		$mappings_dbo           = new Mappings_DBO();
1503
-		$default_rule_validator = new Taxonomy_Rule_Validator();
1504
-		new Post_Type_Rule_Validator();
1505
-		// Taxonomy term rule validator for validating rules for term pages.
1506
-		new Taxonomy_Term_Rule_Validator();
1507
-		new Post_Taxonomy_Term_Rule_Validator();
1508
-		$rule_validators_registry = new Rule_Validators_Registry( $default_rule_validator );
1509
-		$rule_groups_validator    = new Rule_Groups_Validator( $rule_validators_registry );
1510
-		$mappings_validator       = new Mappings_Validator( $mappings_dbo, $rule_groups_validator );
1511
-
1512
-		new Url_To_Entity_Transform_Function( $this->entity_uri_service );
1513
-		new Taxonomy_To_Terms_Transform_Function();
1514
-		new Post_Id_To_Entity_Transform_Function();
1515
-		$mappings_transform_functions_registry = new Mappings_Transform_Functions_Registry();
1516
-
1517
-		/**
1518
-		 * @since 3.27.1
1519
-		 * Intiailize the acf group data formatter.
1520
-		 */
1521
-		new Acf_Group_Formatter();
1522
-		new Jsonld_Converter( $mappings_validator, $mappings_transform_functions_registry );
1523
-
1524
-		/**
1525
-		 * @since 3.26.0
1526
-		 * Initialize the Faq JSON LD converter here - disabled.
1527
-		 */
1528
-		// new Faq_To_Jsonld_Converter();
1529
-		/*
1502
+        $mappings_dbo           = new Mappings_DBO();
1503
+        $default_rule_validator = new Taxonomy_Rule_Validator();
1504
+        new Post_Type_Rule_Validator();
1505
+        // Taxonomy term rule validator for validating rules for term pages.
1506
+        new Taxonomy_Term_Rule_Validator();
1507
+        new Post_Taxonomy_Term_Rule_Validator();
1508
+        $rule_validators_registry = new Rule_Validators_Registry( $default_rule_validator );
1509
+        $rule_groups_validator    = new Rule_Groups_Validator( $rule_validators_registry );
1510
+        $mappings_validator       = new Mappings_Validator( $mappings_dbo, $rule_groups_validator );
1511
+
1512
+        new Url_To_Entity_Transform_Function( $this->entity_uri_service );
1513
+        new Taxonomy_To_Terms_Transform_Function();
1514
+        new Post_Id_To_Entity_Transform_Function();
1515
+        $mappings_transform_functions_registry = new Mappings_Transform_Functions_Registry();
1516
+
1517
+        /**
1518
+         * @since 3.27.1
1519
+         * Intiailize the acf group data formatter.
1520
+         */
1521
+        new Acf_Group_Formatter();
1522
+        new Jsonld_Converter( $mappings_validator, $mappings_transform_functions_registry );
1523
+
1524
+        /**
1525
+         * @since 3.26.0
1526
+         * Initialize the Faq JSON LD converter here - disabled.
1527
+         */
1528
+        // new Faq_To_Jsonld_Converter();
1529
+        /*
1530 1530
 		 * Use the Templates Ajax Endpoint to load HTML templates for the legacy Angular app via admin-ajax.php
1531 1531
 		 * end-point.
1532 1532
 		 *
1533 1533
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/834
1534 1534
 		 * @since 3.24.4
1535 1535
 		 */
1536
-		new Templates_Ajax_Endpoint();
1537
-		// Call this static method to register FAQ routes to rest api - disabled
1538
-		//Faq_Rest_Controller::register_routes();
1536
+        new Templates_Ajax_Endpoint();
1537
+        // Call this static method to register FAQ routes to rest api - disabled
1538
+        //Faq_Rest_Controller::register_routes();
1539 1539
 
1540
-		/*
1540
+        /*
1541 1541
 		 * Create a singleton for the Analysis_Response_Ops_Factory.
1542 1542
 		 */
1543
-		$entity_helper = new Entity_Helper( $this->entity_uri_service, $this->entity_service );
1544
-		/**
1545
-		 * @since 3.32.0
1546
-		 * Initialize a local entity provider which acts as an abstraction layer
1547
-		 * between the different types of objects in wordpress.
1548
-		 */
1549
-		$entity_provider_registry = new Entity_Provider_Registry();
1550
-
1551
-		/**
1552
-		 * @since 3.32.0
1553
-		 * The post entity provider has the legacy code which provides the entity
1554
-		 * if the object is post {@link \Wordlift\Object_Type_Enum::POST}
1555
-		 */
1556
-		new Post_Entity_Provider($this->entity_uri_service,
1557
-			$this->entity_type_service, $this->storage_factory->post_images() );
1558
-		/**
1559
-		 * @since 3.32.0
1560
-		 * The term entity provider provides the entity
1561
-		 * if the object is term {@link \Wordlift\Object_Type_Enum::POST}
1562
-		 */
1563
-		new Term_Entity_Provider();
1564
-
1565
-		new Analysis_Response_Ops_Factory(
1566
-			$this->entity_uri_service,
1567
-			$entity_helper,
1568
-			$entity_provider_registry
1569
-		);
1570
-
1571
-		/** WL Autocomplete. */
1572
-		$autocomplete_service       = new All_Autocomplete_Service( array(
1573
-			new Local_Autocomplete_Service(),
1574
-			new Linked_Data_Autocomplete_Service( $this->configuration_service, $entity_helper, $this->entity_uri_service, $this->entity_service ),
1575
-		) );
1576
-		$this->autocomplete_adapter = new Wordlift_Autocomplete_Adapter( $autocomplete_service );
1577
-
1578
-		/**
1579
-		 * @since 3.27.2
1580
-		 * Integrate the recipe maker jsonld & set recipe
1581
-		 * as default entity type to the wprm_recipe CPT.
1582
-		 */
1583
-		new Recipe_Maker_Post_Type_Hook();
1584
-		$recipe_maker_validation_service = new Recipe_Maker_Validation_Service();
1585
-		new Recipe_Maker_Jsonld_Hook( $attachment_service, $recipe_maker_validation_service );
1586
-		new Recipe_Maker_After_Get_Jsonld_Hook( $recipe_maker_validation_service );
1587
-		new Recipe_Maker_Warning( $recipe_maker_validation_service );
1588
-		new Yoast_Jsonld( $recipe_maker_validation_service );
1589
-
1590
-		/**
1591
-		 * @since 3.27.4
1592
-		 * Add the faq duplicate markup hook.
1593
-		 */
1594
-		new Faq_Duplicate_Markup_Remover();
1595
-		/**
1596
-		 * @since 3.27.8
1597
-		 * @see https://github.com/insideout10/wordlift-plugin/issues/1248
1598
-		 */
1599
-		new Key_Validation_Notice( $this->key_validation_service, $this->configuration_service );
1600
-		/**
1601
-		 * @since 3.28.0
1602
-		 * @see https://github.com/insideout10/wordlift-plugin/issues?q=assignee%3Anaveen17797+is%3Aopen
1603
-		 */
1604
-		new Entity_No_Index_Flag();
1605
-
1606
-		/**
1607
-		 * @since 3.29.0
1608
-		 * @see https://github.com/insideout10/wordlift-plugin/issues/1304
1609
-		 */
1610
-		new Entity_Rest_Service( $this->entity_type_service );
1611
-
1612
-		/**
1613
-		 * Expand author in to references.
1614
-		 * @since 3.30.0
1615
-		 * @see https://github.com/insideout10/wordlift-plugin/issues/1318
1616
-		 */
1617
-
1618
-		add_action( 'plugins_loaded', function () use ( $that ) {
1619
-
1620
-			if ( apply_filters( 'wl_feature__enable__article-wrapper', false ) ) {
1621
-				new Jsonld_Article_Wrapper( Wordlift_Post_To_Jsonld_Converter::get_instance(), $that->cached_postid_to_jsonld_converter );
1622
-			}
1623
-
1624
-			if ( apply_filters( 'wl_feature__enable__match-terms', false ) ) {
1625
-				$vocabulary_loader = new Vocabulary_Loader();
1626
-				$vocabulary_loader->init_vocabulary();
1627
-			}
1628
-
1629
-		} );
1630
-
1631
-		/**
1632
-		 * @since 3.30.0
1633
-		 * Add a checkbox to user option screen for wordlift admin.
1634
-		 */
1635
-		$wordlift_admin_checkbox = new Admin_User_Option();
1636
-		$wordlift_admin_checkbox->connect_hook();
1637
-		/**
1638
-		 * @since 3.31.0
1639
-		 * Init loader class for videoobject.
1640
-		 */
1641
-		$videoobject_loader = new Loader();
1642
-		$videoobject_loader->init_feature();
1643
-		/**
1644
-		 * @since 3.31.5
1645
-		 * Create configuration endpoint for webapp to configure.
1646
-		 */
1647
-		new Config( $this->admin_setup, $this->key_validation_service, $this->configuration_service );
1648
-		/**
1649
-		 * @since 3.31.7
1650
-		 * Remove duplicate videoobject.
1651
-		 */
1652
-		new Videoobject_Duplicate_Remover();
1653
-		$synonym_loader = new \Wordlift\Synonym\Loader();
1654
-		$synonym_loader->init_feature();
1655
-		/**
1656
-		 * @since 3.32.0
1657
-		 * Create loader for vocabulary terms.
1658
-		 */
1659
-		$vocabulary_terms_loader = new Vocabulary_Terms_Loader( $this->entity_type_service, $property_getter );
1660
-		$vocabulary_terms_loader->init_feature();
1661
-
1662
-		new Entity_Type_Change_Handler(
1663
-			$this->entity_service,
1664
-			$this->entity_type_service
1665
-		);
1666
-
1667
-		new Entity_Type_Setter();
1668
-	}
1669
-
1670
-	/**
1671
-	 * Define the locale for this plugin for internationalization.
1672
-	 *
1673
-	 * Uses the Wordlift_i18n class in order to set the domain and to register the hook
1674
-	 * with WordPress.
1675
-	 *
1676
-	 * @since    1.0.0
1677
-	 * @access   private
1678
-	 */
1679
-	private function set_locale() {
1680
-
1681
-		$plugin_i18n = new Wordlift_i18n();
1682
-		$plugin_i18n->set_domain( $this->get_plugin_name() );
1683
-
1684
-		$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
1685
-
1686
-	}
1687
-
1688
-	/**
1689
-	 * Register all of the hooks related to the admin area functionality
1690
-	 * of the plugin.
1691
-	 *
1692
-	 * @since    1.0.0
1693
-	 * @access   private
1694
-	 */
1695
-	private function define_admin_hooks() {
1696
-		$that         = $this;
1697
-		$plugin_admin = new Wordlift_Admin(
1698
-			$this->get_plugin_name(),
1699
-			$this->get_version(),
1700
-			$this->configuration_service,
1701
-			$this->notice_service,
1702
-			$this->user_service
1703
-		);
1704
-
1705
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
1706
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts', 11 );
1707
-
1708
-		// Hook the init action to taxonomy services.
1709
-		$this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
1710
-		$this->loader->add_action( 'init', $this->entity_types_taxonomy_service, 'init', 0 );
1711
-
1712
-		// Hook the deleted_post_meta action to the Thumbnail service.
1713
-		$this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
1714
-
1715
-		// Hook the added_post_meta action to the Thumbnail service.
1716
-		$this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1717
-
1718
-		// Hook the updated_post_meta action to the Thumbnail service.
1719
-		$this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1720
-
1721
-		// Hook the AJAX wl_timeline action to the Timeline service.
1722
-		$this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1723
-
1724
-		// Register custom allowed redirect hosts.
1725
-		$this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
1726
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1727
-		$this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
1728
-
1729
-		/*
1543
+        $entity_helper = new Entity_Helper( $this->entity_uri_service, $this->entity_service );
1544
+        /**
1545
+         * @since 3.32.0
1546
+         * Initialize a local entity provider which acts as an abstraction layer
1547
+         * between the different types of objects in wordpress.
1548
+         */
1549
+        $entity_provider_registry = new Entity_Provider_Registry();
1550
+
1551
+        /**
1552
+         * @since 3.32.0
1553
+         * The post entity provider has the legacy code which provides the entity
1554
+         * if the object is post {@link \Wordlift\Object_Type_Enum::POST}
1555
+         */
1556
+        new Post_Entity_Provider($this->entity_uri_service,
1557
+            $this->entity_type_service, $this->storage_factory->post_images() );
1558
+        /**
1559
+         * @since 3.32.0
1560
+         * The term entity provider provides the entity
1561
+         * if the object is term {@link \Wordlift\Object_Type_Enum::POST}
1562
+         */
1563
+        new Term_Entity_Provider();
1564
+
1565
+        new Analysis_Response_Ops_Factory(
1566
+            $this->entity_uri_service,
1567
+            $entity_helper,
1568
+            $entity_provider_registry
1569
+        );
1570
+
1571
+        /** WL Autocomplete. */
1572
+        $autocomplete_service       = new All_Autocomplete_Service( array(
1573
+            new Local_Autocomplete_Service(),
1574
+            new Linked_Data_Autocomplete_Service( $this->configuration_service, $entity_helper, $this->entity_uri_service, $this->entity_service ),
1575
+        ) );
1576
+        $this->autocomplete_adapter = new Wordlift_Autocomplete_Adapter( $autocomplete_service );
1577
+
1578
+        /**
1579
+         * @since 3.27.2
1580
+         * Integrate the recipe maker jsonld & set recipe
1581
+         * as default entity type to the wprm_recipe CPT.
1582
+         */
1583
+        new Recipe_Maker_Post_Type_Hook();
1584
+        $recipe_maker_validation_service = new Recipe_Maker_Validation_Service();
1585
+        new Recipe_Maker_Jsonld_Hook( $attachment_service, $recipe_maker_validation_service );
1586
+        new Recipe_Maker_After_Get_Jsonld_Hook( $recipe_maker_validation_service );
1587
+        new Recipe_Maker_Warning( $recipe_maker_validation_service );
1588
+        new Yoast_Jsonld( $recipe_maker_validation_service );
1589
+
1590
+        /**
1591
+         * @since 3.27.4
1592
+         * Add the faq duplicate markup hook.
1593
+         */
1594
+        new Faq_Duplicate_Markup_Remover();
1595
+        /**
1596
+         * @since 3.27.8
1597
+         * @see https://github.com/insideout10/wordlift-plugin/issues/1248
1598
+         */
1599
+        new Key_Validation_Notice( $this->key_validation_service, $this->configuration_service );
1600
+        /**
1601
+         * @since 3.28.0
1602
+         * @see https://github.com/insideout10/wordlift-plugin/issues?q=assignee%3Anaveen17797+is%3Aopen
1603
+         */
1604
+        new Entity_No_Index_Flag();
1605
+
1606
+        /**
1607
+         * @since 3.29.0
1608
+         * @see https://github.com/insideout10/wordlift-plugin/issues/1304
1609
+         */
1610
+        new Entity_Rest_Service( $this->entity_type_service );
1611
+
1612
+        /**
1613
+         * Expand author in to references.
1614
+         * @since 3.30.0
1615
+         * @see https://github.com/insideout10/wordlift-plugin/issues/1318
1616
+         */
1617
+
1618
+        add_action( 'plugins_loaded', function () use ( $that ) {
1619
+
1620
+            if ( apply_filters( 'wl_feature__enable__article-wrapper', false ) ) {
1621
+                new Jsonld_Article_Wrapper( Wordlift_Post_To_Jsonld_Converter::get_instance(), $that->cached_postid_to_jsonld_converter );
1622
+            }
1623
+
1624
+            if ( apply_filters( 'wl_feature__enable__match-terms', false ) ) {
1625
+                $vocabulary_loader = new Vocabulary_Loader();
1626
+                $vocabulary_loader->init_vocabulary();
1627
+            }
1628
+
1629
+        } );
1630
+
1631
+        /**
1632
+         * @since 3.30.0
1633
+         * Add a checkbox to user option screen for wordlift admin.
1634
+         */
1635
+        $wordlift_admin_checkbox = new Admin_User_Option();
1636
+        $wordlift_admin_checkbox->connect_hook();
1637
+        /**
1638
+         * @since 3.31.0
1639
+         * Init loader class for videoobject.
1640
+         */
1641
+        $videoobject_loader = new Loader();
1642
+        $videoobject_loader->init_feature();
1643
+        /**
1644
+         * @since 3.31.5
1645
+         * Create configuration endpoint for webapp to configure.
1646
+         */
1647
+        new Config( $this->admin_setup, $this->key_validation_service, $this->configuration_service );
1648
+        /**
1649
+         * @since 3.31.7
1650
+         * Remove duplicate videoobject.
1651
+         */
1652
+        new Videoobject_Duplicate_Remover();
1653
+        $synonym_loader = new \Wordlift\Synonym\Loader();
1654
+        $synonym_loader->init_feature();
1655
+        /**
1656
+         * @since 3.32.0
1657
+         * Create loader for vocabulary terms.
1658
+         */
1659
+        $vocabulary_terms_loader = new Vocabulary_Terms_Loader( $this->entity_type_service, $property_getter );
1660
+        $vocabulary_terms_loader->init_feature();
1661
+
1662
+        new Entity_Type_Change_Handler(
1663
+            $this->entity_service,
1664
+            $this->entity_type_service
1665
+        );
1666
+
1667
+        new Entity_Type_Setter();
1668
+    }
1669
+
1670
+    /**
1671
+     * Define the locale for this plugin for internationalization.
1672
+     *
1673
+     * Uses the Wordlift_i18n class in order to set the domain and to register the hook
1674
+     * with WordPress.
1675
+     *
1676
+     * @since    1.0.0
1677
+     * @access   private
1678
+     */
1679
+    private function set_locale() {
1680
+
1681
+        $plugin_i18n = new Wordlift_i18n();
1682
+        $plugin_i18n->set_domain( $this->get_plugin_name() );
1683
+
1684
+        $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
1685
+
1686
+    }
1687
+
1688
+    /**
1689
+     * Register all of the hooks related to the admin area functionality
1690
+     * of the plugin.
1691
+     *
1692
+     * @since    1.0.0
1693
+     * @access   private
1694
+     */
1695
+    private function define_admin_hooks() {
1696
+        $that         = $this;
1697
+        $plugin_admin = new Wordlift_Admin(
1698
+            $this->get_plugin_name(),
1699
+            $this->get_version(),
1700
+            $this->configuration_service,
1701
+            $this->notice_service,
1702
+            $this->user_service
1703
+        );
1704
+
1705
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
1706
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts', 11 );
1707
+
1708
+        // Hook the init action to taxonomy services.
1709
+        $this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
1710
+        $this->loader->add_action( 'init', $this->entity_types_taxonomy_service, 'init', 0 );
1711
+
1712
+        // Hook the deleted_post_meta action to the Thumbnail service.
1713
+        $this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
1714
+
1715
+        // Hook the added_post_meta action to the Thumbnail service.
1716
+        $this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1717
+
1718
+        // Hook the updated_post_meta action to the Thumbnail service.
1719
+        $this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
1720
+
1721
+        // Hook the AJAX wl_timeline action to the Timeline service.
1722
+        $this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1723
+
1724
+        // Register custom allowed redirect hosts.
1725
+        $this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
1726
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1727
+        $this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
1728
+
1729
+        /*
1730 1730
 		 * The old dashboard is replaced with dashboard v2.
1731 1731
 		 *
1732 1732
 		 * The old dashboard service is still loaded because its functions are used.
@@ -1735,391 +1735,391 @@  discard block
 block discarded – undo
1735 1735
 		 *
1736 1736
 		 * @since 3.20.0
1737 1737
 		 */
1738
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1739
-		// $this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
1740
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
1741
-		// $this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
1742
-
1743
-		// Hook save_post to the entity service to update custom fields (such as alternate labels).
1744
-		// We have a priority of 9 because we want to be executed before data is sent to Redlink.
1745
-		$this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
1746
-		$this->loader->add_action( 'save_post', $this->rating_service, 'set_rating_for', 20, 1 );
1747
-
1748
-		$this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
1749
-		$this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
1750
-
1751
-		// Entity listing customization (wp-admin/edit.php)
1752
-		// Add custom columns.
1753
-		$this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
1754
-		// no explicit entity as it prevents handling of other post types.
1755
-		$this->loader->add_filter( 'manage_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
1756
-		// Add 4W selection.
1757
-		$this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
1758
-		$this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
1759
-		$this->loader->add_action( 'pre_get_posts', $this->entity_list_service, 'pre_get_posts' );
1760
-		$this->loader->add_action( 'load-edit.php', $this->entity_list_service, 'load_edit' );
1761
-
1762
-		/*
1738
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1739
+        // $this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
1740
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
1741
+        // $this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
1742
+
1743
+        // Hook save_post to the entity service to update custom fields (such as alternate labels).
1744
+        // We have a priority of 9 because we want to be executed before data is sent to Redlink.
1745
+        $this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
1746
+        $this->loader->add_action( 'save_post', $this->rating_service, 'set_rating_for', 20, 1 );
1747
+
1748
+        $this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
1749
+        $this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
1750
+
1751
+        // Entity listing customization (wp-admin/edit.php)
1752
+        // Add custom columns.
1753
+        $this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
1754
+        // no explicit entity as it prevents handling of other post types.
1755
+        $this->loader->add_filter( 'manage_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
1756
+        // Add 4W selection.
1757
+        $this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
1758
+        $this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
1759
+        $this->loader->add_action( 'pre_get_posts', $this->entity_list_service, 'pre_get_posts' );
1760
+        $this->loader->add_action( 'load-edit.php', $this->entity_list_service, 'load_edit' );
1761
+
1762
+        /*
1763 1763
 		 * If `All Entity Types` is disable, use the radio button Walker.
1764 1764
 		 *
1765 1765
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/835
1766 1766
 		 */
1767
-		if ( ! WL_ALL_ENTITY_TYPES ) {
1768
-			$this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
1769
-		}
1770
-
1771
-		// Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
1772
-		// entities.
1773
-		$this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
1774
-
1775
-		// Filter imported post meta.
1776
-		$this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
1777
-
1778
-		// Notify the import service when an import starts and ends.
1779
-		$this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1780
-		$this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
1781
-
1782
-		// Hook the AJAX wl_rebuild action to the Rebuild Service.
1783
-		$this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1784
-		$this->loader->add_action( 'wp_ajax_wl_rebuild_references', $this->reference_rebuild_service, 'rebuild' );
1785
-
1786
-		/**
1787
-		 * Filter: wl_feature__enable__settings-download.
1788
-		 *
1789
-		 * @param bool whether the screens needed to be registered, defaults to true.
1790
-		 *
1791
-		 * @return bool
1792
-		 * @since 3.27.6
1793
-		 */
1794
-		$this->features_registry->register_feature_from_slug( 'settings-download', true, array(
1795
-			$this,
1796
-			'register_screens'
1797
-		) );
1798
-
1799
-
1800
-		// Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1801
-		$this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1802
-
1803
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1804
-		$this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1805
-		$this->loader->add_action( 'admin_post_wl_jsonld', $this->jsonld_service, 'get' );
1806
-		$this->loader->add_action( 'admin_post_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1807
-
1808
-		// Hook the AJAX wl_validate_key action to the Key Validation service.
1809
-		$this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1810
-
1811
-		// Hook the AJAX wl_update_country_options action to the countries.
1812
-		$this->loader->add_action( 'wp_ajax_wl_update_country_options', $this->country_select_element, 'get_options_html' );
1813
-
1814
-		// Hook the `admin_init` function to the Admin Setup.
1815
-		$this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1816
-
1817
-		// Hook the admin_init to the settings page.
1818
-		$this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1819
-		$this->loader->add_action( 'admin_init', $this->analytics_settings_page, 'admin_init' );
1820
-
1821
-		$this->loader->add_filter( 'admin_post_thumbnail_html', $this->publisher_service, 'add_featured_image_instruction' );
1822
-
1823
-		// Hook the menu creation on the general wordlift menu creation.
1824
-		/**
1825
-		 * Filter: wl_feature__enable__screens.
1826
-		 *
1827
-		 * @param bool whether the screens needed to be registered, defaults to true.
1828
-		 *
1829
-		 * @return bool
1830
-		 * @since 3.27.6
1831
-		 *
1832
-		 * Since 3.30.0 this feature is registered using registry.
1833
-		 */
1834
-		add_action( 'plugins_loaded', function () use ( $that ) {
1835
-			if ( apply_filters( 'wl_feature__enable__settings-screen', true ) || Admin_User_Option::is_wordlift_admin() ) {
1836
-				add_action( 'wl_admin_menu', array( $that->settings_page, 'admin_menu' ), 10, 2 );
1837
-			}
1838
-		} );
1839
-
1840
-		// Hook key update.
1841
-		$this->loader->add_action( 'pre_update_option_wl_general_settings', $this->configuration_service, 'maybe_update_dataset_uri', 10, 2 );
1842
-		$this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1843
-
1844
-		// Add additional action links to the WordLift plugin in the plugins page.
1845
-		$this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1846
-
1847
-		/*
1767
+        if ( ! WL_ALL_ENTITY_TYPES ) {
1768
+            $this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
1769
+        }
1770
+
1771
+        // Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
1772
+        // entities.
1773
+        $this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
1774
+
1775
+        // Filter imported post meta.
1776
+        $this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
1777
+
1778
+        // Notify the import service when an import starts and ends.
1779
+        $this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1780
+        $this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
1781
+
1782
+        // Hook the AJAX wl_rebuild action to the Rebuild Service.
1783
+        $this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1784
+        $this->loader->add_action( 'wp_ajax_wl_rebuild_references', $this->reference_rebuild_service, 'rebuild' );
1785
+
1786
+        /**
1787
+         * Filter: wl_feature__enable__settings-download.
1788
+         *
1789
+         * @param bool whether the screens needed to be registered, defaults to true.
1790
+         *
1791
+         * @return bool
1792
+         * @since 3.27.6
1793
+         */
1794
+        $this->features_registry->register_feature_from_slug( 'settings-download', true, array(
1795
+            $this,
1796
+            'register_screens'
1797
+        ) );
1798
+
1799
+
1800
+        // Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1801
+        $this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1802
+
1803
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1804
+        $this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1805
+        $this->loader->add_action( 'admin_post_wl_jsonld', $this->jsonld_service, 'get' );
1806
+        $this->loader->add_action( 'admin_post_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1807
+
1808
+        // Hook the AJAX wl_validate_key action to the Key Validation service.
1809
+        $this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1810
+
1811
+        // Hook the AJAX wl_update_country_options action to the countries.
1812
+        $this->loader->add_action( 'wp_ajax_wl_update_country_options', $this->country_select_element, 'get_options_html' );
1813
+
1814
+        // Hook the `admin_init` function to the Admin Setup.
1815
+        $this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1816
+
1817
+        // Hook the admin_init to the settings page.
1818
+        $this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1819
+        $this->loader->add_action( 'admin_init', $this->analytics_settings_page, 'admin_init' );
1820
+
1821
+        $this->loader->add_filter( 'admin_post_thumbnail_html', $this->publisher_service, 'add_featured_image_instruction' );
1822
+
1823
+        // Hook the menu creation on the general wordlift menu creation.
1824
+        /**
1825
+         * Filter: wl_feature__enable__screens.
1826
+         *
1827
+         * @param bool whether the screens needed to be registered, defaults to true.
1828
+         *
1829
+         * @return bool
1830
+         * @since 3.27.6
1831
+         *
1832
+         * Since 3.30.0 this feature is registered using registry.
1833
+         */
1834
+        add_action( 'plugins_loaded', function () use ( $that ) {
1835
+            if ( apply_filters( 'wl_feature__enable__settings-screen', true ) || Admin_User_Option::is_wordlift_admin() ) {
1836
+                add_action( 'wl_admin_menu', array( $that->settings_page, 'admin_menu' ), 10, 2 );
1837
+            }
1838
+        } );
1839
+
1840
+        // Hook key update.
1841
+        $this->loader->add_action( 'pre_update_option_wl_general_settings', $this->configuration_service, 'maybe_update_dataset_uri', 10, 2 );
1842
+        $this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1843
+
1844
+        // Add additional action links to the WordLift plugin in the plugins page.
1845
+        $this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1846
+
1847
+        /*
1848 1848
 		 * Remove the Analytics Settings link from the plugin page.
1849 1849
 		 *
1850 1850
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/932
1851 1851
 		 * @since 3.21.1
1852 1852
 		 */
1853
-		// $this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->analytics_settings_page_action_link, 'action_links', 10, 1 );
1854
-
1855
-		// Hook the AJAX `wl_publisher` action name.
1856
-		$this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1857
-
1858
-		// Hook row actions for the entity type list admin.
1859
-		$this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1860
-
1861
-		/** Ajax actions. */
1862
-		$this->loader->add_action( 'wp_ajax_wl_google_analytics_export', $this->google_analytics_export_service, 'export' );
1863
-
1864
-		// Hook capabilities manipulation to allow access to entity type admin
1865
-		// page  on WordPress versions before 4.7.
1866
-		global $wp_version;
1867
-		if ( version_compare( $wp_version, '4.7', '<' ) ) {
1868
-			$this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'enable_admin_access_pre_47', 10, 4 );
1869
-		}
1870
-
1871
-		$this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1872
-
1873
-		/** Adapters. */
1874
-		$this->loader->add_filter( 'mce_external_plugins', $this->tinymce_adapter, 'mce_external_plugins', 10, 1 );
1875
-		/**
1876
-		 * Disabling Faq temporarily.
1877
-		 * Load the tinymce editor button on the tool bar.
1878
-		 * @since 3.26.0
1879
-		 */
1880
-		//$this->loader->add_filter( 'tiny_mce_before_init', $this->faq_tinymce_adapter, 'register_custom_tags' );
1881
-		//$this->loader->add_filter( 'mce_buttons', $this->faq_tinymce_adapter, 'register_faq_toolbar_button', 10, 1 );
1882
-		//$this->loader->add_filter( 'mce_external_plugins', $this->faq_tinymce_adapter, 'register_faq_tinymce_plugin', 10, 1 );
1883
-
1884
-
1885
-		$this->loader->add_action( 'wp_ajax_wl_relation_rebuild_process_all', $this->relation_rebuild_adapter, 'process_all' );
1886
-		$this->loader->add_action( 'wp_ajax_wl_sample_data_create', $this->sample_data_ajax_adapter, 'create' );
1887
-		$this->loader->add_action( 'wp_ajax_wl_sample_data_delete', $this->sample_data_ajax_adapter, 'delete' );
1888
-		/**
1889
-		 * @since 3.26.0
1890
-		 */
1891
-		$excerpt_adapter = new Post_Excerpt_Meta_Box_Adapter();
1892
-		$this->loader->add_action( 'do_meta_boxes', $excerpt_adapter, 'replace_post_excerpt_meta_box' );
1893
-		// Adding Rest route for the post excerpt
1894
-		Post_Excerpt_Rest_Controller::register_routes();
1895
-
1896
-		$this->loader->add_action( 'update_user_metadata', $this->user_service, 'update_user_metadata', 10, 5 );
1897
-		$this->loader->add_action( 'delete_user_metadata', $this->user_service, 'delete_user_metadata', 10, 5 );
1898
-
1899
-		// Handle the autocomplete request.
1900
-		add_action( 'wp_ajax_wl_autocomplete', array(
1901
-			$this->autocomplete_adapter,
1902
-			'wl_autocomplete',
1903
-		) );
1904
-		add_action( 'wp_ajax_nopriv_wl_autocomplete', array(
1905
-			$this->autocomplete_adapter,
1906
-			'wl_autocomplete',
1907
-		) );
1908
-
1909
-		// Hooks to restrict multisite super admin from manipulating entity types.
1910
-		if ( is_multisite() ) {
1911
-			$this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'restrict_super_admin', 10, 4 );
1912
-		}
1913
-
1914
-		$deactivator_feedback = new Wordlift_Deactivator_Feedback( $this->configuration_service );
1915
-
1916
-		add_action( 'admin_footer', array( $deactivator_feedback, 'render_feedback_popup' ) );
1917
-		add_action( 'admin_enqueue_scripts', array( $deactivator_feedback, 'enqueue_popup_scripts' ) );
1918
-		add_action( 'wp_ajax_wl_deactivation_feedback', array( $deactivator_feedback, 'wl_deactivation_feedback' ) );
1919
-
1920
-		/**
1921
-		 * Always allow the `wordlift/classification` block.
1922
-		 *
1923
-		 * @since 3.23.0
1924
-		 */
1925
-		add_filter( 'allowed_block_types', function ( $value ) {
1926
-
1927
-			if ( true === $value ) {
1928
-				return $value;
1929
-			}
1930
-
1931
-			return array_merge( (array) $value, array( 'wordlift/classification' ) );
1932
-		}, PHP_INT_MAX );
1933
-
1934
-		/**
1935
-		 * @since 3.27.7
1936
-		 * @see https://github.com/insideout10/wordlift-plugin/issues/1214
1937
-		 */
1938
-		new Top_Entities();
1939
-	}
1940
-
1941
-	/**
1942
-	 * Register all of the hooks related to the public-facing functionality
1943
-	 * of the plugin.
1944
-	 *
1945
-	 * @since    1.0.0
1946
-	 * @access   private
1947
-	 */
1948
-	private function define_public_hooks() {
1949
-
1950
-		$plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1951
-
1952
-		// Register the entity post type.
1953
-		$this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1954
-
1955
-		// Bind the link generation and handling hooks to the entity link service.
1956
-		$this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1957
-		$this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', PHP_INT_MAX, 1 );
1958
-		// $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 );
1959
-		// $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 );
1960
-
1961
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1962
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1963
-		$this->loader->add_action( 'wp_enqueue_scripts', $this->context_cards_service, 'enqueue_scripts' );
1964
-
1965
-		// Registering Faq_Content_Filter service used for removing faq question and answer tags from the html.
1966
-		$this->loader->add_filter( 'the_content', $this->faq_content_filter_service, 'remove_all_faq_question_and_answer_tags' );
1967
-		// Hook the content filter service to add entity links.
1968
-		if ( ! defined( 'WL_DISABLE_CONTENT_FILTER' ) || ! WL_DISABLE_CONTENT_FILTER ) {
1969
-			$this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1970
-		}
1971
-
1972
-		// Hook the AJAX wl_timeline action to the Timeline service.
1973
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1974
-
1975
-		// Hook the ShareThis service.
1976
-		$this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1977
-		$this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1978
-
1979
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1980
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1981
-
1982
-		// Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1983
-		// in order to tweak WP's `WP_Query` to include entities in queries related
1984
-		// to categories.
1985
-		$this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1986
-
1987
-		/*
1853
+        // $this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->analytics_settings_page_action_link, 'action_links', 10, 1 );
1854
+
1855
+        // Hook the AJAX `wl_publisher` action name.
1856
+        $this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1857
+
1858
+        // Hook row actions for the entity type list admin.
1859
+        $this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1860
+
1861
+        /** Ajax actions. */
1862
+        $this->loader->add_action( 'wp_ajax_wl_google_analytics_export', $this->google_analytics_export_service, 'export' );
1863
+
1864
+        // Hook capabilities manipulation to allow access to entity type admin
1865
+        // page  on WordPress versions before 4.7.
1866
+        global $wp_version;
1867
+        if ( version_compare( $wp_version, '4.7', '<' ) ) {
1868
+            $this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'enable_admin_access_pre_47', 10, 4 );
1869
+        }
1870
+
1871
+        $this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1872
+
1873
+        /** Adapters. */
1874
+        $this->loader->add_filter( 'mce_external_plugins', $this->tinymce_adapter, 'mce_external_plugins', 10, 1 );
1875
+        /**
1876
+         * Disabling Faq temporarily.
1877
+         * Load the tinymce editor button on the tool bar.
1878
+         * @since 3.26.0
1879
+         */
1880
+        //$this->loader->add_filter( 'tiny_mce_before_init', $this->faq_tinymce_adapter, 'register_custom_tags' );
1881
+        //$this->loader->add_filter( 'mce_buttons', $this->faq_tinymce_adapter, 'register_faq_toolbar_button', 10, 1 );
1882
+        //$this->loader->add_filter( 'mce_external_plugins', $this->faq_tinymce_adapter, 'register_faq_tinymce_plugin', 10, 1 );
1883
+
1884
+
1885
+        $this->loader->add_action( 'wp_ajax_wl_relation_rebuild_process_all', $this->relation_rebuild_adapter, 'process_all' );
1886
+        $this->loader->add_action( 'wp_ajax_wl_sample_data_create', $this->sample_data_ajax_adapter, 'create' );
1887
+        $this->loader->add_action( 'wp_ajax_wl_sample_data_delete', $this->sample_data_ajax_adapter, 'delete' );
1888
+        /**
1889
+         * @since 3.26.0
1890
+         */
1891
+        $excerpt_adapter = new Post_Excerpt_Meta_Box_Adapter();
1892
+        $this->loader->add_action( 'do_meta_boxes', $excerpt_adapter, 'replace_post_excerpt_meta_box' );
1893
+        // Adding Rest route for the post excerpt
1894
+        Post_Excerpt_Rest_Controller::register_routes();
1895
+
1896
+        $this->loader->add_action( 'update_user_metadata', $this->user_service, 'update_user_metadata', 10, 5 );
1897
+        $this->loader->add_action( 'delete_user_metadata', $this->user_service, 'delete_user_metadata', 10, 5 );
1898
+
1899
+        // Handle the autocomplete request.
1900
+        add_action( 'wp_ajax_wl_autocomplete', array(
1901
+            $this->autocomplete_adapter,
1902
+            'wl_autocomplete',
1903
+        ) );
1904
+        add_action( 'wp_ajax_nopriv_wl_autocomplete', array(
1905
+            $this->autocomplete_adapter,
1906
+            'wl_autocomplete',
1907
+        ) );
1908
+
1909
+        // Hooks to restrict multisite super admin from manipulating entity types.
1910
+        if ( is_multisite() ) {
1911
+            $this->loader->add_filter( 'map_meta_cap', $this->entity_type_admin_page, 'restrict_super_admin', 10, 4 );
1912
+        }
1913
+
1914
+        $deactivator_feedback = new Wordlift_Deactivator_Feedback( $this->configuration_service );
1915
+
1916
+        add_action( 'admin_footer', array( $deactivator_feedback, 'render_feedback_popup' ) );
1917
+        add_action( 'admin_enqueue_scripts', array( $deactivator_feedback, 'enqueue_popup_scripts' ) );
1918
+        add_action( 'wp_ajax_wl_deactivation_feedback', array( $deactivator_feedback, 'wl_deactivation_feedback' ) );
1919
+
1920
+        /**
1921
+         * Always allow the `wordlift/classification` block.
1922
+         *
1923
+         * @since 3.23.0
1924
+         */
1925
+        add_filter( 'allowed_block_types', function ( $value ) {
1926
+
1927
+            if ( true === $value ) {
1928
+                return $value;
1929
+            }
1930
+
1931
+            return array_merge( (array) $value, array( 'wordlift/classification' ) );
1932
+        }, PHP_INT_MAX );
1933
+
1934
+        /**
1935
+         * @since 3.27.7
1936
+         * @see https://github.com/insideout10/wordlift-plugin/issues/1214
1937
+         */
1938
+        new Top_Entities();
1939
+    }
1940
+
1941
+    /**
1942
+     * Register all of the hooks related to the public-facing functionality
1943
+     * of the plugin.
1944
+     *
1945
+     * @since    1.0.0
1946
+     * @access   private
1947
+     */
1948
+    private function define_public_hooks() {
1949
+
1950
+        $plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1951
+
1952
+        // Register the entity post type.
1953
+        $this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1954
+
1955
+        // Bind the link generation and handling hooks to the entity link service.
1956
+        $this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1957
+        $this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', PHP_INT_MAX, 1 );
1958
+        // $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 );
1959
+        // $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 );
1960
+
1961
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1962
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1963
+        $this->loader->add_action( 'wp_enqueue_scripts', $this->context_cards_service, 'enqueue_scripts' );
1964
+
1965
+        // Registering Faq_Content_Filter service used for removing faq question and answer tags from the html.
1966
+        $this->loader->add_filter( 'the_content', $this->faq_content_filter_service, 'remove_all_faq_question_and_answer_tags' );
1967
+        // Hook the content filter service to add entity links.
1968
+        if ( ! defined( 'WL_DISABLE_CONTENT_FILTER' ) || ! WL_DISABLE_CONTENT_FILTER ) {
1969
+            $this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1970
+        }
1971
+
1972
+        // Hook the AJAX wl_timeline action to the Timeline service.
1973
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1974
+
1975
+        // Hook the ShareThis service.
1976
+        $this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1977
+        $this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1978
+
1979
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1980
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1981
+
1982
+        // Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1983
+        // in order to tweak WP's `WP_Query` to include entities in queries related
1984
+        // to categories.
1985
+        $this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1986
+
1987
+        /*
1988 1988
 		 * Hook the `pre_get_posts` action to the `Wordlift_Entity_Page_Service`
1989 1989
 		 * in order to tweak WP's `WP_Query` to show event related entities in reverse
1990 1990
 		 * order of start time.
1991 1991
 		 */
1992
-		$this->loader->add_action( 'pre_get_posts', $this->entity_page_service, 'pre_get_posts', 10, 1 );
1993
-
1994
-		$this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1995
-
1996
-		// This hook have to run before the rating service, as otherwise the post might not be a proper entity when rating is done.
1997
-		$this->loader->add_action( 'save_post', $this->entity_type_adapter, 'save_post', 9, 3 );
1998
-
1999
-		// Analytics Script Frontend.
2000
-		if ( $this->configuration_service->is_analytics_enable() ) {
2001
-			$this->loader->add_action( 'wp_enqueue_scripts', $this->analytics_connect, 'enqueue_scripts', 10 );
2002
-		}
2003
-
2004
-	}
2005
-
2006
-	/**
2007
-	 * Run the loader to execute all of the hooks with WordPress.
2008
-	 *
2009
-	 * @since    1.0.0
2010
-	 */
2011
-	public function run() {
2012
-		$this->loader->run();
2013
-	}
2014
-
2015
-	/**
2016
-	 * The name of the plugin used to uniquely identify it within the context of
2017
-	 * WordPress and to define internationalization functionality.
2018
-	 *
2019
-	 * @return    string    The name of the plugin.
2020
-	 * @since     1.0.0
2021
-	 */
2022
-	public function get_plugin_name() {
2023
-		return $this->plugin_name;
2024
-	}
2025
-
2026
-	/**
2027
-	 * The reference to the class that orchestrates the hooks with the plugin.
2028
-	 *
2029
-	 * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
2030
-	 * @since     1.0.0
2031
-	 */
2032
-	public function get_loader() {
2033
-		return $this->loader;
2034
-	}
2035
-
2036
-	/**
2037
-	 * Retrieve the version number of the plugin.
2038
-	 *
2039
-	 * @return    string    The version number of the plugin.
2040
-	 * @since     1.0.0
2041
-	 */
2042
-	public function get_version() {
2043
-		return $this->version;
2044
-	}
2045
-
2046
-	/**
2047
-	 * Load dependencies for WP-CLI.
2048
-	 *
2049
-	 * @throws Exception
2050
-	 * @since 3.18.0
2051
-	 */
2052
-	private function load_cli_dependencies() {
2053
-
2054
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'cli/class-wordlift-push-reference-data-command.php';
2055
-
2056
-		$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 );
2057
-
2058
-		WP_CLI::add_command( 'wl references push', $push_reference_data_command );
2059
-
2060
-	}
2061
-
2062
-	/**
2063
-	 * Get the {@link \Wordlift_Dashboard_Service} to allow others to use its functions.
2064
-	 *
2065
-	 * @return \Wordlift_Dashboard_Service The {@link \Wordlift_Dashboard_Service} instance.
2066
-	 * @since 3.20.0
2067
-	 */
2068
-	public function get_dashboard_service() {
2069
-
2070
-		return $this->dashboard_service;
2071
-	}
2072
-
2073
-	public function add_wl_enabled_blocks() {
2074
-		/**
2075
-		 * Filter: wl_feature__enable__blocks.
2076
-		 *
2077
-		 * @param bool whether the blocks needed to be registered, defaults to true.
2078
-		 *
2079
-		 * @return bool
2080
-		 * @since 3.27.6
2081
-		 */
2082
-
2083
-		wp_register_script( 'wl_enabled_blocks', false );
2084
-
2085
-		$enabled_blocks = array();
2086
-
2087
-		/**
2088
-		 * Filter name: wl_feature_enable__product_navigator
2089
-		 * @since 3.30.0
2090
-		 */
2091
-		if ( apply_filters( 'wl_feature_enable__product-navigator', true ) ) {
2092
-			$enabled_blocks[] = 'wordlift/products-navigator';
2093
-		}
2094
-
2095
-		if ( apply_filters( 'wl_feature__enable__blocks', true ) ) {
2096
-			// To intimate JS
2097
-			$enabled_blocks = array_merge( $enabled_blocks, array(
2098
-				'wordlift/navigator',
2099
-				'wordlift/chord',
2100
-				'wordlift/geomap',
2101
-				'wordlift/timeline',
2102
-				'wordlift/cloud',
2103
-				'wordlift/vocabulary',
2104
-				'wordlift/faceted-search'
2105
-			) );
2106
-		}
2107
-
2108
-		wp_localize_script( 'wl_enabled_blocks', 'wlEnabledBlocks', $enabled_blocks );
2109
-		wp_enqueue_script( 'wl_enabled_blocks' );
2110
-	}
2111
-
2112
-	/**
2113
-	 * Register screens based on the filter.
2114
-	 */
2115
-	public function register_screens() {
2116
-		// Hook the menu to the Download Your Data page.
2117
-		if ( apply_filters( 'wl_feature__enable__settings-download', true ) ) {
2118
-			add_action( 'admin_menu', array( $this->download_your_data_page, 'admin_menu' ), 100, 0 );
2119
-		}
2120
-		add_action( 'admin_menu', array( $this->status_page, 'admin_menu' ), 100, 0 );
2121
-		add_action( 'admin_menu', array( $this->entity_type_settings_admin_page, 'admin_menu' ), 100, 0 );
2122
-
2123
-	}
1992
+        $this->loader->add_action( 'pre_get_posts', $this->entity_page_service, 'pre_get_posts', 10, 1 );
1993
+
1994
+        $this->loader->add_action( 'wl_async_wl_run_sparql_query', $this->sparql_service, 'run_sparql_query', 10, 1 );
1995
+
1996
+        // This hook have to run before the rating service, as otherwise the post might not be a proper entity when rating is done.
1997
+        $this->loader->add_action( 'save_post', $this->entity_type_adapter, 'save_post', 9, 3 );
1998
+
1999
+        // Analytics Script Frontend.
2000
+        if ( $this->configuration_service->is_analytics_enable() ) {
2001
+            $this->loader->add_action( 'wp_enqueue_scripts', $this->analytics_connect, 'enqueue_scripts', 10 );
2002
+        }
2003
+
2004
+    }
2005
+
2006
+    /**
2007
+     * Run the loader to execute all of the hooks with WordPress.
2008
+     *
2009
+     * @since    1.0.0
2010
+     */
2011
+    public function run() {
2012
+        $this->loader->run();
2013
+    }
2014
+
2015
+    /**
2016
+     * The name of the plugin used to uniquely identify it within the context of
2017
+     * WordPress and to define internationalization functionality.
2018
+     *
2019
+     * @return    string    The name of the plugin.
2020
+     * @since     1.0.0
2021
+     */
2022
+    public function get_plugin_name() {
2023
+        return $this->plugin_name;
2024
+    }
2025
+
2026
+    /**
2027
+     * The reference to the class that orchestrates the hooks with the plugin.
2028
+     *
2029
+     * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
2030
+     * @since     1.0.0
2031
+     */
2032
+    public function get_loader() {
2033
+        return $this->loader;
2034
+    }
2035
+
2036
+    /**
2037
+     * Retrieve the version number of the plugin.
2038
+     *
2039
+     * @return    string    The version number of the plugin.
2040
+     * @since     1.0.0
2041
+     */
2042
+    public function get_version() {
2043
+        return $this->version;
2044
+    }
2045
+
2046
+    /**
2047
+     * Load dependencies for WP-CLI.
2048
+     *
2049
+     * @throws Exception
2050
+     * @since 3.18.0
2051
+     */
2052
+    private function load_cli_dependencies() {
2053
+
2054
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'cli/class-wordlift-push-reference-data-command.php';
2055
+
2056
+        $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 );
2057
+
2058
+        WP_CLI::add_command( 'wl references push', $push_reference_data_command );
2059
+
2060
+    }
2061
+
2062
+    /**
2063
+     * Get the {@link \Wordlift_Dashboard_Service} to allow others to use its functions.
2064
+     *
2065
+     * @return \Wordlift_Dashboard_Service The {@link \Wordlift_Dashboard_Service} instance.
2066
+     * @since 3.20.0
2067
+     */
2068
+    public function get_dashboard_service() {
2069
+
2070
+        return $this->dashboard_service;
2071
+    }
2072
+
2073
+    public function add_wl_enabled_blocks() {
2074
+        /**
2075
+         * Filter: wl_feature__enable__blocks.
2076
+         *
2077
+         * @param bool whether the blocks needed to be registered, defaults to true.
2078
+         *
2079
+         * @return bool
2080
+         * @since 3.27.6
2081
+         */
2082
+
2083
+        wp_register_script( 'wl_enabled_blocks', false );
2084
+
2085
+        $enabled_blocks = array();
2086
+
2087
+        /**
2088
+         * Filter name: wl_feature_enable__product_navigator
2089
+         * @since 3.30.0
2090
+         */
2091
+        if ( apply_filters( 'wl_feature_enable__product-navigator', true ) ) {
2092
+            $enabled_blocks[] = 'wordlift/products-navigator';
2093
+        }
2094
+
2095
+        if ( apply_filters( 'wl_feature__enable__blocks', true ) ) {
2096
+            // To intimate JS
2097
+            $enabled_blocks = array_merge( $enabled_blocks, array(
2098
+                'wordlift/navigator',
2099
+                'wordlift/chord',
2100
+                'wordlift/geomap',
2101
+                'wordlift/timeline',
2102
+                'wordlift/cloud',
2103
+                'wordlift/vocabulary',
2104
+                'wordlift/faceted-search'
2105
+            ) );
2106
+        }
2107
+
2108
+        wp_localize_script( 'wl_enabled_blocks', 'wlEnabledBlocks', $enabled_blocks );
2109
+        wp_enqueue_script( 'wl_enabled_blocks' );
2110
+    }
2111
+
2112
+    /**
2113
+     * Register screens based on the filter.
2114
+     */
2115
+    public function register_screens() {
2116
+        // Hook the menu to the Download Your Data page.
2117
+        if ( apply_filters( 'wl_feature__enable__settings-download', true ) ) {
2118
+            add_action( 'admin_menu', array( $this->download_your_data_page, 'admin_menu' ), 100, 0 );
2119
+        }
2120
+        add_action( 'admin_menu', array( $this->status_page, 'admin_menu' ), 100, 0 );
2121
+        add_action( 'admin_menu', array( $this->entity_type_settings_admin_page, 'admin_menu' ), 100, 0 );
2122
+
2123
+    }
2124 2124
 
2125 2125
 }
Please login to merge, or discard this patch.