PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3-a.5
Jetpack – WP Security, Backup, Speed, & Growth v16.3-a.5
16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 All 506 releases
jetpack / jetpack_vendor / automattic / jetpack-sync / src / modules / class-search.php

class-search.php in Jetpack – WP Security, Backup, Speed, & Growth 16.3-a.5, at jetpack_vendor/automattic/jetpack-sync/src/modules/class-search.php

1,923 lines 61.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Configuration lists for Jetpack Search Fields
4 *
5 * Post Meta: list of post meta keys that are available in the index
6 * and how they are configured.
7 *
8 * Custom Taxonomy: list of custom taxonomies that are indexed.
9 *
10 * The reason we need an allowed list is that Elasticsearch runs into scaling problems
11 * with more than 200k-ish total fields. The barrier to adding new fields is low,
12 * just open a PR.
13 *
14 * Although the comments indicate specific plugins, you don't need to be running
15 * that plugin for the indexing to work. The metakey just has to match.
16 *
17 * If you need a new meta key or taxonomy also consider using:
18 * jetpack-search-meta0 - jetpack-search-meta9
19 * jetpack-search-tag0 - jetpack-search-tag9
20 *
21 * @package automattic/jetpack-sync
22 */
23
24 namespace Automattic\Jetpack\Sync\Modules;
25
26 use Automattic\Jetpack\Search\AI_Answers;
27
28 if ( ! defined( 'ABSPATH' ) ) {
29 exit( 0 );
30 }
31
32 /**
33 * Class to handle sync for Jetpack Search.
34 */
35 class Search extends Module {
36
37 /**
38 * Sync module name.
39 *
40 * @access public
41 *
42 * @return string
43 */
44 public function name() {
45 return 'search';
46 }
47
48 /**
49 * Constructor.
50 */
51 public function __construct() {
52 // Post meta whitelists.
53 add_filter( 'jetpack_sync_post_meta_whitelist', array( $this, 'add_search_post_meta_whitelist' ), 10 );
54 // Add options
55 add_filter( 'jetpack_sync_options_whitelist', array( $this, 'add_search_options_whitelist' ), 10 );
56 // AI Answers CPTs and post meta (gated by feature flag).
57 add_filter( 'jetpack_sync_post_types_whitelist', array( $this, 'add_ai_answer_post_types' ), 10 );
58 }
59
60 /**
61 * Post meta search specification.
62 *
63 * We sync and index all meta keys in this list. Additionally there are a few
64 * options.
65 *
66 * 'metakey' => [ 'searchable_in_all_content' => true ],
67 * Field will be included in the all_content fields
68 *
69 * 'metakey' => [ 'available' => false, 'alternatives' => [ 'metakey_processed' ] ],
70 * Field not in meta.* but has data in an alternative field(s) name that
71 * should work similarly. For instance, woocommerce total_sales does not go into
72 * the index, but the percentage of sales does.
73 *
74 * @static
75 * @access private
76 * @var array
77 */
78 private static $postmeta_to_sync = array(
79 // jetpack.
80 '_guideline_block_jetpack_search-ai-summary' => array(), // AI Answers personality (Gutenberg Guidelines CPT).
81 'jetpack-search-meta0' => array( 'searchable_in_all_content' => true ),
82 'jetpack-search-meta1' => array( 'searchable_in_all_content' => true ),
83 'jetpack-search-meta2' => array( 'searchable_in_all_content' => true ),
84 'jetpack-search-meta3' => array( 'searchable_in_all_content' => true ),
85 'jetpack-search-meta4' => array( 'searchable_in_all_content' => true ),
86 'jetpack-search-meta5' => array( 'searchable_in_all_content' => true ),
87 'jetpack-search-meta6' => array( 'searchable_in_all_content' => true ),
88 'jetpack-search-meta7' => array( 'searchable_in_all_content' => true ),
89 'jetpack-search-meta8' => array( 'searchable_in_all_content' => true ),
90 'jetpack-search-meta9' => array( 'searchable_in_all_content' => true ),
91
92 // woocommerce.
93 'exclude_product_categories' => array(),
94 'exclude_product_ids' => array(),
95 'free_shipping' => array(),
96 'id_field' => array(),
97 'individual_use' => array(),
98 'limit_usage_to_x_items' => array(),
99 'maximum_amount' => array(),
100 'minimum_amount' => array(),
101 'post_id' => array(),
102 'product_categories' => array( 'searchable_in_all_content' => true ),
103 'product_ids' => array(),
104 'total_sales' => array(
105 'available' => false,
106 'alternatives' => array(
107 'wc.percent_of_sales',
108 ),
109 ),
110 'usage_limit' => array(),
111 'usage_limit_per_user' => array(),
112 '_crosssell_ids' => array(),
113 '_downloadable' => array(),
114 '_featured' => array(),
115 '_height' => array(),
116 '_length' => array(),
117 '_price' => array(
118 'alternatives' => array(
119 'wc.price',
120 'wc.min_price',
121 'wc.max_price',
122 ),
123 ),
124 '_prices_include_tax' => array(),
125 '_product_attributes' => array(),
126 '_product_version' => array(),
127 '_regular_price' => array(
128 'alternatives' => array(
129 'wc.regular_price',
130 ),
131 ),
132 '_sale_price' => array(
133 'alternatives' => array(
134 'wc.sale_price',
135 ),
136 ),
137 '_sale_price_dates_from' => array(),
138 '_sale_price_dates_to' => array(),
139 '_sku' => array( 'searchable_in_all_content' => true ),
140 '_stock_status' => array(),
141 '_wc_average_rating' => array(
142 'alternatives' => array(
143 'wc.ave_rating_score',
144 ),
145 ),
146 '_wc_rating_count' => array(
147 'alternatives' => array(
148 'wc.rating', // wc.rating.count_1, wc.rating.count_2, ...
149 ),
150 ),
151 '_wc_review_count' => array(),
152 '_weight' => array(),
153 '_width' => array(),
154
155 // co-authors plus.
156 'cap-description' => array( 'searchable_in_all_content' => true ),
157 'cap-user_login' => array( 'searchable_in_all_content' => true ),
158 'cap-user_email' => array(),
159 'cap-last_name' => array( 'searchable_in_all_content' => true ),
160 'cap-first_name' => array( 'searchable_in_all_content' => true ),
161 'cap-display_name' => array( 'searchable_in_all_content' => true ),
162 'cap-website' => array(),
163 'cap-jabber' => array(),
164 'cap-aim' => array(),
165 'cap-twitter' => array(),
166 'cap-facebook' => array(),
167 'cap-google_plus' => array(),
168 'cap-job_title' => array( 'searchable_in_all_content' => true ),
169
170 // bbpress.
171 'bbpl_like' => array(),
172 'bbpress_discussion_comments_copied' => array(),
173 'bbpress_discussion_tags_copied' => array(),
174 'bbpress_discussion_topic_id' => array(),
175 'bbpress_discussion_use_defaults' => array(),
176 'bbpress_page_header_bg' => array(),
177 'bbpress_title_bg' => array(),
178 'use_bbpress_discussion_topic' => array(),
179
180 // wpml.
181 'tm_meta_wpml' => array(),
182 'wpml_language' => array(),
183 'wpml_media_lang' => array(),
184 'wpml_media_processed' => array(),
185
186 // blogger import.
187 'blogger_author' => array( 'searchable_in_all_content' => true ),
188 'blogger_blog' => array( 'searchable_in_all_content' => true ),
189 'blogger_permalink' => array( 'searchable_in_all_content' => true ),
190
191 // geo.
192 'geo_address' => array( 'searchable_in_all_content' => true ),
193 'geo_latitude' => array(),
194 'geo_longitude' => array(),
195 'geo_public' => array(),
196 'geolocated' => array(),
197 'geolocation_city' => array( 'searchable_in_all_content' => true ),
198 'geolocation_country_long' => array( 'searchable_in_all_content' => true ),
199 'geolocation_country_short' => array( 'searchable_in_all_content' => true ),
200 'geolocation_formatted_address' => array( 'searchable_in_all_content' => true ),
201 'geolocation_lat' => array(),
202 'geolocation_long' => array(),
203 'geolocation_postcode' => array( 'searchable_in_all_content' => true ),
204 'geolocation_state_long' => array( 'searchable_in_all_content' => true ),
205 'geolocation_state_short' => array( 'searchable_in_all_content' => true ),
206
207 // wp-ultimate-recipe.
208 'recipe_alternate_image' => array(),
209 'recipe_cook_time' => array(),
210 'recipe_cook_time_text' => array(),
211 'recipe_description' => array( 'searchable_in_all_content' => true ),
212 'recipe_ingredients' => array( 'searchable_in_all_content' => true ),
213 'recipe_instructions' => array( 'searchable_in_all_content' => true ),
214 'recipe_notes' => array( 'searchable_in_all_content' => true ),
215 'recipe_nutritional' => array( 'searchable_in_all_content' => true ),
216 'recipe_passive_time' => array(),
217 'recipe_passive_time_text' => array(),
218 'recipe_prep_time' => array(),
219 'recipe_prep_time_text' => array(),
220 'recipe_rating' => array(),
221 'recipe_servings' => array(),
222 'recipe_servings_normalized' => array(),
223 'recipe_servings_type' => array(),
224 'recipe_terms' => array( 'searchable_in_all_content' => true ),
225 'recipe_terms_with_parents' => array(),
226 'recipe_title' => array( 'searchable_in_all_content' => true ),
227 'recipe_user_ratings' => array(),
228 'recipe_user_ratings_rating' => array(),
229
230 // generic fields.
231 // from advanced-custom-fields and metabox.io .
232 'Link' => array(),
233 'Location' => array(),
234 'Title' => array( 'searchable_in_all_content' => true ),
235 'ad_code' => array(),
236 'address' => array(),
237 'admin_mail' => array(),
238 'admin_only' => array(),
239 'advertisers' => array( 'searchable_in_all_content' => true ),
240 'age' => array(),
241 'aliases' => array(),
242 'alternate_title' => array(),
243 'ama_content' => array(),
244 'amazon' => array(),
245 'answer' => array( 'searchable_in_all_content' => true ),
246 'area' => array(),
247 'attention' => array(),
248 'attr' => array(),
249 'author' => array( 'searchable_in_all_content' => true ),
250 'author_name' => array( 'searchable_in_all_content' => true ),
251 'blog' => array(),
252 'blog_id' => array(),
253 'call_to_action' => array(),
254 'campaign_preview' => array(),
255 'canonical_url' => array(),
256 'catch_text' => array(),
257 'category' => array( 'searchable_in_all_content' => true ),
258 'classificacao' => array(),
259 'classification' => array(),
260 'code' => array(),
261 'codigo' => array(),
262 'company' => array( 'searchable_in_all_content' => true ),
263 'company_website' => array(),
264 'config' => array(),
265 'construction' => array(),
266 'container_ids' => array(),
267 'content' => array( 'searchable_in_all_content' => true ),
268 'content_body-full_content' => array( 'searchable_in_all_content' => true ),
269 'copyright' => array(),
270 'custom_page_title' => array( 'searchable_in_all_content' => true ),
271 'custom_permalink' => array(),
272 'customize' => array(),
273 'data' => array(),
274 'date' => array(),
275 'day' => array(),
276 'descripcion' => array( 'searchable_in_all_content' => true ),
277 'description' => array( 'searchable_in_all_content' => true ),
278 'display_settings' => array(),
279 'display_type' => array(),
280 'duration' => array(),
281 'embed' => array(),
282 'entity_ids' => array(),
283 'entity_types' => array(),
284 'event_subtitle' => array( 'searchable_in_all_content' => true ),
285 'excluded_container_ids' => array(),
286 'exclusions' => array(),
287 'experience' => array(),
288 'external_url' => array(),
289 'featured' => array(),
290 'featured_image' => array(),
291 'featured_post' => array(),
292 'featured_story' => array(),
293 'fee' => array(),
294 'filter' => array(),
295 'follow' => array(),
296 'footer_text' => array(),
297 'from_header' => array(),
298 'fullscreen_view' => array(),
299 'gallery' => array(),
300 'genre' => array( 'searchable_in_all_content' => true ),
301 'guest_bio' => array(),
302 'guest_name' => array(),
303 'guests' => array( 'searchable_in_all_content' => true ),
304 'has_variations' => array(),
305 'hashtag' => array(),
306 'header_image' => array(),
307 'hidden_from_ui' => array(),
308 'hide_on_screen' => array(),
309 'homepage_order' => array(),
310 'hours' => array(),
311 'i18n' => array(),
312 'id' => array(),
313 'image' => array(),
314 'image_size' => array(),
315 'image_source' => array(),
316 'index' => array(),
317 'intro_text' => array( 'searchable_in_all_content' => true ),
318 'job_mention' => array( 'searchable_in_all_content' => true ),
319 'keywords' => array( 'searchable_in_all_content' => true ),
320 'latest_news' => array(),
321 'layout' => array(),
322 'link' => array(),
323 'link_dump' => array( 'searchable_in_all_content' => true ),
324 'link_url' => array(),
325 'location' => array(),
326 'logo' => array(),
327 'main_title' => array( 'searchable_in_all_content' => true ),
328 'maximum_entity_count' => array(),
329 'media' => array(),
330 'mentions' => array(),
331 'messages' => array(),
332 'meta_description' => array( 'searchable_in_all_content' => true ),
333 'meta_id' => array(),
334 'meta_index' => array(),
335 'meta_key' => array(),
336 'meta_value' => array(),
337 'modal-dialog-id' => array(),
338 'name' => array( 'searchable_in_all_content' => true ),
339 'nombre' => array( 'searchable_in_all_content' => true ),
340 'notes' => array( 'searchable_in_all_content' => true ),
341 'options' => array(),
342 'order_by' => array(),
343 'order_direction' => array(),
344 'original_cats' => array(),
345 'original_headers' => array(),
346 'original_link' => array(),
347 'original_message' => array(),
348 'original_subject' => array(),
349 'original_title' => array(),
350 'original_to' => array(),
351 'other_setting' => array(),
352 'page_canonical' => array(),
353 'page_layout' => array(),
354 'page_sidebar' => array(),
355 'page_tags' => array(),
356 'panels_data' => array(),
357 'parking' => array(),
358 'pdf_upload' => array(),
359 'people_mentioned' => array(),
360 'photo' => array(),
361 'play_time' => array(),
362 'position' => array(),
363 'post-rating' => array(),
364 'post_background' => array(),
365 'post_color' => array(),
366 'post_sidebar' => array(),
367 'post_subtitle' => array( 'searchable_in_all_content' => true ),
368 'price' => array(),
369 'publication' => array(),
370 'rating' => array(),
371 'ratings_average' => array(),
372 'ratings_score' => array(),
373 'ratings_users' => array(),
374 'relation' => array(),
375 'reply_to_header' => array(),
376 'required' => array(),
377 'returns' => array(),
378 'review_post' => array(),
379 'rule' => array(),
380 'section' => array( 'searchable_in_all_content' => true ),
381 'selected_links' => array(),
382 'session_transcript' => array(),
383 'settings' => array(),
384 'sex' => array(),
385 'shares_count' => array(),
386 'show_description' => array( 'searchable_in_all_content' => true ),
387 'show_page_title' => array(),
388 'show_notes' => array(),
389 'show_notes_preview' => array(),
390 'side' => array(),
391 'sidebar' => array(),
392 'site' => array(),
393 'situation' => array(),
394 'slide_template' => array(),
395 'slug' => array(),
396 'sortorder' => array(),
397 'source' => array(),
398 'start_date' => array(),
399 'status' => array(),
400 'styles' => array(),
401 'subtitle' => array( 'searchable_in_all_content' => true ),
402 'subtitulo' => array(),
403 'success' => array(),
404 'summary' => array( 'searchable_in_all_content' => true ),
405 'synopsis' => array( 'searchable_in_all_content' => true ),
406 'tel' => array(),
407 'tema' => array(),
408 'testimonial' => array(),
409 'testimonial_author' => array(),
410 'text_already_subscribed' => array(),
411 'text_error' => array(),
412 'text_invalid_email' => array(),
413 'text_not_subscribed' => array(),
414 'text_required_field_missing' => array(),
415 'text_subscribed' => array(),
416 'text_unsubscribed' => array(),
417 'thumbnail' => array(),
418 'time' => array(),
419 'time_jump_list' => array( 'searchable_in_all_content' => true ),
420 'title' => array( 'searchable_in_all_content' => true ),
421 'title_view' => array(),
422 'titre' => array( 'searchable_in_all_content' => true ),
423 'titulo' => array( 'searchable_in_all_content' => true ),
424 'to_header' => array(),
425 'toc' => array(),
426 'transcript' => array( 'searchable_in_all_content' => true ),
427 'transport_uri' => array(),
428 'type' => array(),
429 'url' => array(),
430 'validation' => array(),
431 'value' => array(),
432 'values' => array(),
433 'variation' => array(),
434 'video' => array(),
435 'video_type' => array(),
436 'video_url' => array(),
437 'videopress_guid' => array(),
438 'website' => array(),
439 'weight' => array(),
440 'year' => array(),
441
442 // wp.com martketplace search - @see https://wp.me/pdh6GB-Ax#comment-2104
443 '_app_icon' => array(),
444 '_featured_product_video' => array(),
445 'wpcom_marketplace_org_slug' => array(),
446 '_wc_general_product_dependency_theme' => array(),
447 '_wc_general_product_dependency_plugin' => array(),
448 'wpcom_marketplace_product_extra_fields' => array(),
449 'wccom_product_search_keywords' => array( 'searchable_in_all_content' => true ),
450 '_wccom_product_faqs' => array( 'searchable_in_all_content' => true ),
451 'wccom_product_features' => array( 'searchable_in_all_content' => true ),
452 'wccom_product_compatibility' => array( 'searchable_in_all_content' => true ),
453
454 ); // end indexed post meta.
455
456 /**
457 * Postmeta being considered for indexing
458 * but currently not in the index
459 * this list is really only for documentation.
460 *
461 * @static
462 * @access private
463 * @var array
464 */
465 private static $unindexed_postmeta = array(
466
467 // Core.
468 '_wp_attached_file' => array(),
469 '_wp_attachment_context' => array(),
470 '_wp_attachment_image_alt' => array(),
471 '_wp_attachment_is_custom_header' => array(),
472 '_wp_attachment_metadata' => array(),
473 '_wp_desired_post_slug' => array(),
474 '_wp_old_date' => array(),
475 '_wp_old_slug' => array(),
476 '_wp_page_template' => array(),
477
478 // WooCommerce products.
479 // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-product-data-store-cpt.php#L21 .
480 '_backorders' => array(),
481 '_default_attributes' => array(),
482 '_download_expiry' => array(),
483 '_download_limit' => array(),
484 '_download_permissions_granted' => array(),
485 '_downloadable_files' => array(),
486 '_file_paths' => array(),
487 '_manage_stock' => array(),
488 '_product_image_gallery' => array(),
489 '_purchase_note' => array(),
490 '_recorded_sales' => array(),
491 '_sold_individually' => array(),
492 '_stock' => array(),
493 '_tax_class' => array(),
494 '_tax_status' => array(),
495 '_thumbnail_id' => array(),
496 '_upsell_ids' => array(),
497 '_variation_description' => array(),
498 '_virtual' => array(),
499 '_visibility' => array(),
500 'coupon_amount' => array(),
501 'default_source' => array(),
502 'discount_type' => array(),
503 'exclude_sale_items' => array(),
504 'expiry_date' => array(),
505
506 // Woocommerce orders and refunds.
507 // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-order-data-store-cpt.php#L27 .
508 // See https://github.com/woocommerce/woocommerce/blob/b8a2815ae546c836467008739e7ff5150cb08e93/includes/data-stores/class-wc-order-refund-data-store-cpt.php#L20 .
509 '_billing_address_1' => array(),
510 '_billing_address_2' => array(),
511 '_billing_address_index' => array(),
512 '_billing_city' => array(),
513 '_billing_company' => array(),
514 '_billing_country' => array(),
515 '_billing_email' => array(),
516 '_billing_first_name' => array(),
517 '_billing_last_name' => array(),
518 '_billing_phone' => array(),
519 '_billing_postcode' => array(),
520 '_billing_state' => array(),
521 '_cart_discount' => array(),
522 '_cart_discount_tax' => array(),
523 '_completed_date' => array(),
524 '_created_via' => array(),
525 '_customer_ip_address' => array(),
526 '_customer_user_agent' => array(),
527 '_date_completed' => array(),
528 '_date_paid' => array(),
529 '_order_currency' => array(),
530 '_order_key' => array(),
531 '_order_shipping' => array(),
532 '_order_shipping_tax' => array(),
533 '_order_stock_reduced' => array(),
534 '_order_tax' => array(),
535 '_order_total' => array(),
536 '_order_version' => array(),
537 '_paid_date' => array(),
538 '_payment_method' => array(),
539 '_payment_method_title' => array(),
540 '_payment_tokens' => array(),
541 '_recorded_coupon_usage_counts' => array(),
542 '_refund_amount' => array(),
543 '_refund_reason' => array(),
544 '_refunded_by' => array(),
545 '_shipping_address_1' => array(),
546 '_shipping_address_2' => array(),
547 '_shipping_address_index' => array(),
548 '_shipping_city' => array(),
549 '_shipping_company' => array(),
550 '_shipping_country' => array(),
551 '_shipping_first_name' => array(),
552 '_shipping_last_name' => array(),
553 '_shipping_postcode' => array(),
554 '_shipping_state' => array(),
555 '_transaction_id' => array(),
556
557 // aioseop.
558 '_aioseop_description' => array(),
559 '_aioseop_keywords' => array(),
560 '_aioseop_title' => array(),
561
562 // yoast.
563 '_yoast_wpseo_authorship' => array(),
564 '_yoast_wpseo_bctitle' => array(),
565 '_yoast_wpseo_canonical' => array(),
566 '_yoast_wpseo_content_score' => array(),
567 '_yoast_wpseo_focuskw' => array(),
568 '_yoast_wpseo_focuskw_text_input' => array(),
569 '_yoast_wpseo_google-plus-description' => array(),
570 '_yoast_wpseo_google-plus-image' => array(),
571 '_yoast_wpseo_linkdex' => array(),
572 '_yoast_wpseo_meta-robots-adv' => array(),
573 '_yoast_wpseo_meta-robots-nofollow' => array(),
574 '_yoast_wpseo_meta-robots-noindex' => array(),
575 '_yoast_wpseo_metadesc' => array(),
576 '_yoast_wpseo_metakeywords' => array(),
577 '_yoast_wpseo_opengraph-description' => array(),
578 '_yoast_wpseo_opengraph-image' => array(),
579 '_yoast_wpseo_opengraph-title' => array(),
580 '_yoast_wpseo_primary_byline' => array(),
581 '_yoast_wpseo_primary_category' => array(),
582 '_yoast_wpseo_primary_product_cat' => array(),
583 '_yoast_wpseo_primary_sponsor-type' => array(),
584 '_yoast_wpseo_primary_tema_category' => array(),
585 '_yoast_wpseo_primary_wpdmcategory' => array(),
586 '_yoast_wpseo_primary_wt_portfolio_category' => array(),
587 '_yoast_wpseo_redirect' => array(),
588 '_yoast_wpseo_sitemap-include' => array(),
589 '_yoast_wpseo_sitemap-prio' => array(),
590 '_yoast_wpseo_title' => array(),
591 '_yoast_wpseo_twitter-description' => array(),
592 '_yoast_wpseo_twitter-image' => array(),
593
594 // bbpress.
595 'bbppu_read_by' => array(),
596 '_bbp_activity_id' => array(),
597 '_bbp_attachment' => array(),
598 '_bbp_attachment_upload_error' => array(),
599 '_bbp_forum_id' => array(),
600 '_bbp_forum_parent_id' => array(),
601 '_bbp_forum_subforum_count' => array(),
602 '_bbp_forum_type' => array(),
603 '_bbp_group_ids' => array(),
604 '_bbp_last_active_id' => array(),
605 '_bbp_last_active_time' => array(),
606 '_bbp_last_reply_id' => array(),
607 '_bbp_last_topic_id' => array(),
608 '_bbp_old_forum_id' => array(),
609 '_bbp_old_sticky_status' => array(),
610 '_bbp_old_topic_id' => array(),
611 '_bbp_post_id' => array(),
612 '_bbp_reply_count' => array(),
613 '_bbp_reply_is_private' => array(),
614 '_bbp_reply_to' => array(),
615 '_bbp_revision_log' => array(),
616 '_bbp_status' => array(),
617 '_bbp_sticky_topics' => array(),
618 '_bbp_topic_count' => array(),
619 '_bbp_topic_id' => array(),
620 '_bbp_total_reply_count' => array(),
621 '_bbp_total_topic_count' => array(),
622 '_bbp_voice_count' => array(),
623
624 // ???
625 '_locale' => array(),
626
627 // wp-job-manager.
628 '_job_title' => array(),
629 '_job_description' => array(),
630
631 // wpml.
632 '_wpml_media_duplicate' => array(),
633 '_wpml_media_featured' => array(),
634
635 // generic fields.
636 'ad_clicks_count' => array(),
637 'email' => array(),
638 'usage_count' => array(),
639 'user_mail' => array(),
640 'views' => array(),
641 '_EventAllDay' => array(),
642 '_EventCost' => array(),
643 '_EventCurrencyPosition' => array(),
644 '_EventCurrencySymbol' => array(),
645 '_EventDuration' => array(),
646 '_EventEndDate' => array(),
647 '_EventEndDateUTC' => array(),
648 '_EventOrganizerID' => array(),
649 '_EventOrigin' => array(),
650 '_EventShowMap' => array(),
651 '_EventShowMapLink' => array(),
652 '_EventStartDate' => array(),
653 '_EventStartDateUTC' => array(),
654 '_EventTimezone' => array(),
655 '_EventTimezoneAbbr' => array(),
656 '_EventURL' => array(),
657 '_EventVenueID' => array(),
658 '_OrganizerEmail' => array(),
659 '_OrganizerOrganizer' => array(),
660 '_OrganizerOrigin' => array(),
661 '_OrganizerPhone' => array(),
662 '_OrganizerWebsite' => array(),
663 '_VenueAddress' => array(),
664 '_VenueCity' => array(),
665 '_VenueCountry' => array(),
666 '_VenueOrigin' => array(),
667 '_VenuePhone' => array(),
668 '_VenueProvince' => array(),
669 '_VenueShowMap' => array(),
670 '_VenueShowMapLink' => array(),
671 '_VenueState' => array(),
672 '_VenueStateProvince' => array(),
673 '_VenueURL' => array(),
674 '_VenueVenue' => array(),
675 '_VenueVenueID' => array(),
676 '_VenueZip' => array(),
677 '_description' => array(),
678 '_edit_last' => array(),
679 '_feedback_all_fields' => array(),
680 '_feedback_author' => array(),
681 '_feedback_author_email' => array(),
682 '_feedback_author_url' => array(),
683 '_feedback_contact_form_url' => array(),
684 '_feedback_ip' => array(),
685 '_feedback_subject' => array(),
686 '_layout' => array(),
687 '_links_to' => array(),
688 '_links_to_target' => array(),
689 '_mail' => array(),
690 '_mail_2' => array(),
691 '_messages' => array(),
692 '_numero' => array(),
693 '_post_restored_from' => array(),
694 '_video_url' => array(),
695 '_website' => array(),
696
697 ); // end unindexed post meta.
698
699 /**
700 * List of indexed taxonomy slugs - VARCHAR(32)
701 *
702 * @access private
703 * @static
704 *
705 * @var array
706 */
707 private static $taxonomies_to_sync = array(
708
709 // Core.
710 'link_category',
711 'nav_menu',
712 'post_format', // Special, limited to certain values.
713
714 // bbpress.
715 'topic',
716 'topic-tag',
717 'topics',
718
719 // buddypress.
720 'bp-email-type',
721 'bp-email-type',
722 'bp_docs_access',
723 'bp_docs_associated_item',
724 'bp_docs_comment_access',
725 'bp_docs_doc_in_folder',
726 'bp_docs_folder_in_group',
727 'bp_docs_tag',
728 'bp_member_type',
729
730 // co-authors plus.
731 'author',
732
733 // events calendar plus.
734 // the events calendar.
735 'event-categories',
736 'event-category',
737 'event-tag',
738 'event-tags',
739 'event-type',
740 'event-venue',
741 'event_category',
742 'event_location',
743 'event_organizer',
744 'event_tag',
745 'event_type',
746 'event_type_2',
747 'event_users',
748 'events_categories',
749 'events_category',
750 'events_feeds',
751 'events_tags',
752 'tribe_events_cat',
753
754 // jetpack.
755 'jetpack-portfolio-tag',
756 'jetpack-portfolio-type',
757 'jetpack-search-tag0',
758 'jetpack-search-tag1',
759 'jetpack-search-tag2',
760 'jetpack-search-tag3',
761 'jetpack-search-tag4',
762 'jetpack-search-tag5',
763 'jetpack-search-tag6',
764 'jetpack-search-tag7',
765 'jetpack-search-tag8',
766 'jetpack-search-tag9',
767
768 // nextgen gallery.
769 'ngg_tag',
770
771 // polylang.
772 // wpml.
773 'language',
774 'post_translations',
775 'term_language',
776 'term_translations',
777 'translation_priority',
778
779 // woocommerce.
780 'documentation_category',
781 'pa_accessory-type',
782 'pa_actor',
783 'pa_age',
784 'pa_ambulance',
785 'pa_amount',
786 'pa_arm-roll',
787 'pa_aspectratio',
788 'pa_audiencerating',
789 'pa_author',
790 'pa_axle',
791 'pa_battery',
792 'pa_belakang',
793 'pa_binding',
794 'pa_body-type',
795 'pa_bore-x-stroke-mm',
796 'pa_box-cargo',
797 'pa_brakes',
798 'pa_brand',
799 'pa_brands',
800 'pa_bus',
801 'pa_c',
802 'pa_cabin-to-end',
803 'pa_capacity',
804 'pa_catalognumberlist',
805 'pa_ce-keurmerk',
806 'pa_chassis-front',
807 'pa_chassis-rear',
808 'pa_chassis-weight-kg',
809 'pa_chip-log',
810 'pa_clothing-size',
811 'pa_clutch',
812 'pa_clutch-type',
813 'pa_collection',
814 'pa_color',
815 'pa_colors',
816 'pa_colour',
817 'pa_compactor',
818 'pa_condition',
819 'pa_conditions-options',
820 'pa_cor',
821 'pa_couleur',
822 'pa_country',
823 'pa_countryregion-of-manufacture',
824 'pa_crane',
825 'pa_creator',
826 'pa_culoare',
827 'pa_customerpackagetype',
828 'pa_depan',
829 'pa_depan-belakang',
830 'pa_department',
831 'pa_design',
832 'pa_diameter',
833 'pa_diameter-cakram',
834 'pa_dimension-mm',
835 'pa_dimensions',
836 'pa_director',
837 'pa_disc-diameter',
838 'pa_drive-system',
839 'pa_dump',
840 'pa_ean',
841 'pa_eanlist',
842 'pa_edition',
843 'pa_electric-battery',
844 'pa_engine-model',
845 'pa_engine-size',
846 'pa_ethnicity',
847 'pa_exhaust-brake',
848 'pa_fabric',
849 'pa_farbe',
850 'pa_farg',
851 'pa_farge',
852 'pa_features',
853 'pa_final-gear-ratio',
854 'pa_finish',
855 'pa_fire-fighting',
856 'pa_fits',
857 'pa_flat-bed',
858 'pa_flavour',
859 'pa_format',
860 'pa_fragrance',
861 'pa_frame',
862 'pa_front',
863 'pa_front-overhang',
864 'pa_front-rear',
865 'pa_front-tread',
866 'pa_fuel-tank',
867 'pa_fuel-type',
868 'pa_garantie',
869 'pa_geadviseerd-accu-type',
870 'pa_gear-ratio',
871 'pa_gender',
872 'pa_genre',
873 'pa_gewicht-exclusief-accu',
874 'pa_gift-card-amount',
875 'pa_grade-ability-tan-o',
876 'pa_groesse',
877 'pa_gtin',
878 'pa_gvwr-gcwr',
879 'pa_hardwareplatform',
880 'pa_hazardousmaterialtype',
881 'pa_height',
882 'pa_hekmotor-of-boegmotor',
883 'pa_helmet-size',
884 'pa_hersteller',
885 'pa_high-blow-tank',
886 'pa_hoehe',
887 'pa_inhoud',
888 'pa_interchange-part-number',
889 'pa_isadultproduct',
890 'pa_isbn',
891 'pa_iseligiblefortradein',
892 'pa_itemdimensions',
893 'pa_itempartnumber',
894 'pa_kemudi-tipe',
895 'pa_kleur',
896 'pa_kopling-tipe',
897 'pa_label',
898 'pa_languages',
899 'pa_lbs',
900 'pa_legaldisclaimer',
901 'pa_lengte-aansluitkabel',
902 'pa_length',
903 'pa_liquid-tank',
904 'pa_location',
905 'pa_losse-motor-complete-set',
906 'pa_maat',
907 'pa_main-brake',
908 'pa_make',
909 'pa_manufacturer',
910 'pa_manufacturer-part-number',
911 'pa_manufacturermaximumage',
912 'pa_manufacturerminimumage',
913 'pa_manufacturerpartswarrantydesc',
914 'pa_masseinheit',
915 'pa_material',
916 'pa_mau-sac',
917 'pa_maximum-power-ps-rpm',
918 'pa_maximum-speed',
919 'pa_maximum-torque-kgm-rpm',
920 'pa_mediatype',
921 'pa_megethos',
922 'pa_merk',
923 'pa_metal-type',
924 'pa_min-turning-circle',
925 'pa_mixer',
926 'pa_model',
927 'pa_model-tipe',
928 'pa_model-type',
929 'pa_modelo',
930 'pa_mount',
931 'pa_mpn',
932 'pa_nicotine-strength',
933 'pa_nos-of-cylinder',
934 'pa_nos-of-tire',
935 'pa_numberofdiscs',
936 'pa_numberofitems',
937 'pa_numberofpages',
938 'pa_offset',
939 'pa_open-cargo',
940 'pa_operatingsystem',
941 'pa_options',
942 'pa_other-part-number',
943 'pa_overall-height',
944 'pa_overall-length',
945 'pa_overall-width',
946 'pa_overview',
947 'pa_packagedimensions',
948 'pa_packagequantity',
949 'pa_pages',
950 'pa_parking-brake',
951 'pa_part-number',
952 'pa_partnumber',
953 'pa_pattern',
954 'pa_pattern2',
955 'pa_performa',
956 'pa_pictureformat',
957 'pa_pin-size',
958 'pa_piston-displacement-cc',
959 'pa_ploshhad',
960 'pa_plug-type',
961 'pa_power',
962 'pa_product',
963 'pa_productgroup',
964 'pa_producttypename',
965 'pa_publicationdate',
966 'pa_publisher',
967 'pa_quantity',
968 'pa_rear',
969 'pa_rear-overhang',
970 'pa_rear-tread',
971 'pa_refrigerated-box',
972 'pa_region',
973 'pa_regioncode',
974 'pa_releasedate',
975 'pa_rem-parkir',
976 'pa_rem-pelambat',
977 'pa_rem-utama',
978 'pa_reverse',
979 'pa_runningtime',
980 'pa_scent',
981 'pa_schachtlengte',
982 'pa_seeds',
983 'pa_series',
984 'pa_setting',
985 'pa_sex',
986 'pa_shape',
987 'pa_shirt-size',
988 'pa_size',
989 'pa_sizes',
990 'pa_sku',
991 'pa_sky-lift',
992 'pa_sleeve-length',
993 'pa_snelheidsregeling',
994 'pa_staart',
995 'pa_steering',
996 'pa_steering-type',
997 'pa_storlek',
998 'pa_studio',
999 'pa_stuwkracht-lbs',
1000 'pa_style',
1001 'pa_suspensions',
1002 'pa_taille',
1003 'pa_talla',
1004 'pa_tamanho',
1005 'pa_tamano',
1006 'pa_taxi',
1007 'pa_ticket-type',
1008 'pa_tire-size',
1009 'pa_total-chassis-weight',
1010 'pa_towing-truck',
1011 'pa_tradeinvalue',
1012 'pa_trailer-t-head',
1013 'pa_transmisi-tipe',
1014 'pa_transmission',
1015 'pa_transmission-type',
1016 'pa_types',
1017 'pa_ukuran',
1018 'pa_upc',
1019 'pa_upclist',
1020 'pa_variation',
1021 'pa_vehicle-carrier',
1022 'pa_vergelijkbaar-stuwkracht',
1023 'pa_vermogen',
1024 'pa_voltage',
1025 'pa_volume',
1026 'pa_warranty',
1027 'pa_weight',
1028 'pa_wheel-base',
1029 'pa_wheel-configuration',
1030 'pa_wheel-disc-size',
1031 'pa_width',
1032 'pa_zout-water-geschikt',
1033 'product',
1034 'product-brand',
1035 'product_brand',
1036 'product-category',
1037 'product_cat',
1038 'product_delivery_time',
1039 'product_delivery_times',
1040 'product_price_label',
1041 'product_sale_labels',
1042 'product_shipping_class',
1043 'product_tag',
1044 'product_type',
1045 'product_unit',
1046 'product_visibility',
1047 'products',
1048
1049 // wp-job-manager.
1050 'job-category',
1051 'job-location',
1052 'job-type',
1053 'job_cat',
1054 'job_category',
1055 'job_listing_category',
1056 'job_listing_label',
1057 'job_listing_region',
1058 'job_listing_tag',
1059 'job_listing_type',
1060 'job_salary',
1061 'job_tag',
1062 'job_type',
1063 'jobman_category',
1064 'jobpost_category',
1065 'jobpost_job_type',
1066 'jobpost_location',
1067 'resume_category',
1068 'resume_groups',
1069 'resume_job_type',
1070 'resume_job_type',
1071 'resume_languages',
1072 'resume_region',
1073 'resume_skill',
1074 'resume_specialities',
1075
1076 // generic.
1077 '_resource',
1078 'acadp_categories',
1079 'acadp_locations',
1080 'action-group',
1081 'activity',
1082 'actor',
1083 'actors',
1084 'ad-group',
1085 'adace-ad-group',
1086 'adace-sponsor',
1087 'additional_features',
1088 'adv_location',
1089 'advanced_ads_groups',
1090 'advert_category',
1091 'affcoups_coupon_category',
1092 'affcoups_coupon_type',
1093 'ai_log_context',
1094 'ai_log_level',
1095 'al_product-cat',
1096 'aol_ad_category',
1097 'aol_ad_location',
1098 'aol_ad_type',
1099 'aol_application_status',
1100 'area',
1101 'article-slug',
1102 'asgarosforum-category',
1103 'asgarosforum-usergroup',
1104 'attachment_category',
1105 'attachment_tag',
1106 'atum_location',
1107 'audience_type',
1108 'avhec_catgroup',
1109 'bartype',
1110 'baths',
1111 'beds',
1112 'bepro_listing_types',
1113 'blog_category',
1114 'booked_custom_calendars',
1115 'brand',
1116 'brands',
1117 'business',
1118 'business_cat',
1119 'business_category',
1120 'bwg_tag',
1121 'byline',
1122 'calendar_category',
1123 'calendar_feed',
1124 'calendar_type',
1125 'campaign_category',
1126 'campaign_tag',
1127 'carousel_cat',
1128 'carousels_category',
1129 'case27_job_listing_tags',
1130 'categories',
1131 'category_media',
1132 'category_portfolio',
1133 'celebrity_cat',
1134 'chapters',
1135 'chronosly_category',
1136 'city',
1137 'classified_listing_type',
1138 'client-types',
1139 'clients_groups',
1140 'cm-business-category',
1141 'cmdm_category',
1142 'cn_log_type',
1143 'coderevolution_post_source',
1144 'collection',
1145 'community',
1146 'companies',
1147 'company',
1148 'cont_category',
1149 'content_audit',
1150 'country',
1151 'course',
1152 'course-cat',
1153 'course-category',
1154 'course_cat',
1155 'course_category',
1156 'course_difficulty',
1157 'course_tag',
1158 'courses_type',
1159 'cp_campaign',
1160 'cp_recipe_category',
1161 'csco_post_featured',
1162 'ct_status',
1163 'ctl-stories',
1164 'cuisine',
1165 'dc_vendor_shop',
1166 'ddownload_category',
1167 'ddownload_tag',
1168 'dealstore',
1169 'department',
1170 'departments',
1171 'department-company',
1172 'developed-by',
1173 'dfads_group',
1174 'dgfw_gift_categories',
1175 'director',
1176 'district',
1177 'dlm_download_category',
1178 'dlm_download_tag',
1179 'doc_tag',
1180 'document-category',
1181 'document-type',
1182 'download_artist',
1183 'download_category',
1184 'download_tag',
1185 'downloads_filter',
1186 'dps_book',
1187 'dt_gallery_category',
1188 'dt_logos_category',
1189 'dt_portfolio_category',
1190 'dt_team_category',
1191 'dt_testimonials_category',
1192 'dtcast',
1193 'dtcreator',
1194 'dtdirector',
1195 'dtnetworks',
1196 'dtstudio',
1197 'dtyear',
1198 'dvteamtaxonomy',
1199 'dwqa-question_category',
1200 'dwqa-question_tag',
1201 'eafl_category',
1202 'easy-testimonial-category',
1203 'ecwd_event_category',
1204 'edd_log_type',
1205 'edition',
1206 'ef_editorial_meta',
1207 'ef_usergroup',
1208 'element_category',
1209 'elementor_library_type',
1210 'employees_category',
1211 'encyclopedia-tag',
1212 'envira-tag',
1213 'epkb_post_type_1_category',
1214 'espresso_event_categories',
1215 'espresso_event_type',
1216 'essential_grid_category',
1217 'et_post_format',
1218 'faq-group',
1219 'faq-tags',
1220 'faq-topic',
1221 'faq_cat',
1222 'faq_categories',
1223 'faq_category',
1224 'faqs-category',
1225 'fdm-menu-section',
1226 'feature',
1227 'featured_item_category',
1228 'featured_item_tag',
1229 'feedback_type',
1230 'feeds',
1231 'fl-builder-template-type',
1232 'flamingo_inbound_channel',
1233 'follow_up_email_campaign',
1234 'follow_up_email_type',
1235 'following_users',
1236 'football-team-taxo',
1237 'fpd_design_category',
1238 'gallery-category',
1239 'gallery_cat',
1240 'gallery_categories',
1241 'gallery_category',
1242 'gallery_entries',
1243 'gallerycat',
1244 'gd_event_tags',
1245 'gd_eventcategory',
1246 'gd_place_tags',
1247 'gd_placecategory',
1248 'genre',
1249 'genres',
1250 'gg_connect_hub',
1251 'give_log_type',
1252 'gn-genre',
1253 'gn-location-1',
1254 'gn-location-2',
1255 'gn-location-3',
1256 'gp_hubs',
1257 'gp_portfolios',
1258 'gp_videos',
1259 'group',
1260 'group-documents-category',
1261 'groups',
1262 'guest',
1263 'hashtags',
1264 'hotel_facility',
1265 'ia_invited_groups',
1266 'ia_invitees',
1267 'incsub_wiki_category',
1268 'industry',
1269 'ingredient',
1270 'insight-type',
1271 'issue',
1272 'issuem_issue',
1273 'issuem_issue_tags',
1274 'jbp_category',
1275 'karma-slider-category',
1276 'klaviyo_shop_cart_status',
1277 'kwlogos-carousel',
1278 'layout_category',
1279 'layout_type',
1280 'ld_course_category',
1281 'ld_course_tag',
1282 'ld_lesson_category',
1283 'ld_lesson_tag',
1284 'ld_topic_tag',
1285 'lesson-tag',
1286 'level',
1287 'lingotek_hash',
1288 'lingotek_profile',
1289 'link_library_category',
1290 'linkage',
1291 'list-tags',
1292 'listing-category',
1293 'listing_amenities',
1294 'listing_category',
1295 'liveblog',
1296 'llms_access_plan_visibility',
1297 'llms_product_visibility',
1298 'localisation',
1299 'location',
1300 'location-tag',
1301 'locations',
1302 'magazine',
1303 'map_location_categories',
1304 'masonry_gallery_category',
1305 'mc-event-category',
1306 'mec_category',
1307 'mec_location',
1308 'mec_organizer',
1309 'media-category',
1310 'media-tags',
1311 'media_category',
1312 'media_folder',
1313 'member_cat',
1314 'mentions',
1315 'mesh_template_types',
1316 'ml-slider',
1317 'module',
1318 'module-tag',
1319 'module_width',
1320 'movie_cat',
1321 'mpp-component',
1322 'mpp-status',
1323 'mpp-type',
1324 'muvicast',
1325 'muvicountry',
1326 'muvidirector',
1327 'muviindex',
1328 'muviquality',
1329 'muviyear',
1330 'news-category',
1331 'news-tag',
1332 'news-type',
1333 'news_type_cat',
1334 'news_category',
1335 'nova_menu',
1336 'nova_menu_item_label',
1337 'offer-types',
1338 'organization',
1339 'our_team_category',
1340 'page_category',
1341 'page_condition',
1342 'parisrestaurant',
1343 'parissauna',
1344 'partner_category',
1345 'partners',
1346 'paswdestinatari',
1347 'paypal_ipn_type',
1348 'pdf_lv_tag',
1349 'pec_events_category',
1350 'people',
1351 'people-department',
1352 'people-expertise',
1353 'people-location',
1354 'perfect_quotes_category',
1355 'performer',
1356 'person',
1357 'personnal-category',
1358 'pexcontentslider_category',
1359 'pexfullslider_category',
1360 'pexnivoslider_category',
1361 'pexpricing_category',
1362 'pexservice_category',
1363 'pextestimonial_category',
1364 'pf_feed_item_tag',
1365 'pg_sas_type',
1366 'photo_tag',
1367 'phototype',
1368 'pj-categs',
1369 'pj-tags',
1370 'pl-categs',
1371 'placement',
1372 'plan_status',
1373 'platform',
1374 'player',
1375 'plugins_categories',
1376 'podcast',
1377 'pojo_sidebars',
1378 'popup_category',
1379 'pornstars',
1380 'portada',
1381 'portcat',
1382 'portfolio-category',
1383 'portfolio-gallery',
1384 'portfolio-status',
1385 'portfolio-skills',
1386 'portfolio-tag',
1387 'portfolio-tags',
1388 'portfolio-type',
1389 'portfolio-types',
1390 'portfolio_cat',
1391 'portfolio_categories',
1392 'portfolio_category',
1393 'portfolio_cats',
1394 'portfolio_client',
1395 'portfolio_entries',
1396 'portfolio_filter',
1397 'portfolio_in',
1398 'portfolio_label',
1399 'portfolio_skills',
1400 'portfolio_tag',
1401 'portfolio_tags',
1402 'portfolio_type',
1403 'posicao',
1404 'post-type',
1405 'post_format',
1406 'post_series',
1407 'pp_editorial_meta',
1408 'pp_notify_role',
1409 'pp_usergroup',
1410 'pricingcats',
1411 'print_section',
1412 'print_status',
1413 'product_asset_class',
1414 'product_name',
1415 'programs',
1416 'project-attributes',
1417 'project-cat',
1418 'project-category',
1419 'project-type',
1420 'project_category',
1421 'project_collection',
1422 'project_tag',
1423 'projects_category',
1424 'projects_tag',
1425 'prominence',
1426 'promotion-categories',
1427 'property-city',
1428 'property-feature',
1429 'property-status',
1430 'property-type',
1431 'property-types',
1432 'property_action_category',
1433 'property_area',
1434 'property_category',
1435 'property_city',
1436 'property_feature',
1437 'property_status',
1438 'property_type',
1439 'province',
1440 'provinces',
1441 'publisher',
1442 'pwb-brand',
1443 'qmn_log_type',
1444 'qualification',
1445 'qualifications',
1446 'quality',
1447 'question-category',
1448 'question-tag',
1449 'question-type',
1450 'question_cat',
1451 'question_category',
1452 'question_tag',
1453 'quiz',
1454 'quiz-type',
1455 'quote_status',
1456 'rating',
1457 'reaction',
1458 'recipe-category',
1459 'recipe_category',
1460 'recipe_type',
1461 'region',
1462 'registrant-event',
1463 'related_keywords',
1464 'release-date',
1465 'resource-type',
1466 'resource_category',
1467 'resource_type',
1468 'resourcetype',
1469 'review-type',
1470 'review_category',
1471 'rodzaj',
1472 'role',
1473 'room_category',
1474 'room_tag',
1475 'roomtype',
1476 'rubriek_categorie',
1477 'savedreply',
1478 'schools',
1479 'scope',
1480 'scores_cat',
1481 'sdm_categories',
1482 'sdm_tags',
1483 'season',
1484 'secondary_html_features',
1485 'section',
1486 'sector',
1487 'series',
1488 'series_of_posts',
1489 'services_group',
1490 'serving',
1491 'shop_cart_status',
1492 'shop_cat',
1493 'shop_order_status',
1494 'shop_vendor',
1495 'shop_warranty_status',
1496 'shopp_category',
1497 'shopr_category',
1498 'show',
1499 'simple_link_category',
1500 'site-review-category',
1501 'sizes',
1502 'skill',
1503 'skill_level',
1504 'skills',
1505 'sld_cat',
1506 'slide-page',
1507 'slide-types',
1508 'slide_categories',
1509 'slide_type',
1510 'slider',
1511 'slider-locations',
1512 'slider_category',
1513 'slides_category',
1514 'slideshow',
1515 'sm-category',
1516 'snax_format',
1517 'sngg_media_tags',
1518 'solution_channel',
1519 'source_domain',
1520 'source_id',
1521 'sp_league',
1522 'sp_position',
1523 'sp_role',
1524 'sp_season',
1525 'sp_venue',
1526 'speaker',
1527 'speakers',
1528 'special-feature',
1529 'specialty',
1530 'spnl_log_type',
1531 'sponsor_categories',
1532 'sponsor_category',
1533 'sponsor_type',
1534 'spot_tag',
1535 'st_af_category',
1536 'st_af_tags',
1537 'staff',
1538 'staff-member-category',
1539 'staff-member-group',
1540 'staff_category',
1541 'staffgroups',
1542 'state',
1543 'status',
1544 'store',
1545 'stores',
1546 'studio',
1547 'study_level',
1548 'style',
1549 'style_category',
1550 'sub_transaction_action',
1551 'sub_transaction_result',
1552 'subcategory',
1553 'subject',
1554 'subscription_status',
1555 'swift-slider-category',
1556 'syn_sitegroup',
1557 'szbl-content-tag',
1558 'task-queue',
1559 'tax_feature',
1560 'tcb_symbols_tax',
1561 'tcp_product_category',
1562 'team',
1563 'team-category',
1564 'team_cat',
1565 'team_categories',
1566 'team_category',
1567 'team_cats',
1568 'team_department',
1569 'team_designation',
1570 'team_group',
1571 'team_member_position',
1572 'team_mfcategory',
1573 'teams',
1574 'tenant_categories',
1575 'tenant_location',
1576 'tender-category',
1577 'test-type',
1578 'testimonial-category',
1579 'testimonial-group',
1580 'testimonial-types',
1581 'testimonial_categories',
1582 'testimonial_category',
1583 'testimonials-category',
1584 'testimonials_category',
1585 'th_events_cat',
1586 'th_galleries_cat',
1587 'thegem_clients_sets',
1588 'thegem_news_sets',
1589 'thegem_portfolios',
1590 'thegem_quickfinders',
1591 'thegem_teams',
1592 'thegem_testimonials_sets',
1593 'theme',
1594 'themefusion_es_groups',
1595 'themes_categories',
1596 'themo_cpt_group',
1597 'themo_project_type',
1598 'themo_room_type',
1599 'thirstylink-category',
1600 'ticket_channel',
1601 'ticket_priority',
1602 'timeline_post_tag',
1603 'tipo',
1604 'tipologie',
1605 'tips',
1606 'tm-testimonials_category',
1607 'tm_testimonial_group',
1608 'tooltips_categories',
1609 'tour_category',
1610 'tour_destination',
1611 'tour_facility',
1612 'tour_phys',
1613 'tour_type',
1614 'tp_event_category',
1615 'transmission',
1616 'treatment-type',
1617 'tribe_events_cat',
1618 'truethemes-gallery-category',
1619 'tsas-category',
1620 'tshowcase-categories',
1621 'tsml_region',
1622 'ttshowcase_groups',
1623 'tvo_tags',
1624 'type',
1625 'types',
1626 'u_course_cat',
1627 'u_department',
1628 'u_event_cat',
1629 'ufaq-category',
1630 'ufaq-tag',
1631 'um_hashtag',
1632 'um_user_tag',
1633 'uncodeblock_category',
1634 'upg_cate',
1635 'urp-review-category',
1636 'us_portfolio_category',
1637 'us_testimonial_category',
1638 'user-group',
1639 'user_category',
1640 'user_status',
1641 'vendor',
1642 'venue',
1643 'video-category',
1644 'video-series',
1645 'video-tag',
1646 'video_category',
1647 'video_tag',
1648 'videos',
1649 'videos_categories',
1650 'voice_category',
1651 'vtmin_rule_category',
1652 'vtprd_rule_category',
1653 'w2dc-category',
1654 'w2dc-location',
1655 'w2dc-tag',
1656 'wcb_sponsor_level',
1657 'wcb_track',
1658 'wccf_checkout_field_field_type',
1659 'wccf_checkout_field_status',
1660 'wccf_order_field_field_type',
1661 'wccf_order_field_status',
1662 'wccf_product_field_field_type',
1663 'wccf_product_field_status',
1664 'wccf_product_prop_field_type',
1665 'wccf_product_prop_status',
1666 'wccf_user_field_field_type',
1667 'wccf_user_field_status',
1668 'wcfm_knowledgebase_category',
1669 'wcm_task_category',
1670 'wcpv_product_vendors',
1671 'wcs-instructor',
1672 'wcs-room',
1673 'wcs-type',
1674 'wdca_ad_categories',
1675 'webinar_type_cat',
1676 'where',
1677 'who',
1678 'wiki-category',
1679 'wiki_cats',
1680 'wl_entity_type',
1681 'workout_entries',
1682 'works-category',
1683 'wp-rest-api-log-method',
1684 'wp-rest-api-log-source',
1685 'wp-rest-api-log-status',
1686 'wp-type-activity-types',
1687 'wp-type-contacts-subtype',
1688 'wp-type-group',
1689 'wp_bannerize_tax',
1690 'wp_log_type',
1691 'wp_super_faq_category',
1692 'wpbdm-region',
1693 'wpbdp_category',
1694 'wpbdp_tag',
1695 'wpcm_make_model',
1696 'wpdmcategory',
1697 'wpfb_file_category',
1698 'wpfcas-category',
1699 'wpfd-category',
1700 'wplead_list_category',
1701 'wplss_logo_showcase_cat',
1702 'wpm-testimonial-category',
1703 'wpmf-category',
1704 'wpostahs-slider-category',
1705 'wprm_course',
1706 'wprm_cuisine',
1707 'wprm_ingredient',
1708 'wprm_keyword',
1709 'wprss_category',
1710 'wps_forum',
1711 'wpsc-variation',
1712 'wpsc_log_type',
1713 'wpsc_product_category',
1714 'wpseo_locations_category',
1715 'wpsisac_slider-category',
1716 'wpsl_store_category',
1717 'wpt_category',
1718 'wpt_result',
1719 'wpt_scale',
1720 'wpv_sermons_category',
1721 'wpvqgr_tag',
1722 'writer',
1723 'wyz_business_category',
1724 'wyz_business_rating_category',
1725 'wyz_business_tag',
1726 'wzkb_category',
1727 'year',
1728 'years',
1729 'yith_product_brand',
1730 'yith_shop_vendor',
1731 'yst_prominent_words',
1732 'zipcode',
1733 'zoninator_zones',
1734 'zrf_field_group',
1735
1736 // End The Backlog @see https://wp.me/p9MPsk-X0.
1737 'bill-status',
1738 'etb-audience',
1739 'etb-state',
1740 'etb-target',
1741 'etb-topic',
1742 'etb-year',
1743 'foia-response-status',
1744 'target-type',
1745 'timeline-pillar',
1746 'timeline-type',
1747
1748 // wp.com martketplace search - @see https://wp.me/pdh6GB-Ax#comment-2104
1749 'wpcom_marketplace_categories',
1750
1751 // wp.com a8c-support-theme taxonomies.
1752 'kb_category',
1753 'kb_tag',
1754
1755 // coolhunting.com
1756 'article-type',
1757
1758 ); // end taxonomies.
1759
1760 /**
1761 * List of options to sync
1762 *
1763 * @access private
1764 * @static
1765 *
1766 * @var array
1767 */
1768 private static $options_to_sync = array(
1769 'jetpack_search_ai_prompt_override',
1770 'jetpack_search_color_theme',
1771 'jetpack_search_result_format',
1772 'jetpack_search_default_sort',
1773 'jetpack_search_overlay_trigger',
1774 'jetpack_search_excluded_post_types',
1775 'jetpack_search_highlight_color',
1776 'jetpack_search_enable_sort',
1777 'jetpack_search_inf_scroll',
1778 'jetpack_search_show_powered_by',
1779 'jetpack_search_experience',
1780 'jetpack_search_ai_answers_enabled',
1781 'jetpack_search_suggestions_enabled',
1782 'jetpack_search_override_woocommerce_search_template',
1783 'reader_chat',
1784 'instant_search_enabled',
1785 ); // end options.
1786
1787 /*
1788 * Taxonomies we know don't sync.
1789 * See also sync/src/class-defaults.php
1790 *
1791 * 'network'
1792 * 'post_status'
1793 * 'product_cat'
1794 * 'tags'
1795 *
1796 */
1797
1798 //
1799 // Hooks into sync.
1800
1801 /**
1802 * Add Search post meta to the post meta whitelist.
1803 *
1804 * @param array $list Existing post meta whitelist.
1805 * @return array Updated post meta whitelist.
1806 */
1807 public function add_search_post_meta_whitelist( $list ) {
1808 return array_merge( $list, static::get_all_postmeta_keys() );
1809 }
1810
1811 /**
1812 * Add Search options to the options whitelist.
1813 *
1814 * @param array $list Existing options whitelist.
1815 * @return array Updated options whitelist.
1816 */
1817 public function add_search_options_whitelist( $list ) {
1818 return array_merge( $list, static::get_all_option_keys() );
1819 }
1820
1821 /**
1822 * Add AI Answer CPTs to the post types sync whitelist when AI Answers is enabled.
1823 *
1824 * @param array $list Existing post types whitelist.
1825 * @return array Updated whitelist.
1826 */
1827 public function add_ai_answer_post_types( $list ) {
1828 $ai_answers_enabled = class_exists( AI_Answers::class )
1829 ? AI_Answers::is_enabled()
1830 : apply_filters( 'jetpack_search_ai_answers_enabled', (bool) get_option( 'jetpack_search_ai_answers_enabled', false ) );
1831
1832 if ( ! $ai_answers_enabled ) {
1833 return $list;
1834 }
1835 $list[] = 'wp_guideline';
1836 return $list;
1837 }
1838
1839 // Indexing functions for wp.com.
1840
1841 /**
1842 * Check whether a postmeta or taxonomy 'key' is in the indexable
1843 * list. This is called by the indexing code on wp.com to decide
1844 * whether to include something in the index.
1845 *
1846 * @static
1847 * @access public
1848 *
1849 * @param string $type Either 'postmeta' or 'taxonomy'.
1850 * @param string $key The postmeta key or taxonomy name.
1851 * @return boolean
1852 */
1853 public static function is_indexable( $type, $key ) {
1854 switch ( $type ) {
1855 case 'postmeta':
1856 return isset( self::$postmeta_to_sync[ $key ] );
1857 case 'taxonomy':
1858 return in_array( $key, self::$taxonomies_to_sync, true );
1859 }
1860 return false;
1861 }
1862
1863 /**
1864 *
1865 * Get the indexing spec for a postmeta key.
1866 *
1867 * @static
1868 * @access public
1869 *
1870 * @param string $key The postmeta key.
1871 * @return array The spec.
1872 */
1873 public static function get_postmeta_spec( $key ) {
1874 return self::$postmeta_to_sync[ $key ];
1875 }
1876
1877 /**
1878 * Get all post meta keys that get synced.
1879 *
1880 * @access public
1881 *
1882 * @return array List of post meta keys that get synced.
1883 */
1884 public static function get_all_postmeta_keys() {
1885 return array_keys( self::$postmeta_to_sync );
1886 }
1887
1888 /**
1889 * Get all option keys that get synced.
1890 *
1891 * @access public
1892 *
1893 * @return array List of option keys that get synced.
1894 */
1895 public static function get_all_option_keys() {
1896 return self::$options_to_sync;
1897 }
1898
1899 /**
1900 * Get all unindexed postmeta.
1901 * This is mostly for testing.
1902 *
1903 * @access public
1904 *
1905 * @return array List of postmeta that are not synced.
1906 */
1907 public static function get_all_unindexed_postmeta_keys() {
1908 return array_keys( self::$unindexed_postmeta );
1909 }
1910
1911 /**
1912 * Get all taxonomies that get synced.
1913 * This is mostly for testing.
1914 *
1915 * @access public
1916 *
1917 * @return array List of taxonomies that get synced.
1918 */
1919 public static function get_all_taxonomies() {
1920 return self::$taxonomies_to_sync;
1921 }
1922 }
1923