Completed
Push — master ( 95c69f...5d737c )
by David
03:01
created
src/includes/class-wordlift.php 1 patch
Indentation   +1019 added lines, -1019 removed lines patch added patch discarded remove patch
@@ -29,1097 +29,1097 @@
 block discarded – undo
29 29
  */
30 30
 class Wordlift {
31 31
 
32
-	/**
33
-	 * The loader that's responsible for maintaining and registering all hooks that power
34
-	 * the plugin.
35
-	 *
36
-	 * @since    1.0.0
37
-	 * @access   protected
38
-	 * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
39
-	 */
40
-	protected $loader;
41
-
42
-	/**
43
-	 * The unique identifier of this plugin.
44
-	 *
45
-	 * @since    1.0.0
46
-	 * @access   protected
47
-	 * @var      string $plugin_name The string used to uniquely identify this plugin.
48
-	 */
49
-	protected $plugin_name;
50
-
51
-	/**
52
-	 * The current version of the plugin.
53
-	 *
54
-	 * @since    1.0.0
55
-	 * @access   protected
56
-	 * @var      string $version The current version of the plugin.
57
-	 */
58
-	protected $version;
59
-
60
-	/**
61
-	 * The Thumbnail service.
62
-	 *
63
-	 * @since  3.1.5
64
-	 * @access private
65
-	 * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
66
-	 */
67
-	private $thumbnail_service;
68
-
69
-	/**
70
-	 * The UI service.
71
-	 *
72
-	 * @since  3.2.0
73
-	 * @access private
74
-	 * @var \Wordlift_UI_Service $ui_service The UI service.
75
-	 */
76
-	private $ui_service;
77
-
78
-	/**
79
-	 * The Schema service.
80
-	 *
81
-	 * @since  3.3.0
82
-	 * @access private
83
-	 * @var \Wordlift_Schema_Service $schema_service The Schema service.
84
-	 */
85
-	private $schema_service;
86
-
87
-	/**
88
-	 * The Entity service.
89
-	 *
90
-	 * @since  3.1.0
91
-	 * @access protected
92
-	 * @var \Wordlift_Entity_Service $entity_service The Entity service.
93
-	 */
94
-	protected $entity_service;
95
-
96
-	/**
97
-	 * The Topic Taxonomy service.
98
-	 *
99
-	 * @since  3.5.0
100
-	 * @access private
101
-	 * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
102
-	 */
103
-	private $topic_taxonomy_service;
104
-
105
-	/**
106
-	 * The User service.
107
-	 *
108
-	 * @since  3.1.7
109
-	 * @access protected
110
-	 * @var \Wordlift_User_Service $user_service The User service.
111
-	 */
112
-	protected $user_service;
113
-
114
-	/**
115
-	 * The Timeline service.
116
-	 *
117
-	 * @since  3.1.0
118
-	 * @access private
119
-	 * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
120
-	 */
121
-	private $timeline_service;
122
-
123
-	/**
124
-	 * The Redirect service.
125
-	 *
126
-	 * @since  3.2.0
127
-	 * @access private
128
-	 * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
129
-	 */
130
-	private $redirect_service;
131
-
132
-	/**
133
-	 * The Notice service.
134
-	 *
135
-	 * @since  3.3.0
136
-	 * @access private
137
-	 * @var \Wordlift_Notice_Service $notice_service The Notice service.
138
-	 */
139
-	private $notice_service;
140
-
141
-	/**
142
-	 * The Entity list customization.
143
-	 *
144
-	 * @since  3.3.0
145
-	 * @access private
146
-	 * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
147
-	 */
148
-	private $entity_list_service;
149
-
150
-	/**
151
-	 * The Entity Types Taxonomy Walker.
152
-	 *
153
-	 * @since  3.1.0
154
-	 * @access private
155
-	 * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
156
-	 */
157
-	private $entity_types_taxonomy_walker;
158
-
159
-	/**
160
-	 * The ShareThis service.
161
-	 *
162
-	 * @since  3.2.0
163
-	 * @access private
164
-	 * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
165
-	 */
166
-	private $sharethis_service;
167
-
168
-	/**
169
-	 * The PrimaShop adapter.
170
-	 *
171
-	 * @since  3.2.3
172
-	 * @access private
173
-	 * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
174
-	 */
175
-	private $primashop_adapter;
176
-
177
-	/**
178
-	 * The WordLift Dashboard adapter.
179
-	 *
180
-	 * @since  3.4.0
181
-	 * @access private
182
-	 * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
183
-	 */
184
-	private $dashboard_service;
185
-
186
-	/**
187
-	 * The entity type service.
188
-	 *
189
-	 * @since  3.6.0
190
-	 * @access private
191
-	 * @var \Wordlift_Entity_Post_Type_Service
192
-	 */
193
-	private $entity_post_type_service;
194
-
195
-	/**
196
-	 * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
197
-	 *
198
-	 * @since  3.6.0
199
-	 * @access private
200
-	 * @var \Wordlift_Entity_Link_Service
201
-	 */
202
-	private $entity_link_service;
203
-
204
-	/**
205
-	 * A {@link Wordlift_Sparql_Service} instance.
206
-	 *
207
-	 * @var    3.6.0
208
-	 * @access private
209
-	 * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
210
-	 */
211
-	private $sparql_service;
212
-
213
-	/**
214
-	 * A {@link Wordlift_Import_Service} instance.
215
-	 *
216
-	 * @since  3.6.0
217
-	 * @access private
218
-	 * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
219
-	 */
220
-	private $import_service;
221
-
222
-	/**
223
-	 * A {@link Wordlift_Rebuild_Service} instance.
224
-	 *
225
-	 * @since  3.6.0
226
-	 * @access private
227
-	 * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
228
-	 */
229
-	private $rebuild_service;
230
-
231
-	/**
232
-	 * A {@link Wordlift_Jsonld_Service} instance.
233
-	 *
234
-	 * @since  3.7.0
235
-	 * @access protected
236
-	 * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
237
-	 */
238
-	protected $jsonld_service;
239
-
240
-	/**
241
-	 *
242
-	 * @since  3.7.0
243
-	 * @access private
244
-	 * @var \Wordlift_Property_Factory $property_factory
245
-	 */
246
-	private $property_factory;
247
-
248
-	/**
249
-	 * The 'Download Your Data' page.
250
-	 *
251
-	 * @since  3.6.0
252
-	 * @access private
253
-	 * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
254
-	 */
255
-	private $download_your_data_page;
256
-
257
-	/**
258
-	 * The 'WordLift Settings' page.
259
-	 *
260
-	 * @since  3.11.0
261
-	 * @access protected
262
-	 * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
263
-	 */
264
-	protected $settings_page;
265
-
266
-	/**
267
-	 * The install wizard page.
268
-	 *
269
-	 * @since  3.9.0
270
-	 * @access private
271
-	 * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
272
-	 */
273
-	private $admin_setup;
274
-
275
-	/**
276
-	 * The Content Filter Service hooks up to the 'the_content' filter and provides
277
-	 * linking of entities to their pages.
278
-	 *
279
-	 * @since  3.8.0
280
-	 * @access private
281
-	 * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
282
-	 */
283
-	private $content_filter_service;
284
-
285
-	/**
286
-	 * A {@link Wordlift_Key_Validation_Service} instance.
287
-	 *
288
-	 * @since  3.9.0
289
-	 * @access private
290
-	 * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
291
-	 */
292
-	private $key_validation_service;
293
-
294
-	/**
295
-	 * A {@link Wordlift_Rating_Service} instance.
296
-	 *
297
-	 * @since  3.10.0
298
-	 * @access private
299
-	 * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
300
-	 */
301
-	private $rating_service;
302
-
303
-	/**
304
-	 * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
305
-	 *
306
-	 * @since  3.10.0
307
-	 * @access protected
308
-	 * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
309
-	 */
310
-	protected $post_to_jsonld_converter;
311
-
312
-	/**
313
-	 * A {@link Wordlift_Configuration_Service} instance.
314
-	 *
315
-	 * @since  3.10.0
316
-	 * @access protected
317
-	 * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
318
-	 */
319
-	protected $configuration_service;
320
-
321
-	/**
322
-	 * A {@link Wordlift_Entity_Type_Service} instance.
323
-	 *
324
-	 * @since  3.10.0
325
-	 * @access protected
326
-	 * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
327
-	 */
328
-	protected $entity_type_service;
329
-
330
-	/**
331
-	 * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
332
-	 *
333
-	 * @since  3.10.0
334
-	 * @access protected
335
-	 * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
336
-	 */
337
-	protected $entity_post_to_jsonld_converter;
338
-
339
-	/**
340
-	 * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
341
-	 *
342
-	 * @since  3.10.0
343
-	 * @access protected
344
-	 * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
345
-	 */
346
-	protected $postid_to_jsonld_converter;
347
-
348
-	/**
349
-	 * The {@link Wordlift_Admin_Status_Page} class.
350
-	 *
351
-	 * @since  3.9.8
352
-	 * @access private
353
-	 * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
354
-	 */
355
-	private $status_page;
356
-
357
-	/**
358
-	 * The {@link Wordlift_Category_Taxonomy_Service} instance.
359
-	 *
360
-	 * @since  3.11.0
361
-	 * @access protected
362
-	 * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
363
-	 */
364
-	protected $category_taxonomy_service;
365
-
366
-	/**
367
-	 * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
368
-	 *
369
-	 * @since  3.11.0
370
-	 * @access protected
371
-	 * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
372
-	 */
373
-	protected $settings_page_action_link;
374
-
375
-	/**
376
-	 * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
377
-	 *
378
-	 * @since  3.11.0
379
-	 * @access protected
380
-	 * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
381
-	 */
382
-	protected $publisher_ajax_adapter;
383
-
384
-	/**
385
-	 * The {@link Wordlift_Admin_Input_Element} element renderer.
386
-	 *
387
-	 * @since  3.11.0
388
-	 * @access protected
389
-	 * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
390
-	 */
391
-	protected $input_element;
392
-
393
-	/**
394
-	 * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
395
-	 *
396
-	 * @since  3.11.0
397
-	 * @access protected
398
-	 * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
399
-	 */
400
-	protected $language_select_element;
401
-
402
-	/**
403
-	 * The {@link Wordlift_Admin_Publisher_Element} element renderer.
404
-	 *
405
-	 * @since  3.11.0
406
-	 * @access protected
407
-	 * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
408
-	 */
409
-	protected $publisher_element;
410
-
411
-	/**
412
-	 * The {@link Wordlift_Admin_Select2_Element} element renderer.
413
-	 *
414
-	 * @since  3.11.0
415
-	 * @access protected
416
-	 * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
417
-	 */
418
-	protected $select2_element;
419
-
420
-	/**
421
-	 * The controller for the entity type list admin page
422
-	 *
423
-	 * @since  3.11.0
424
-	 * @access private
425
-	 * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
426
-	 */
427
-	private $entity_type_admin_page;
428
-
429
-	/**
430
-	 * The controller for the entity type settings admin page
431
-	 *
432
-	 * @since  3.11.0
433
-	 * @access private
434
-	 * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
435
-	 */
436
-	private $entity_type_settings_admin_page;
437
-
438
-	/**
439
-	 * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
440
-	 *
441
-	 * @since  3.11.0
442
-	 * @access protected
443
-	 * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
444
-	 */
445
-	protected $related_entities_cloud_widget;
446
-
447
-	/**
448
-	 * Define the core functionality of the plugin.
449
-	 *
450
-	 * Set the plugin name and the plugin version that can be used throughout the plugin.
451
-	 * Load the dependencies, define the locale, and set the hooks for the admin area and
452
-	 * the public-facing side of the site.
453
-	 *
454
-	 * @since    1.0.0
455
-	 */
456
-	public function __construct() {
457
-
458
-		$this->plugin_name = 'wordlift';
459
-		$this->version     = '3.11.1';
460
-		$this->load_dependencies();
461
-		$this->set_locale();
462
-		$this->define_admin_hooks();
463
-		$this->define_public_hooks();
464
-
465
-	}
466
-
467
-	/**
468
-	 * Load the required dependencies for this plugin.
469
-	 *
470
-	 * Include the following files that make up the plugin:
471
-	 *
472
-	 * - Wordlift_Loader. Orchestrates the hooks of the plugin.
473
-	 * - Wordlift_i18n. Defines internationalization functionality.
474
-	 * - Wordlift_Admin. Defines all hooks for the admin area.
475
-	 * - Wordlift_Public. Defines all hooks for the public side of the site.
476
-	 *
477
-	 * Create an instance of the loader which will be used to register the hooks
478
-	 * with WordPress.
479
-	 *
480
-	 * @since    1.0.0
481
-	 * @access   private
482
-	 */
483
-	private function load_dependencies() {
484
-
485
-		/**
486
-		 * The class responsible for orchestrating the actions and filters of the
487
-		 * core plugin.
488
-		 */
489
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
490
-
491
-		/**
492
-		 * The class responsible for defining internationalization functionality
493
-		 * of the plugin.
494
-		 */
495
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
496
-
497
-		/**
498
-		 * WordLift's supported languages.
499
-		 */
500
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
501
-
502
-		/**
503
-		 * Provide support functions to sanitize data.
504
-		 */
505
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
506
-
507
-		/**
508
-		 * The Redirect service.
509
-		 */
510
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
511
-
512
-		/**
513
-		 * The Log service.
514
-		 */
515
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
516
-
517
-		/**
518
-		 * The configuration service.
519
-		 */
520
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
521
-
522
-		/**
523
-		 * The entity post type service (this is the WordPress post type, not the entity schema type).
524
-		 */
525
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
526
-
527
-		/**
528
-		 * The entity type service (i.e. the schema type).
529
-		 */
530
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
531
-
532
-		/**
533
-		 * The entity link service.
534
-		 */
535
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
536
-
537
-		/**
538
-		 * The Query builder.
539
-		 */
540
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
541
-
542
-		/**
543
-		 * The Schema service.
544
-		 */
545
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
546
-
547
-		/**
548
-		 * The schema:url property service.
549
-		 */
550
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
551
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
552
-
553
-		/**
554
-		 * The UI service.
555
-		 */
556
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
557
-
558
-		/**
559
-		 * The Thumbnail service.
560
-		 */
561
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
562
-
563
-		/**
564
-		 * The Entity Types Taxonomy service.
565
-		 */
566
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-types-taxonomy-service.php';
567
-
568
-		/**
569
-		 * The Entity service.
570
-		 */
571
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
572
-
573
-		// Add the entity rating service.
574
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
575
-
576
-		/**
577
-		 * The User service.
578
-		 */
579
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
580
-
581
-		/**
582
-		 * The Timeline service.
583
-		 */
584
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
585
-
586
-		/**
587
-		 * The Topic Taxonomy service.
588
-		 */
589
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
590
-
591
-		/**
592
-		 * The SPARQL service.
593
-		 */
594
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
595
-
596
-		/**
597
-		 * The WordLift import service.
598
-		 */
599
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
600
-
601
-		/**
602
-		 * The WordLift URI service.
603
-		 */
604
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
605
-
606
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-listable.php';
607
-
608
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
609
-
610
-		/**
611
-		 * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
612
-		 */
613
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rebuild-service.php';
614
-
615
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
616
-
617
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
618
-
619
-		/**
620
-		 * Load the converters.
621
-		 */
622
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
623
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
624
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
625
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
626
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
627
-
628
-		/**
629
-		 * Load the content filter.
630
-		 */
631
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
632
-
633
-		/**
634
-		 * Load the JSON-LD service to publish entities using JSON-LD.s
635
-		 *
636
-		 * @since 3.8.0
637
-		 */
638
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
639
-
640
-		// The Publisher Service and the AJAX adapter.
641
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
642
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
643
-
644
-		/**
645
-		 * Load the WordLift key validation service.
646
-		 */
647
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
648
-
649
-		// Load the `Wordlift_Category_Taxonomy_Service` class definition.
650
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
651
-
652
-		/**
653
-		 * The class responsible for defining all actions that occur in the admin area.
654
-		 */
655
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
656
-
657
-		/**
658
-		 * The class to customize the entity list admin page.
659
-		 */
660
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
661
-
662
-		/**
663
-		 * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
664
-		 */
665
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
666
-
667
-		/**
668
-		 * The Notice service.
669
-		 */
670
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
671
-
672
-		/**
673
-		 * The PrimaShop adapter.
674
-		 */
675
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
676
-
677
-		/**
678
-		 * The WordLift Dashboard service.
679
-		 */
680
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
681
-
682
-		/**
683
-		 * The admin 'Install wizard' page.
684
-		 */
685
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
686
-
687
-		/**
688
-		 * The WordLift entity type list admin page controller.
689
-		 */
690
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
691
-
692
-		/**
693
-		 * The WordLift entity type settings admin page controller.
694
-		 */
695
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
696
-
697
-		/**
698
-		 * The admin 'Download Your Data' page.
699
-		 */
700
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
701
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
702
-
703
-		/**
704
-		 * The admin 'Download Your Data' page.
705
-		 */
706
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
707
-
708
-		/**
709
-		 * The admin 'WordLift Settings' page.
710
-		 */
711
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/intf-wordlift-admin-element.php';
712
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-element.php';
713
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-select2-element.php';
714
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-language-select-element.php';
715
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-tabs-element.php';
716
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-publisher-element.php';
717
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
718
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
719
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
720
-
721
-		/** Admin Pages */
722
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
723
-
724
-		/**
725
-		 * The class responsible for defining all actions that occur in the public-facing
726
-		 * side of the site.
727
-		 */
728
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
729
-
730
-		/**
731
-		 * The shortcode abstract class.
732
-		 */
733
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
734
-
735
-		/**
736
-		 * The Timeline shortcode.
737
-		 */
738
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
32
+    /**
33
+     * The loader that's responsible for maintaining and registering all hooks that power
34
+     * the plugin.
35
+     *
36
+     * @since    1.0.0
37
+     * @access   protected
38
+     * @var      Wordlift_Loader $loader Maintains and registers all hooks for the plugin.
39
+     */
40
+    protected $loader;
41
+
42
+    /**
43
+     * The unique identifier of this plugin.
44
+     *
45
+     * @since    1.0.0
46
+     * @access   protected
47
+     * @var      string $plugin_name The string used to uniquely identify this plugin.
48
+     */
49
+    protected $plugin_name;
50
+
51
+    /**
52
+     * The current version of the plugin.
53
+     *
54
+     * @since    1.0.0
55
+     * @access   protected
56
+     * @var      string $version The current version of the plugin.
57
+     */
58
+    protected $version;
59
+
60
+    /**
61
+     * The Thumbnail service.
62
+     *
63
+     * @since  3.1.5
64
+     * @access private
65
+     * @var \Wordlift_Thumbnail_Service $thumbnail_service The Thumbnail service.
66
+     */
67
+    private $thumbnail_service;
68
+
69
+    /**
70
+     * The UI service.
71
+     *
72
+     * @since  3.2.0
73
+     * @access private
74
+     * @var \Wordlift_UI_Service $ui_service The UI service.
75
+     */
76
+    private $ui_service;
77
+
78
+    /**
79
+     * The Schema service.
80
+     *
81
+     * @since  3.3.0
82
+     * @access private
83
+     * @var \Wordlift_Schema_Service $schema_service The Schema service.
84
+     */
85
+    private $schema_service;
86
+
87
+    /**
88
+     * The Entity service.
89
+     *
90
+     * @since  3.1.0
91
+     * @access protected
92
+     * @var \Wordlift_Entity_Service $entity_service The Entity service.
93
+     */
94
+    protected $entity_service;
95
+
96
+    /**
97
+     * The Topic Taxonomy service.
98
+     *
99
+     * @since  3.5.0
100
+     * @access private
101
+     * @var \Wordlift_Topic_Taxonomy_Service The Topic Taxonomy service.
102
+     */
103
+    private $topic_taxonomy_service;
104
+
105
+    /**
106
+     * The User service.
107
+     *
108
+     * @since  3.1.7
109
+     * @access protected
110
+     * @var \Wordlift_User_Service $user_service The User service.
111
+     */
112
+    protected $user_service;
113
+
114
+    /**
115
+     * The Timeline service.
116
+     *
117
+     * @since  3.1.0
118
+     * @access private
119
+     * @var \Wordlift_Timeline_Service $timeline_service The Timeline service.
120
+     */
121
+    private $timeline_service;
122
+
123
+    /**
124
+     * The Redirect service.
125
+     *
126
+     * @since  3.2.0
127
+     * @access private
128
+     * @var \Wordlift_Redirect_Service $redirect_service The Redirect service.
129
+     */
130
+    private $redirect_service;
131
+
132
+    /**
133
+     * The Notice service.
134
+     *
135
+     * @since  3.3.0
136
+     * @access private
137
+     * @var \Wordlift_Notice_Service $notice_service The Notice service.
138
+     */
139
+    private $notice_service;
140
+
141
+    /**
142
+     * The Entity list customization.
143
+     *
144
+     * @since  3.3.0
145
+     * @access private
146
+     * @var \Wordlift_Entity_List_Service $entity_list_service The Entity list service.
147
+     */
148
+    private $entity_list_service;
149
+
150
+    /**
151
+     * The Entity Types Taxonomy Walker.
152
+     *
153
+     * @since  3.1.0
154
+     * @access private
155
+     * @var \Wordlift_Entity_Types_Taxonomy_Walker $entity_types_taxonomy_walker The Entity Types Taxonomy Walker
156
+     */
157
+    private $entity_types_taxonomy_walker;
158
+
159
+    /**
160
+     * The ShareThis service.
161
+     *
162
+     * @since  3.2.0
163
+     * @access private
164
+     * @var \Wordlift_ShareThis_Service $sharethis_service The ShareThis service.
165
+     */
166
+    private $sharethis_service;
167
+
168
+    /**
169
+     * The PrimaShop adapter.
170
+     *
171
+     * @since  3.2.3
172
+     * @access private
173
+     * @var \Wordlift_PrimaShop_Adapter $primashop_adapter The PrimaShop adapter.
174
+     */
175
+    private $primashop_adapter;
176
+
177
+    /**
178
+     * The WordLift Dashboard adapter.
179
+     *
180
+     * @since  3.4.0
181
+     * @access private
182
+     * @var \Wordlift_Dashboard_Service $dashboard_service The WordLift Dashboard service;
183
+     */
184
+    private $dashboard_service;
185
+
186
+    /**
187
+     * The entity type service.
188
+     *
189
+     * @since  3.6.0
190
+     * @access private
191
+     * @var \Wordlift_Entity_Post_Type_Service
192
+     */
193
+    private $entity_post_type_service;
194
+
195
+    /**
196
+     * The entity link service used to mangle links to entities with a custom slug or even w/o a slug.
197
+     *
198
+     * @since  3.6.0
199
+     * @access private
200
+     * @var \Wordlift_Entity_Link_Service
201
+     */
202
+    private $entity_link_service;
203
+
204
+    /**
205
+     * A {@link Wordlift_Sparql_Service} instance.
206
+     *
207
+     * @var    3.6.0
208
+     * @access private
209
+     * @var \Wordlift_Sparql_Service $sparql_service A {@link Wordlift_Sparql_Service} instance.
210
+     */
211
+    private $sparql_service;
212
+
213
+    /**
214
+     * A {@link Wordlift_Import_Service} instance.
215
+     *
216
+     * @since  3.6.0
217
+     * @access private
218
+     * @var \Wordlift_Import_Service $import_service A {@link Wordlift_Import_Service} instance.
219
+     */
220
+    private $import_service;
221
+
222
+    /**
223
+     * A {@link Wordlift_Rebuild_Service} instance.
224
+     *
225
+     * @since  3.6.0
226
+     * @access private
227
+     * @var \Wordlift_Rebuild_Service $rebuild_service A {@link Wordlift_Rebuild_Service} instance.
228
+     */
229
+    private $rebuild_service;
230
+
231
+    /**
232
+     * A {@link Wordlift_Jsonld_Service} instance.
233
+     *
234
+     * @since  3.7.0
235
+     * @access protected
236
+     * @var \Wordlift_Jsonld_Service $jsonld_service A {@link Wordlift_Jsonld_Service} instance.
237
+     */
238
+    protected $jsonld_service;
239
+
240
+    /**
241
+     *
242
+     * @since  3.7.0
243
+     * @access private
244
+     * @var \Wordlift_Property_Factory $property_factory
245
+     */
246
+    private $property_factory;
247
+
248
+    /**
249
+     * The 'Download Your Data' page.
250
+     *
251
+     * @since  3.6.0
252
+     * @access private
253
+     * @var \Wordlift_Admin_Download_Your_Data_Page $download_your_data_page The 'Download Your Data' page.
254
+     */
255
+    private $download_your_data_page;
256
+
257
+    /**
258
+     * The 'WordLift Settings' page.
259
+     *
260
+     * @since  3.11.0
261
+     * @access protected
262
+     * @var \Wordlift_Admin_Settings_Page $settings_page The 'WordLift Settings' page.
263
+     */
264
+    protected $settings_page;
265
+
266
+    /**
267
+     * The install wizard page.
268
+     *
269
+     * @since  3.9.0
270
+     * @access private
271
+     * @var \Wordlift_Admin_Setup $admin_setup The Install wizard.
272
+     */
273
+    private $admin_setup;
274
+
275
+    /**
276
+     * The Content Filter Service hooks up to the 'the_content' filter and provides
277
+     * linking of entities to their pages.
278
+     *
279
+     * @since  3.8.0
280
+     * @access private
281
+     * @var \Wordlift_Content_Filter_Service $content_filter_service A {@link Wordlift_Content_Filter_Service} instance.
282
+     */
283
+    private $content_filter_service;
284
+
285
+    /**
286
+     * A {@link Wordlift_Key_Validation_Service} instance.
287
+     *
288
+     * @since  3.9.0
289
+     * @access private
290
+     * @var Wordlift_Key_Validation_Service $key_validation_service A {@link Wordlift_Key_Validation_Service} instance.
291
+     */
292
+    private $key_validation_service;
293
+
294
+    /**
295
+     * A {@link Wordlift_Rating_Service} instance.
296
+     *
297
+     * @since  3.10.0
298
+     * @access private
299
+     * @var \Wordlift_Rating_Service $rating_service A {@link Wordlift_Rating_Service} instance.
300
+     */
301
+    private $rating_service;
302
+
303
+    /**
304
+     * A {@link Wordlift_Post_To_Jsonld_Converter} instance.
305
+     *
306
+     * @since  3.10.0
307
+     * @access protected
308
+     * @var \Wordlift_Post_To_Jsonld_Converter $post_to_jsonld_converter A {@link Wordlift_Post_To_Jsonld_Converter} instance.
309
+     */
310
+    protected $post_to_jsonld_converter;
311
+
312
+    /**
313
+     * A {@link Wordlift_Configuration_Service} instance.
314
+     *
315
+     * @since  3.10.0
316
+     * @access protected
317
+     * @var \Wordlift_Configuration_Service $configuration_service A {@link Wordlift_Configuration_Service} instance.
318
+     */
319
+    protected $configuration_service;
320
+
321
+    /**
322
+     * A {@link Wordlift_Entity_Type_Service} instance.
323
+     *
324
+     * @since  3.10.0
325
+     * @access protected
326
+     * @var \Wordlift_Entity_Type_Service $entity_type_service A {@link Wordlift_Entity_Type_Service} instance.
327
+     */
328
+    protected $entity_type_service;
329
+
330
+    /**
331
+     * A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
332
+     *
333
+     * @since  3.10.0
334
+     * @access protected
335
+     * @var \Wordlift_Entity_Post_To_Jsonld_Converter $entity_post_to_jsonld_converter A {@link Wordlift_Entity_Post_To_Jsonld_Converter} instance.
336
+     */
337
+    protected $entity_post_to_jsonld_converter;
338
+
339
+    /**
340
+     * A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
341
+     *
342
+     * @since  3.10.0
343
+     * @access protected
344
+     * @var \Wordlift_Postid_To_Jsonld_Converter $postid_to_jsonld_converter A {@link Wordlift_Postid_To_Jsonld_Converter} instance.
345
+     */
346
+    protected $postid_to_jsonld_converter;
347
+
348
+    /**
349
+     * The {@link Wordlift_Admin_Status_Page} class.
350
+     *
351
+     * @since  3.9.8
352
+     * @access private
353
+     * @var \Wordlift_Admin_Status_Page $status_page The {@link Wordlift_Admin_Status_Page} class.
354
+     */
355
+    private $status_page;
356
+
357
+    /**
358
+     * The {@link Wordlift_Category_Taxonomy_Service} instance.
359
+     *
360
+     * @since  3.11.0
361
+     * @access protected
362
+     * @var \Wordlift_Category_Taxonomy_Service $category_taxonomy_service The {@link Wordlift_Category_Taxonomy_Service} instance.
363
+     */
364
+    protected $category_taxonomy_service;
365
+
366
+    /**
367
+     * The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
368
+     *
369
+     * @since  3.11.0
370
+     * @access protected
371
+     * @var \Wordlift_Admin_Settings_Page_Action_Link $settings_page_action_link The {@link Wordlift_Admin_Settings_Page_Action_Link} class.
372
+     */
373
+    protected $settings_page_action_link;
374
+
375
+    /**
376
+     * The {@link Wordlift_Publisher_Ajax_Adapter} instance.
377
+     *
378
+     * @since  3.11.0
379
+     * @access protected
380
+     * @var \Wordlift_Publisher_Ajax_Adapter $publisher_ajax_adapter The {@link Wordlift_Publisher_Ajax_Adapter} instance.
381
+     */
382
+    protected $publisher_ajax_adapter;
383
+
384
+    /**
385
+     * The {@link Wordlift_Admin_Input_Element} element renderer.
386
+     *
387
+     * @since  3.11.0
388
+     * @access protected
389
+     * @var \Wordlift_Admin_Input_Element $input_element The {@link Wordlift_Admin_Input_Element} element renderer.
390
+     */
391
+    protected $input_element;
392
+
393
+    /**
394
+     * The {@link Wordlift_Admin_Language_Select_Element} element renderer.
395
+     *
396
+     * @since  3.11.0
397
+     * @access protected
398
+     * @var \Wordlift_Admin_Language_Select_Element $language_select_element The {@link Wordlift_Admin_Language_Select_Element} element renderer.
399
+     */
400
+    protected $language_select_element;
401
+
402
+    /**
403
+     * The {@link Wordlift_Admin_Publisher_Element} element renderer.
404
+     *
405
+     * @since  3.11.0
406
+     * @access protected
407
+     * @var \Wordlift_Admin_Publisher_Element $publisher_element The {@link Wordlift_Admin_Publisher_Element} element renderer.
408
+     */
409
+    protected $publisher_element;
410
+
411
+    /**
412
+     * The {@link Wordlift_Admin_Select2_Element} element renderer.
413
+     *
414
+     * @since  3.11.0
415
+     * @access protected
416
+     * @var \Wordlift_Admin_Select2_Element $select2_element The {@link Wordlift_Admin_Select2_Element} element renderer.
417
+     */
418
+    protected $select2_element;
419
+
420
+    /**
421
+     * The controller for the entity type list admin page
422
+     *
423
+     * @since  3.11.0
424
+     * @access private
425
+     * @var \Wordlift_Admin_Entity_Taxonomy_List_Page $entity_type_admin_page The {@link Wordlift_Admin_Entity_Taxonomy_List_Page} class.
426
+     */
427
+    private $entity_type_admin_page;
428
+
429
+    /**
430
+     * The controller for the entity type settings admin page
431
+     *
432
+     * @since  3.11.0
433
+     * @access private
434
+     * @var \Wordlift_Admin_Entity_Type_Settings $entity_type_settings_admin_page The {@link Wordlift_Admin_Entity_Type_Settings} class.
435
+     */
436
+    private $entity_type_settings_admin_page;
437
+
438
+    /**
439
+     * The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
440
+     *
441
+     * @since  3.11.0
442
+     * @access protected
443
+     * @var \Wordlift_Related_Entities_Cloud_Widget $related_entities_cloud_widget The {@link Wordlift_Related_Entities_Cloud_Widget} instance.
444
+     */
445
+    protected $related_entities_cloud_widget;
446
+
447
+    /**
448
+     * Define the core functionality of the plugin.
449
+     *
450
+     * Set the plugin name and the plugin version that can be used throughout the plugin.
451
+     * Load the dependencies, define the locale, and set the hooks for the admin area and
452
+     * the public-facing side of the site.
453
+     *
454
+     * @since    1.0.0
455
+     */
456
+    public function __construct() {
457
+
458
+        $this->plugin_name = 'wordlift';
459
+        $this->version     = '3.11.1';
460
+        $this->load_dependencies();
461
+        $this->set_locale();
462
+        $this->define_admin_hooks();
463
+        $this->define_public_hooks();
464
+
465
+    }
466
+
467
+    /**
468
+     * Load the required dependencies for this plugin.
469
+     *
470
+     * Include the following files that make up the plugin:
471
+     *
472
+     * - Wordlift_Loader. Orchestrates the hooks of the plugin.
473
+     * - Wordlift_i18n. Defines internationalization functionality.
474
+     * - Wordlift_Admin. Defines all hooks for the admin area.
475
+     * - Wordlift_Public. Defines all hooks for the public side of the site.
476
+     *
477
+     * Create an instance of the loader which will be used to register the hooks
478
+     * with WordPress.
479
+     *
480
+     * @since    1.0.0
481
+     * @access   private
482
+     */
483
+    private function load_dependencies() {
484
+
485
+        /**
486
+         * The class responsible for orchestrating the actions and filters of the
487
+         * core plugin.
488
+         */
489
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-loader.php';
490
+
491
+        /**
492
+         * The class responsible for defining internationalization functionality
493
+         * of the plugin.
494
+         */
495
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-i18n.php';
496
+
497
+        /**
498
+         * WordLift's supported languages.
499
+         */
500
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-languages.php';
501
+
502
+        /**
503
+         * Provide support functions to sanitize data.
504
+         */
505
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sanitizer.php';
506
+
507
+        /**
508
+         * The Redirect service.
509
+         */
510
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-redirect-service.php';
511
+
512
+        /**
513
+         * The Log service.
514
+         */
515
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-log-service.php';
516
+
517
+        /**
518
+         * The configuration service.
519
+         */
520
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-configuration-service.php';
521
+
522
+        /**
523
+         * The entity post type service (this is the WordPress post type, not the entity schema type).
524
+         */
525
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-type-service.php';
526
+
527
+        /**
528
+         * The entity type service (i.e. the schema type).
529
+         */
530
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-type-service.php';
531
+
532
+        /**
533
+         * The entity link service.
534
+         */
535
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-link-service.php';
536
+
537
+        /**
538
+         * The Query builder.
539
+         */
540
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-query-builder.php';
541
+
542
+        /**
543
+         * The Schema service.
544
+         */
545
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-service.php';
546
+
547
+        /**
548
+         * The schema:url property service.
549
+         */
550
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-service.php';
551
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-schema-url-property-service.php';
552
+
553
+        /**
554
+         * The UI service.
555
+         */
556
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-ui-service.php';
557
+
558
+        /**
559
+         * The Thumbnail service.
560
+         */
561
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-thumbnail-service.php';
562
+
563
+        /**
564
+         * The Entity Types Taxonomy service.
565
+         */
566
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-types-taxonomy-service.php';
567
+
568
+        /**
569
+         * The Entity service.
570
+         */
571
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-service.php';
572
+
573
+        // Add the entity rating service.
574
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rating-service.php';
575
+
576
+        /**
577
+         * The User service.
578
+         */
579
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-user-service.php';
580
+
581
+        /**
582
+         * The Timeline service.
583
+         */
584
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-timeline-service.php';
585
+
586
+        /**
587
+         * The Topic Taxonomy service.
588
+         */
589
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-topic-taxonomy-service.php';
590
+
591
+        /**
592
+         * The SPARQL service.
593
+         */
594
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-sparql-service.php';
595
+
596
+        /**
597
+         * The WordLift import service.
598
+         */
599
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-import-service.php';
600
+
601
+        /**
602
+         * The WordLift URI service.
603
+         */
604
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-uri-service.php';
605
+
606
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-listable.php';
607
+
608
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-property-factory.php';
609
+
610
+        /**
611
+         * The WordLift rebuild service, used to rebuild the remote dataset using the local data.
612
+         */
613
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-rebuild-service.php';
614
+
615
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/properties/class-wordlift-property-getter-factory.php';
616
+
617
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-attachment-service.php';
618
+
619
+        /**
620
+         * Load the converters.
621
+         */
622
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/intf-wordlift-post-converter.php';
623
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-abstract-post-to-jsonld-converter.php';
624
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-postid-to-jsonld-converter.php';
625
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-entity-post-to-jsonld-converter.php';
626
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-post-to-jsonld-converter.php';
627
+
628
+        /**
629
+         * Load the content filter.
630
+         */
631
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-content-filter-service.php';
632
+
633
+        /**
634
+         * Load the JSON-LD service to publish entities using JSON-LD.s
635
+         *
636
+         * @since 3.8.0
637
+         */
638
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-jsonld-service.php';
639
+
640
+        // The Publisher Service and the AJAX adapter.
641
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-service.php';
642
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-publisher-ajax-adapter.php';
643
+
644
+        /**
645
+         * Load the WordLift key validation service.
646
+         */
647
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-key-validation-service.php';
648
+
649
+        // Load the `Wordlift_Category_Taxonomy_Service` class definition.
650
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-category-taxonomy-service.php';
651
+
652
+        /**
653
+         * The class responsible for defining all actions that occur in the admin area.
654
+         */
655
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin.php';
656
+
657
+        /**
658
+         * The class to customize the entity list admin page.
659
+         */
660
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-list.php';
661
+
662
+        /**
663
+         * The Entity Types Taxonomy Walker (transforms checkboxes into radios).
664
+         */
665
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-types-taxonomy-walker.php';
666
+
667
+        /**
668
+         * The Notice service.
669
+         */
670
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-notice-service.php';
671
+
672
+        /**
673
+         * The PrimaShop adapter.
674
+         */
675
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-primashop-adapter.php';
676
+
677
+        /**
678
+         * The WordLift Dashboard service.
679
+         */
680
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-dashboard.php';
681
+
682
+        /**
683
+         * The admin 'Install wizard' page.
684
+         */
685
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-setup.php';
686
+
687
+        /**
688
+         * The WordLift entity type list admin page controller.
689
+         */
690
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-entity-taxonomy-list-page.php';
691
+
692
+        /**
693
+         * The WordLift entity type settings admin page controller.
694
+         */
695
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-entity-type-settings.php';
696
+
697
+        /**
698
+         * The admin 'Download Your Data' page.
699
+         */
700
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
701
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-status-page.php';
702
+
703
+        /**
704
+         * The admin 'Download Your Data' page.
705
+         */
706
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-download-your-data-page.php';
707
+
708
+        /**
709
+         * The admin 'WordLift Settings' page.
710
+         */
711
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/intf-wordlift-admin-element.php';
712
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-input-element.php';
713
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-select2-element.php';
714
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-language-select-element.php';
715
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-tabs-element.php';
716
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-publisher-element.php';
717
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-page.php';
718
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page.php';
719
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-settings-page-action-link.php';
720
+
721
+        /** Admin Pages */
722
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordlift-admin-post-edit-page.php';
723
+
724
+        /**
725
+         * The class responsible for defining all actions that occur in the public-facing
726
+         * side of the site.
727
+         */
728
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-public.php';
729
+
730
+        /**
731
+         * The shortcode abstract class.
732
+         */
733
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-shortcode.php';
734
+
735
+        /**
736
+         * The Timeline shortcode.
737
+         */
738
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-timeline-shortcode.php';
739 739
 
740
-		/**
741
-		 * The Navigator shortcode.
742
-		 */
743
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
744
-
745
-		/**
746
-		 * The chord shortcode.
747
-		 */
748
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
740
+        /**
741
+         * The Navigator shortcode.
742
+         */
743
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-navigator-shortcode.php';
744
+
745
+        /**
746
+         * The chord shortcode.
747
+         */
748
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-chord-shortcode.php';
749 749
 
750
-		/**
751
-		 * The geomap shortcode.
752
-		 */
753
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
750
+        /**
751
+         * The geomap shortcode.
752
+         */
753
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-geomap-shortcode.php';
754 754
 
755
-		/**
756
-		 * The ShareThis service.
757
-		 */
758
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
755
+        /**
756
+         * The ShareThis service.
757
+         */
758
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-sharethis-service.php';
759 759
 
760
-		/**
761
-		 * The SEO service.
762
-		 */
763
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
760
+        /**
761
+         * The SEO service.
762
+         */
763
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-seo-service.php';
764 764
 
765
-		/** Widgets */
766
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
767
-		require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
765
+        /** Widgets */
766
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-widget.php';
767
+        require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordlift-related-entities-cloud-widget.php';
768 768
 
769
-		$this->loader = new Wordlift_Loader();
769
+        $this->loader = new Wordlift_Loader();
770 770
 
771
-		// Instantiate a global logger.
772
-		global $wl_logger;
773
-		$wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
771
+        // Instantiate a global logger.
772
+        global $wl_logger;
773
+        $wl_logger = Wordlift_Log_Service::get_logger( 'WordLift' );
774 774
 
775
-		// Create the configuration service.
776
-		$this->configuration_service = new Wordlift_Configuration_Service();
775
+        // Create the configuration service.
776
+        $this->configuration_service = new Wordlift_Configuration_Service();
777 777
 
778
-		// Create an entity type service instance. It'll be later bound to the init action.
779
-		$this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
778
+        // Create an entity type service instance. It'll be later bound to the init action.
779
+        $this->entity_post_type_service = new Wordlift_Entity_Post_Type_Service( Wordlift_Entity_Service::TYPE_NAME, $this->configuration_service->get_entity_base_path() );
780 780
 
781
-		// Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
782
-		$this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
781
+        // Create an entity link service instance. It'll be later bound to the post_type_link and pre_get_posts actions.
782
+        $this->entity_link_service = new Wordlift_Entity_Link_Service( $this->entity_post_type_service, $this->configuration_service->get_entity_base_path() );
783 783
 
784
-		// Create an instance of the UI service.
785
-		$this->ui_service = new Wordlift_UI_Service();
784
+        // Create an instance of the UI service.
785
+        $this->ui_service = new Wordlift_UI_Service();
786 786
 
787
-		// Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
788
-		$this->thumbnail_service = new Wordlift_Thumbnail_Service();
787
+        // Create an instance of the Thumbnail service. Later it'll be hooked to post meta events.
788
+        $this->thumbnail_service = new Wordlift_Thumbnail_Service();
789 789
 
790
-		$this->sparql_service = new Wordlift_Sparql_Service();
790
+        $this->sparql_service = new Wordlift_Sparql_Service();
791 791
 
792
-		// Create an instance of the Schema service.
793
-		$schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
794
-		$this->schema_service        = new Wordlift_Schema_Service();
792
+        // Create an instance of the Schema service.
793
+        $schema_url_property_service = new Wordlift_Schema_Url_Property_Service( $this->sparql_service );
794
+        $this->schema_service        = new Wordlift_Schema_Service();
795 795
 
796
-		// Create an instance of the Notice service.
797
-		$this->notice_service = new Wordlift_Notice_Service();
796
+        // Create an instance of the Notice service.
797
+        $this->notice_service = new Wordlift_Notice_Service();
798 798
 
799
-		// Create an instance of the Entity service, passing the UI service to draw parts of the Entity admin page.
800
-		$this->entity_service = new Wordlift_Entity_Service( $this->ui_service );
799
+        // Create an instance of the Entity service, passing the UI service to draw parts of the Entity admin page.
800
+        $this->entity_service = new Wordlift_Entity_Service( $this->ui_service );
801 801
 
802
-		// Create an instance of the User service.
803
-		$this->user_service = new Wordlift_User_Service();
802
+        // Create an instance of the User service.
803
+        $this->user_service = new Wordlift_User_Service();
804 804
 
805
-		// Create a new instance of the Timeline service and Timeline shortcode.
806
-		$this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service );
805
+        // Create a new instance of the Timeline service and Timeline shortcode.
806
+        $this->timeline_service = new Wordlift_Timeline_Service( $this->entity_service );
807 807
 
808
-		// Create a new instance of the Redirect service.
809
-		$this->redirect_service = new Wordlift_Redirect_Service( $this->entity_service );
808
+        // Create a new instance of the Redirect service.
809
+        $this->redirect_service = new Wordlift_Redirect_Service( $this->entity_service );
810 810
 
811
-		// Initialize the shortcodes.
812
-		new Wordlift_Navigator_Shortcode();
813
-		new Wordlift_Chord_Shortcode();
814
-		new Wordlift_Geomap_Shortcode();
815
-		new Wordlift_Timeline_Shortcode();
811
+        // Initialize the shortcodes.
812
+        new Wordlift_Navigator_Shortcode();
813
+        new Wordlift_Chord_Shortcode();
814
+        new Wordlift_Geomap_Shortcode();
815
+        new Wordlift_Timeline_Shortcode();
816 816
 
817
-		// Initialize the SEO service.
818
-		new Wordlift_Seo_Service();
817
+        // Initialize the SEO service.
818
+        new Wordlift_Seo_Service();
819 819
 
820
-		$this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
820
+        $this->entity_types_taxonomy_walker = new Wordlift_Entity_Types_Taxonomy_Walker();
821 821
 
822
-		$this->topic_taxonomy_service = new Wordlift_Topic_Taxonomy_Service();
822
+        $this->topic_taxonomy_service = new Wordlift_Topic_Taxonomy_Service();
823 823
 
824
-		// Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
825
-		$this->sharethis_service = new Wordlift_ShareThis_Service();
824
+        // Create an instance of the ShareThis service, later we hook it to the_content and the_excerpt filters.
825
+        $this->sharethis_service = new Wordlift_ShareThis_Service();
826 826
 
827
-		// Create an instance of the PrimaShop adapter.
828
-		$this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
827
+        // Create an instance of the PrimaShop adapter.
828
+        $this->primashop_adapter = new Wordlift_PrimaShop_Adapter();
829 829
 
830
-		// Create an import service instance to hook later to WP's import function.
831
-		$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() );
830
+        // Create an import service instance to hook later to WP's import function.
831
+        $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() );
832 832
 
833
-		$uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
833
+        $uri_service = new Wordlift_Uri_Service( $GLOBALS['wpdb'] );
834 834
 
835
-		// Create a Rebuild Service instance, which we'll later bound to an ajax call.
836
-		$this->rebuild_service = new Wordlift_Rebuild_Service( $this->sparql_service, $uri_service );
835
+        // Create a Rebuild Service instance, which we'll later bound to an ajax call.
836
+        $this->rebuild_service = new Wordlift_Rebuild_Service( $this->sparql_service, $uri_service );
837 837
 
838
-		$this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
838
+        $this->entity_type_service = new Wordlift_Entity_Type_Service( $this->schema_service );
839 839
 
840
-		// Create the entity rating service.
841
-		$this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
840
+        // Create the entity rating service.
841
+        $this->rating_service = new Wordlift_Rating_Service( $this->entity_service, $this->entity_type_service, $this->notice_service );
842 842
 
843
-		// Create entity list customization (wp-admin/edit.php)
844
-		$this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
843
+        // Create entity list customization (wp-admin/edit.php)
844
+        $this->entity_list_service = new Wordlift_Entity_List_Service( $this->rating_service );
845 845
 
846
-		// Create a new instance of the Redirect service.
847
-		$this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service );
846
+        // Create a new instance of the Redirect service.
847
+        $this->dashboard_service = new Wordlift_Dashboard_Service( $this->rating_service );
848 848
 
849
-		$this->property_factory = new Wordlift_Property_Factory( $schema_url_property_service );
850
-		$this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
849
+        $this->property_factory = new Wordlift_Property_Factory( $schema_url_property_service );
850
+        $this->property_factory->register( Wordlift_Schema_Url_Property_Service::META_KEY, $schema_url_property_service );
851 851
 
852
-		$attachment_service = new Wordlift_Attachment_Service();
852
+        $attachment_service = new Wordlift_Attachment_Service();
853 853
 
854
-		// Instantiate the JSON-LD service.
855
-		$property_getter                       = Wordlift_Property_Getter_Factory::create( $this->entity_service );
856
-		$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 );
857
-		$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 );
858
-		$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 );
859
-		$this->jsonld_service                  = new Wordlift_Jsonld_Service( $this->entity_service, $this->postid_to_jsonld_converter );
854
+        // Instantiate the JSON-LD service.
855
+        $property_getter                       = Wordlift_Property_Getter_Factory::create( $this->entity_service );
856
+        $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 );
857
+        $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 );
858
+        $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 );
859
+        $this->jsonld_service                  = new Wordlift_Jsonld_Service( $this->entity_service, $this->postid_to_jsonld_converter );
860 860
 
861
-		// Create an instance of the Key Validation service. This service is later hooked to provide an AJAX call (only for admins).
862
-		$this->key_validation_service = new Wordlift_Key_Validation_Service();
861
+        // Create an instance of the Key Validation service. This service is later hooked to provide an AJAX call (only for admins).
862
+        $this->key_validation_service = new Wordlift_Key_Validation_Service();
863 863
 
864
-		// Create an instance of the Publisher Service and the AJAX Adapter.
865
-		$publisher_service            = new Wordlift_Publisher_Service();
866
-		$this->publisher_ajax_adapter = new Wordlift_Publisher_Ajax_Adapter( $publisher_service );
864
+        // Create an instance of the Publisher Service and the AJAX Adapter.
865
+        $publisher_service            = new Wordlift_Publisher_Service();
866
+        $this->publisher_ajax_adapter = new Wordlift_Publisher_Ajax_Adapter( $publisher_service );
867 867
 
868
-		/** WordPress Admin UI. */
868
+        /** WordPress Admin UI. */
869 869
 
870
-		// UI elements.
871
-		$this->input_element           = new Wordlift_Admin_Input_Element();
872
-		$this->select2_element         = new Wordlift_Admin_Select2_Element();
873
-		$this->language_select_element = new Wordlift_Admin_Language_Select_Element();
874
-		$tabs_element                  = new Wordlift_Admin_Tabs_Element();
875
-		$this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $publisher_service, $tabs_element, $this->select2_element );
870
+        // UI elements.
871
+        $this->input_element           = new Wordlift_Admin_Input_Element();
872
+        $this->select2_element         = new Wordlift_Admin_Select2_Element();
873
+        $this->language_select_element = new Wordlift_Admin_Language_Select_Element();
874
+        $tabs_element                  = new Wordlift_Admin_Tabs_Element();
875
+        $this->publisher_element       = new Wordlift_Admin_Publisher_Element( $this->configuration_service, $publisher_service, $tabs_element, $this->select2_element );
876 876
 
877
-		$this->download_your_data_page   = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
878
-		$this->status_page               = new Wordlift_Admin_Status_Page();
879
-		$this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->publisher_element );
880
-		$this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
877
+        $this->download_your_data_page   = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
878
+        $this->status_page               = new Wordlift_Admin_Status_Page();
879
+        $this->settings_page             = new Wordlift_Admin_Settings_Page( $this->configuration_service, $this->entity_service, $this->input_element, $this->language_select_element, $this->publisher_element );
880
+        $this->settings_page_action_link = new Wordlift_Admin_Settings_Page_Action_Link( $this->settings_page );
881 881
 
882
-		// Pages.
883
-		new Wordlift_Admin_Post_Edit_Page( $this );
882
+        // Pages.
883
+        new Wordlift_Admin_Post_Edit_Page( $this );
884 884
 
885
-		// create an instance of the entity type list admin page controller.
886
-		$this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
885
+        // create an instance of the entity type list admin page controller.
886
+        $this->entity_type_admin_page = new Wordlift_Admin_Entity_Taxonomy_List_Page();
887 887
 
888
-		// create an instance of the entity type etting admin page controller.
889
-		$this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
888
+        // create an instance of the entity type etting admin page controller.
889
+        $this->entity_type_settings_admin_page = new Wordlift_Admin_Entity_Type_Settings();
890 890
 
891
-		/** Widgets */
892
-		$this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
891
+        /** Widgets */
892
+        $this->related_entities_cloud_widget = new Wordlift_Related_Entities_Cloud_Widget();
893 893
 
894
-		//** WordPress Admin */
895
-		$this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
896
-		$this->status_page             = new Wordlift_Admin_Status_Page();
894
+        //** WordPress Admin */
895
+        $this->download_your_data_page = new Wordlift_Admin_Download_Your_Data_Page( $this->configuration_service );
896
+        $this->status_page             = new Wordlift_Admin_Status_Page();
897 897
 
898
-		// Create an instance of the install wizard.
899
-		$this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service );
898
+        // Create an instance of the install wizard.
899
+        $this->admin_setup = new Wordlift_Admin_Setup( $this->configuration_service, $this->key_validation_service, $this->entity_service );
900 900
 
901
-		// Create an instance of the content filter service.
902
-		$this->content_filter_service = new Wordlift_Content_Filter_Service( $this->entity_service );
901
+        // Create an instance of the content filter service.
902
+        $this->content_filter_service = new Wordlift_Content_Filter_Service( $this->entity_service );
903 903
 
904
-		$this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
904
+        $this->category_taxonomy_service = new Wordlift_Category_Taxonomy_Service( $this->entity_post_type_service );
905 905
 
906
-		// Load the debug service if WP is in debug mode.
907
-		if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
908
-			require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
909
-			new Wordlift_Debug_Service( $this->entity_service, $uri_service );
910
-		}
906
+        // Load the debug service if WP is in debug mode.
907
+        if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
908
+            require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordlift-debug-service.php';
909
+            new Wordlift_Debug_Service( $this->entity_service, $uri_service );
910
+        }
911 911
 
912
-	}
912
+    }
913 913
 
914
-	/**
915
-	 * Define the locale for this plugin for internationalization.
916
-	 *
917
-	 * Uses the Wordlift_i18n class in order to set the domain and to register the hook
918
-	 * with WordPress.
919
-	 *
920
-	 * @since    1.0.0
921
-	 * @access   private
922
-	 */
923
-	private function set_locale() {
914
+    /**
915
+     * Define the locale for this plugin for internationalization.
916
+     *
917
+     * Uses the Wordlift_i18n class in order to set the domain and to register the hook
918
+     * with WordPress.
919
+     *
920
+     * @since    1.0.0
921
+     * @access   private
922
+     */
923
+    private function set_locale() {
924 924
 
925
-		$plugin_i18n = new Wordlift_i18n();
926
-		$plugin_i18n->set_domain( $this->get_plugin_name() );
925
+        $plugin_i18n = new Wordlift_i18n();
926
+        $plugin_i18n->set_domain( $this->get_plugin_name() );
927 927
 
928
-		$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
928
+        $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
929 929
 
930
-	}
930
+    }
931 931
 
932
-	/**
933
-	 * Register all of the hooks related to the admin area functionality
934
-	 * of the plugin.
935
-	 *
936
-	 * @since    1.0.0
937
-	 * @access   private
938
-	 */
939
-	private function define_admin_hooks() {
932
+    /**
933
+     * Register all of the hooks related to the admin area functionality
934
+     * of the plugin.
935
+     *
936
+     * @since    1.0.0
937
+     * @access   private
938
+     */
939
+    private function define_admin_hooks() {
940 940
 
941
-		$plugin_admin = new Wordlift_Admin( $this->get_plugin_name(), $this->get_version() );
941
+        $plugin_admin = new Wordlift_Admin( $this->get_plugin_name(), $this->get_version() );
942 942
 
943
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
944
-		$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
943
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
944
+        $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
945 945
 
946
-		// Hook the init action to the Topic Taxonomy service.
947
-		$this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
946
+        // Hook the init action to the Topic Taxonomy service.
947
+        $this->loader->add_action( 'init', $this->topic_taxonomy_service, 'init', 0 );
948 948
 
949
-		// Hook the deleted_post_meta action to the Thumbnail service.
950
-		$this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
949
+        // Hook the deleted_post_meta action to the Thumbnail service.
950
+        $this->loader->add_action( 'deleted_post_meta', $this->thumbnail_service, 'deleted_post_meta', 10, 4 );
951 951
 
952
-		// Hook the added_post_meta action to the Thumbnail service.
953
-		$this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
952
+        // Hook the added_post_meta action to the Thumbnail service.
953
+        $this->loader->add_action( 'added_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
954 954
 
955
-		// Hook the updated_post_meta action to the Thumbnail service.
956
-		$this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
955
+        // Hook the updated_post_meta action to the Thumbnail service.
956
+        $this->loader->add_action( 'updated_post_meta', $this->thumbnail_service, 'added_or_updated_post_meta', 10, 4 );
957 957
 
958
-		// Hook posts inserts (or updates) to the user service.
959
-		$this->loader->add_action( 'wp_insert_post', $this->user_service, 'wp_insert_post', 10, 3 );
958
+        // Hook posts inserts (or updates) to the user service.
959
+        $this->loader->add_action( 'wp_insert_post', $this->user_service, 'wp_insert_post', 10, 3 );
960 960
 
961
-		// Hook the AJAX wl_timeline action to the Timeline service.
962
-		$this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
961
+        // Hook the AJAX wl_timeline action to the Timeline service.
962
+        $this->loader->add_action( 'wp_ajax_wl_timeline', $this->timeline_service, 'ajax_timeline' );
963 963
 
964
-		// Register custom allowed redirect hosts.
965
-		$this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
966
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
967
-		$this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
968
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
969
-		$this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
970
-		// Hook the AJAX wordlift_redirect action to the Redirect service.
971
-		$this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
964
+        // Register custom allowed redirect hosts.
965
+        $this->loader->add_filter( 'allowed_redirect_hosts', $this->redirect_service, 'allowed_redirect_hosts' );
966
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
967
+        $this->loader->add_action( 'wp_ajax_wordlift_redirect', $this->redirect_service, 'ajax_redirect' );
968
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
969
+        $this->loader->add_action( 'wp_ajax_wordlift_get_stats', $this->dashboard_service, 'ajax_get_stats' );
970
+        // Hook the AJAX wordlift_redirect action to the Redirect service.
971
+        $this->loader->add_action( 'wp_dashboard_setup', $this->dashboard_service, 'add_dashboard_widgets' );
972 972
 
973
-		// Hook save_post to the entity service to update custom fields (such as alternate labels).
974
-		// We have a priority of 9 because we want to be executed before data is sent to Redlink.
975
-		$this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
976
-		$this->loader->add_action( 'save_post_entity', $this->rating_service, 'set_rating_for', 10, 1 );
973
+        // Hook save_post to the entity service to update custom fields (such as alternate labels).
974
+        // We have a priority of 9 because we want to be executed before data is sent to Redlink.
975
+        $this->loader->add_action( 'save_post', $this->entity_service, 'save_post', 9, 3 );
976
+        $this->loader->add_action( 'save_post_entity', $this->rating_service, 'set_rating_for', 10, 1 );
977 977
 
978
-		$this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
979
-		$this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
978
+        $this->loader->add_action( 'edit_form_before_permalink', $this->entity_service, 'edit_form_before_permalink', 10, 1 );
979
+        $this->loader->add_action( 'in_admin_header', $this->rating_service, 'in_admin_header' );
980 980
 
981
-		// Entity listing customization (wp-admin/edit.php)
982
-		// Add custom columns
983
-		$this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
984
-		$this->loader->add_filter( 'manage_entity_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
985
-		// Add 4W selection
986
-		$this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
987
-		$this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
981
+        // Entity listing customization (wp-admin/edit.php)
982
+        // Add custom columns
983
+        $this->loader->add_filter( 'manage_entity_posts_columns', $this->entity_list_service, 'register_custom_columns' );
984
+        $this->loader->add_filter( 'manage_entity_posts_custom_column', $this->entity_list_service, 'render_custom_columns', 10, 2 );
985
+        // Add 4W selection
986
+        $this->loader->add_action( 'restrict_manage_posts', $this->entity_list_service, 'restrict_manage_posts_classification_scope' );
987
+        $this->loader->add_filter( 'posts_clauses', $this->entity_list_service, 'posts_clauses_classification_scope' );
988 988
 
989
-		$this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
989
+        $this->loader->add_filter( 'wp_terms_checklist_args', $this->entity_types_taxonomy_walker, 'terms_checklist_args' );
990 990
 
991
-		// Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
992
-		// entities.
993
-		$this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
991
+        // Hook the PrimaShop adapter to <em>prima_metabox_entity_header_args</em> in order to add header support for
992
+        // entities.
993
+        $this->loader->add_filter( 'prima_metabox_entity_header_args', $this->primashop_adapter, 'prima_metabox_entity_header_args', 10, 2 );
994 994
 
995
-		// Filter imported post meta.
996
-		$this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
995
+        // Filter imported post meta.
996
+        $this->loader->add_filter( 'wp_import_post_meta', $this->import_service, 'wp_import_post_meta', 10, 3 );
997 997
 
998
-		// Notify the import service when an import starts and ends.
999
-		$this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1000
-		$this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
998
+        // Notify the import service when an import starts and ends.
999
+        $this->loader->add_action( 'import_start', $this->import_service, 'import_start', 10, 0 );
1000
+        $this->loader->add_action( 'import_end', $this->import_service, 'import_end', 10, 0 );
1001 1001
 
1002
-		// Hook the AJAX wl_rebuild action to the Rebuild Service.
1003
-		$this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1002
+        // Hook the AJAX wl_rebuild action to the Rebuild Service.
1003
+        $this->loader->add_action( 'wp_ajax_wl_rebuild', $this->rebuild_service, 'rebuild' );
1004 1004
 
1005
-		// Hook the menu to the Download Your Data page.
1006
-		$this->loader->add_action( 'admin_menu', $this->download_your_data_page, 'admin_menu', 100, 0 );
1007
-		$this->loader->add_action( 'admin_menu', $this->status_page, 'admin_menu', 100, 0 );
1008
-		$this->loader->add_action( 'admin_menu', $this->entity_type_settings_admin_page, 'admin_menu', 100, 0 );
1009
-
1010
-		// Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1011
-		$this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1012
-
1013
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1014
-		$this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1015
-
1016
-		// Hook the AJAX wl_validate_key action to the Key Validation service.
1017
-		$this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1018
-
1019
-		// Hook the `admin_init` function to the Admin Setup.
1020
-		$this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1021
-
1022
-		// Hook the admin_init to the settings page.
1023
-		$this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1024
-
1025
-		// Hook the menu creation on the general wordlift menu creation
1026
-		$this->loader->add_action( 'wl_admin_menu', $this->settings_page, 'admin_menu', 10, 2 );
1027
-
1028
-		// Hook key update.
1029
-		$this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1030
-
1031
-		// Add additional action links to the WordLift plugin in the plugins page.
1032
-		$this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1033
-
1034
-		// Hook the AJAX `wl_publisher` action name.
1035
-		$this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1036
-
1037
-		// Hook row actions for the entity type list admin.
1038
-		$this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1039
-
1040
-	}
1041
-
1042
-	/**
1043
-	 * Register all of the hooks related to the public-facing functionality
1044
-	 * of the plugin.
1045
-	 *
1046
-	 * @since    1.0.0
1047
-	 * @access   private
1048
-	 */
1049
-	private function define_public_hooks() {
1050
-
1051
-		$plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1052
-
1053
-		// Register the entity post type.
1054
-		$this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1055
-
1056
-		// Bind the link generation and handling hooks to the entity link service.
1057
-		$this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1058
-		$this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', 10, 1 );
1059
-		$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 );
1060
-		$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 );
1061
-
1062
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1063
-		$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1064
-
1065
-		// Hook the content filter service to add entity links.
1066
-		$this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1067
-
1068
-		// Hook the AJAX wl_timeline action to the Timeline service.
1069
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1070
-
1071
-		// Hook the ShareThis service.
1072
-		$this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1073
-		$this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1074
-
1075
-		// Hook the AJAX wl_jsonld action to the JSON-LD service.
1076
-		$this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1077
-
1078
-		// Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1079
-		// in order to tweak WP's `WP_Query` to include entities in queries related
1080
-		// to categories.
1081
-		$this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1082
-
1083
-	}
1084
-
1085
-	/**
1086
-	 * Run the loader to execute all of the hooks with WordPress.
1087
-	 *
1088
-	 * @since    1.0.0
1089
-	 */
1090
-	public function run() {
1091
-		$this->loader->run();
1092
-	}
1093
-
1094
-	/**
1095
-	 * The name of the plugin used to uniquely identify it within the context of
1096
-	 * WordPress and to define internationalization functionality.
1097
-	 *
1098
-	 * @since     1.0.0
1099
-	 * @return    string    The name of the plugin.
1100
-	 */
1101
-	public function get_plugin_name() {
1102
-		return $this->plugin_name;
1103
-	}
1104
-
1105
-	/**
1106
-	 * The reference to the class that orchestrates the hooks with the plugin.
1107
-	 *
1108
-	 * @since     1.0.0
1109
-	 * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
1110
-	 */
1111
-	public function get_loader() {
1112
-		return $this->loader;
1113
-	}
1114
-
1115
-	/**
1116
-	 * Retrieve the version number of the plugin.
1117
-	 *
1118
-	 * @since     1.0.0
1119
-	 * @return    string    The version number of the plugin.
1120
-	 */
1121
-	public function get_version() {
1122
-		return $this->version;
1123
-	}
1005
+        // Hook the menu to the Download Your Data page.
1006
+        $this->loader->add_action( 'admin_menu', $this->download_your_data_page, 'admin_menu', 100, 0 );
1007
+        $this->loader->add_action( 'admin_menu', $this->status_page, 'admin_menu', 100, 0 );
1008
+        $this->loader->add_action( 'admin_menu', $this->entity_type_settings_admin_page, 'admin_menu', 100, 0 );
1009
+
1010
+        // Hook the admin-ajax.php?action=wl_download_your_data&out=xyz links.
1011
+        $this->loader->add_action( 'wp_ajax_wl_download_your_data', $this->download_your_data_page, 'download_your_data', 10 );
1012
+
1013
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1014
+        $this->loader->add_action( 'wp_ajax_wl_jsonld', $this->jsonld_service, 'get' );
1015
+
1016
+        // Hook the AJAX wl_validate_key action to the Key Validation service.
1017
+        $this->loader->add_action( 'wp_ajax_wl_validate_key', $this->key_validation_service, 'validate_key' );
1018
+
1019
+        // Hook the `admin_init` function to the Admin Setup.
1020
+        $this->loader->add_action( 'admin_init', $this->admin_setup, 'admin_init' );
1021
+
1022
+        // Hook the admin_init to the settings page.
1023
+        $this->loader->add_action( 'admin_init', $this->settings_page, 'admin_init' );
1024
+
1025
+        // Hook the menu creation on the general wordlift menu creation
1026
+        $this->loader->add_action( 'wl_admin_menu', $this->settings_page, 'admin_menu', 10, 2 );
1027
+
1028
+        // Hook key update.
1029
+        $this->loader->add_action( 'update_option_wl_general_settings', $this->configuration_service, 'update_key', 10, 2 );
1030
+
1031
+        // Add additional action links to the WordLift plugin in the plugins page.
1032
+        $this->loader->add_filter( 'plugin_action_links_wordlift/wordlift.php', $this->settings_page_action_link, 'action_links', 10, 1 );
1033
+
1034
+        // Hook the AJAX `wl_publisher` action name.
1035
+        $this->loader->add_action( 'wp_ajax_wl_publisher', $this->publisher_ajax_adapter, 'publisher' );
1036
+
1037
+        // Hook row actions for the entity type list admin.
1038
+        $this->loader->add_filter( 'wl_entity_type_row_actions', $this->entity_type_admin_page, 'wl_entity_type_row_actions', 10, 2 );
1039
+
1040
+    }
1041
+
1042
+    /**
1043
+     * Register all of the hooks related to the public-facing functionality
1044
+     * of the plugin.
1045
+     *
1046
+     * @since    1.0.0
1047
+     * @access   private
1048
+     */
1049
+    private function define_public_hooks() {
1050
+
1051
+        $plugin_public = new Wordlift_Public( $this->get_plugin_name(), $this->get_version() );
1052
+
1053
+        // Register the entity post type.
1054
+        $this->loader->add_action( 'init', $this->entity_post_type_service, 'register' );
1055
+
1056
+        // Bind the link generation and handling hooks to the entity link service.
1057
+        $this->loader->add_filter( 'post_type_link', $this->entity_link_service, 'post_type_link', 10, 4 );
1058
+        $this->loader->add_action( 'pre_get_posts', $this->entity_link_service, 'pre_get_posts', 10, 1 );
1059
+        $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 );
1060
+        $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 );
1061
+
1062
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
1063
+        $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
1064
+
1065
+        // Hook the content filter service to add entity links.
1066
+        $this->loader->add_filter( 'the_content', $this->content_filter_service, 'the_content' );
1067
+
1068
+        // Hook the AJAX wl_timeline action to the Timeline service.
1069
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_timeline', $this->timeline_service, 'ajax_timeline' );
1070
+
1071
+        // Hook the ShareThis service.
1072
+        $this->loader->add_filter( 'the_content', $this->sharethis_service, 'the_content', 99 );
1073
+        $this->loader->add_filter( 'the_excerpt', $this->sharethis_service, 'the_excerpt', 99 );
1074
+
1075
+        // Hook the AJAX wl_jsonld action to the JSON-LD service.
1076
+        $this->loader->add_action( 'wp_ajax_nopriv_wl_jsonld', $this->jsonld_service, 'get' );
1077
+
1078
+        // Hook the `pre_get_posts` action to the `Wordlift_Category_Taxonomy_Service`
1079
+        // in order to tweak WP's `WP_Query` to include entities in queries related
1080
+        // to categories.
1081
+        $this->loader->add_action( 'pre_get_posts', $this->category_taxonomy_service, 'pre_get_posts', 10, 1 );
1082
+
1083
+    }
1084
+
1085
+    /**
1086
+     * Run the loader to execute all of the hooks with WordPress.
1087
+     *
1088
+     * @since    1.0.0
1089
+     */
1090
+    public function run() {
1091
+        $this->loader->run();
1092
+    }
1093
+
1094
+    /**
1095
+     * The name of the plugin used to uniquely identify it within the context of
1096
+     * WordPress and to define internationalization functionality.
1097
+     *
1098
+     * @since     1.0.0
1099
+     * @return    string    The name of the plugin.
1100
+     */
1101
+    public function get_plugin_name() {
1102
+        return $this->plugin_name;
1103
+    }
1104
+
1105
+    /**
1106
+     * The reference to the class that orchestrates the hooks with the plugin.
1107
+     *
1108
+     * @since     1.0.0
1109
+     * @return    Wordlift_Loader    Orchestrates the hooks of the plugin.
1110
+     */
1111
+    public function get_loader() {
1112
+        return $this->loader;
1113
+    }
1114
+
1115
+    /**
1116
+     * Retrieve the version number of the plugin.
1117
+     *
1118
+     * @since     1.0.0
1119
+     * @return    string    The version number of the plugin.
1120
+     */
1121
+    public function get_version() {
1122
+        return $this->version;
1123
+    }
1124 1124
 
1125 1125
 }
Please login to merge, or discard this patch.