= 2.1.7 = * The API key option in the network options wasn't very intuitive. It's better now. * Direct attachment links in search results work better now, especially in cases where the site has moved. * Improved handling of certain edge cases in taxonomy search. * Home page links were getting the highlight parameter even though they shouldn't. This has been fixed. * The Import / Export options tab was missing (very few people complained, so perhaps that feature is not very important...). * The status of the 'Index PDF contents for parent post' option didn't show up correctly on the settings page. * Added support for WP JV Post Reading Groups. * Improved handling of HTML entities. * Events Made Easy Calendar shortcodes are now removed when building excerpts. * `set_time_limit()` was removed from the indexing; it's no longer necessary, and it can break the indexing on sites that don't allow the use of the function. * `relevanssi_post_title_before_tokenize` filter was moved a bit so that it's the last thing that runs before tokenizing. * When indexing custom MySQL column data, stopwords and minimum word length weren't applied properly. * Disabled shortcodes are handled better in the indexing: the shortcode names won't be indexed anymore like they were before. * Fix for pinning in multisite context. * Made sure there won't be a warning for non-numeric values when searching. * Removed unnecessary post types from the weight setting list. * New filter: `relevanssi_clean_excerpt` lets you remove unwanted highlights from excerpts. * Highlighting works better with `pre` and `code` tags. * New filter: `relevanssi_comment_author_to_index` lets you filter comment author names before indexing. * `relevanssi_comment_content_to_index` doesn't include the comment author name anymore. = 2.1.6.1 = * The privacy features caused an error notice with certain Relevanssi configurations, and the plugin required WP 4.9.6. = 2.1.6 = * Privacy: If you log search queries, Relevanssi will suggest some additional content to your privacy policy page. * Privacy: Relevanssi now supports the new Privacy Policy and Personal Data tools in WordPress 4.9.6. * Improved Polylang support. Now taxonomy terms can be language filtered as well. * Saving synonyms with quotes worked, but the synonyms showed up wrong. * Taxonomy term indexing had a bug where the `type` column for taxonomy terms would be set to 0. * The `relevanssi_user_index_ok` filter is now applied when users are updated. * Relevanssi could in some situations override navigation menu links with links to the user profiles or taxonomy terms found in the search. This update fixes that behaviour. * Random order works again; using orderby `rand` didn't work properly. The `rand(seed)` format is also supported now. * Fixed quotes and apostrophes in Did you mean suggestions. = 2.1.5 = * New feature: WooCommerce product visibility can now be considered better in the indexing. See the filter hook 'relevanssi_woocommerce_indexing' for more details. * Phrases were not highlighted correctly on documents. This is now fixed. * Shortcode fix: 'wp_show_posts' shouldn't cause problems anymore. * Fix for post tag indexing issues. * MemberPress post controls were loose and showed drafts to searchers. That is now fixed. * Highlighting was too loose, even if matching was set to whole words. * Highlighting now works better in cases where there's a hyphen or an apostrophe inside a word. = 2.1.4 = * Fixed cases where Relevanssi added an ellipsis even if the excerpt was from the start of the post. * Highlighting now works with numeric search strings. * Improved highlighting for accented words. Thanks to Paul Ryan. * A surplus comma at the end of post exclusion setting won't break the search anymore. * Fixed instructions for adjusting the throttle limit. * New "Pin this post for all keywords" feature. = 2.1.3 = * Recent post bonus is now applied to searches. * Exact term setting can now be disabled. * Users of Members plugin would have drafts appear in search results. This is now fixed. * Pinned keywords would appear in the list of exlusion keywords, and you couldn't set exclusion keywords. That is now corrected. * "Index unindexed posts" works better. * Removing quotes and apostrophes in indexing didn't work properly. * Attachment indexing progress meter fixed. * The "Highlight from external searches" option was removed. It's not supported by Google or Bing anymore, so there's little point in keeping it. = 2.1.2 = * MemberPress post control was backwards. * Fusion Builder shortcodes are automatically removed from excerpts. * Indexing failed, when a same word appeared in two different taxonomies. * Internal link management had a bit of a bug in the indexing. * User searches page reset buttons fixed. = 2.1.1.1 = * Fixes an issue where you can't save taxonomy indexing settings. = 2.1.1 = * Automated testing can't catch everything... There was some overzealous security in place, breaking Network options. That is now fixed. * Attachment file name is not prepended to the excerpts automatically. = 2.1 = * Relevanssi code has been reviewed and modified to follow WordPress coding standards. As a result, there have been minor improvements all around the code to make things more robust and secure. * Attachment indexing has been extended to many more document types: now it should be able to handle most document types, including Office and OpenDocument formats. It's also slightly faster. * There's now an option to do attachment reading in an EU-based server. * Custom field detail is no longer serialized. It's now JSON. If you use custom field detail, rebuild the index and change your code to use json_decode() instead of unserialize(). * `relevanssi_the_tags()` and `relevanssi_get_the_tags()` now have different set of parameters, more in line with `the_tags()` and `get_the_tags()`. * Taxonomy indexing settings were emptied out if you saved another options tab. That is now fixed. * Improvements to WPML support; WPML is now less likely to be confused in multisite searches. * Updated filter: `relevanssi_search_ok` now gets the WP_Query object as a parameter, which is helpful if you're not using the global $wp_query. * ACF Flexible Content field indexing didn't work properly, possibly due to a change in ACF. That should now work better. = 2.0.5 = * Fixed a bug in "Did you mean" suggestions. * Paid Member Subscription shortcode compatibility. * Indexing works better when there are plenty of excluded posts. * Ampersand handling works better in titles. * Relevanssi won't add the `highlight` parameter to links pointing to the front page anymore (because that makes those links point to the blog page). * There's less need for `relevanssi_get_permalink()` now, as Relevanssi can adjust the links printed out with `get_permalink()`. * The [searchform] shortcode can now take parameters, for example: `[searchform post_types="page"]` will print out a search form that only searches pages. * Small improvement for excerpt-building, thanks to ___ _______. = 2.0.4 = * Fixed filter: `relevanssi_custom_field_value` didn't get the post ID correctly. * Relevanssi used `sanitize_hex_color`, which isn't actually reliably available. * Multisite searches didn't support `orderby` and `order` parameters. * Did you mean suggestions have been improved. * New filter: `relevanssi_do_not_index_term` lets you control whether or not taxonomy terms are indexed. * Single-word phrases are not allowed anymore, as they do no good. They are silently converted to non-phrases now. * `relevanssi_get_permalink` doesn't add the `highlight` parameter to URLs outside search results pages anymore. * Setting post type or post content weight to 0 didn't work. * Search form shortcode echoed out the search form, instead of returning it as it should. * Gravity Forms shortcode is now disabled in Relevanssi indexing. * ACF repeater field indexing doesn't break if you try to index multilevel repeaters (that still won't work, but it won't break everything either). * HTML tags are stripped from post excerpts when using the excerpt to build Relevanssi excerpts. * User indexing is now done in steps, after it turned out to be impossible to index 16,000 users at once. * New filter: `relevanssi_excerpt_query` filters the search query before building excerpts. * New option: if you choose to hide Relevanssi from post edit pages, you can allow admins to see the Relevanssi post controls. = 2.0.3.1 = * There was a small error in the multisite installation procedure, now fixed. = 2.0.3 = * Uninstalling Relevanssi was broken. That is now fixed. * In some cases excerpt-building could take ages because of autoembed link discovery. Relevanssi now blocks the autoembed procedure in link-building. * © and ® symbols caused problems in indexing; they are now included in the default punctuation removal. * Fixed filter: `relevanssi_pdf_read_timeout` wasn't applied to all cases of timeouts. * Updated filter: `relevanssi_index_custom_fields` now gets a second parameter that contains the post ID. * New filter: `relevanssi_custom_field_value` is used to filter custom field values both before indexing and before excerpt-building. Parameters include the field name and the post ID. * Indexing PDF content didn't work properly if Relevanssi was set to index visible custom fields. * There was a bug in importing the options. * New setting can be enabled to read in the contents of new PDF files as they are uploaded on the site. This is disabled by default. = 2.0.2 = * New filter: `relevanssi_multisite_public_status` lets you make non-public multisite subsites available in the search. * New filter: `relevanssi_pdf_read_timeout` lets you increase the PDF reading timeout from the default value of 45 seconds. * Deprecated filter: `relevanssi_index_taxonomies_args` is no longer used, because Relevanssi doesn't use `get_terms()` anymore in taxonomy term indexing. * New filter: `relevanssi_hide_empty_terms` can be used instead of `relevanssi_index_taxonomies_args` to include empty taxonomy terms in indexing. Defaults to `true`, set to `false` to include taxonomy terms that are not attached to any posts. * Taxonomy term indexing is now done in small steps to prevent timeout issues when indexing large numbers of taxonomy terms. * Improvements to the Polylang setting. * PDFs were always indexed for the parent post, never mind the value of the option. = 2.0.1 = * Fixes a fatal error that happened with older PHP versions. = 2.0 = * Legacy code has been removed. If you have a version older than 1.16, update first to 1.16.x to guarantee smooth upgrade process. * This version includes a small database change, so if you're updating from a previous version, after the update deactivate the plugin and then reactivate. * Improved indexing: no more clicking "Continue indexing" again and again! * Settings pages have been completely rewritten. * There's documentation in the WordPress contextual help: just click Help on the top right corner. * Better Polylang support. A new option to remove the Polylang language filter. * Logs can be automatically trimmed. Old log entries are removed to save space. * Finally a setting to adjust content weight! * Excerpts can use the custom field content. * Highlighting in documents is changed: it now requires a `highlight` query parameter. This helps getting pass caching and makes the highlighting more reliable. To get the query parameter active, use `relevanssi_get_permalink()` to print out the permalinks on the search results templates. * Relevanssi added synonyms to highlighting even if synonyms were not used for searching. In some cases, synonyms were added twice. * The User Searches page got a makeover, too. * Relevanssi is automatically disabled in REST API searches. * Groups and Simple Membership support has been improved. * Sorting search results is now up to 300 times faster than before. * Lots of improvements all over the place. * New filter: `relevanssi_excerpt_custom_field_content` lets you modify custom field content that is used for excerpts. * New filter: `relevanssi_punctuation_filter` allows for easy modification of punctuation handling. * New filter: `relevanssi_default_punctuation_replacement` changes the default way to handle the rest of the punctuation. * New filter: `relevanssi_search_again` lets you run the search again if no results are found and to modify the parameters between search runs. * New filter: `relevanssi_fallback` allows you to do fallback searches. * New filter: `relevanssi_page_builder_shortcodes` lets you control which page builder shortcodes Relevanssi removes before building the excerpts. * New filter: `relevanssi_optimize_excerpts` makes excerpt-building faster, if you make the filter return `true`. * New query variable: set `include_attachments` to `0`, `off` or `false` to exclude attachments from the search. = 1.16.2.1 = * Fixing a bug in the sorting algorithm. = 1.16.2 = * ACF repeater fields with dashes didn't work; that is now fixed. * Simple Membership plugin is now supported automatically to restrict access to posts. * Relevanssi can now handle orderby parameter in array format. * Relevanssi now blocks Easy Digital Downloads shortcodes when indexing to improve compatibility with EDD. * When using `fields` to only fetch post IDs, Relevanssi doesn't try to highlight post titles. * New action: `relevanssi_update_options` lets you adjust Relevanssi options immediately after the defaults are set. * Remove notices about duplicated database columns when installing the plugin. = 1.16.1 = * SECURITY: This version fixes a SQL injection vulnerability, where a site admin could theoretically inject SQL code into Relevanssi search queries. Doing this required access to Relevanssi settings page and in my tests, I couldn't do any damage, just break the Relevanssi search, but in any case, this vulnerability is now fixed. * Multisite meta queries didn't work properly. * Search and Filter shortcode is added to the blacklist. * Groups plugin is now supported automatically to restrict access to posts. * The filter `relevanssi_index_custom_fields` now works even if the custom field setting is empty. * The filter `relevanssi_tax_term_additional_content` now works even when the taxonomy description is empty. * Relevanssi taxonomy term indexing is moved to a later priority (from 10 to 9999) to make sure all term data is available for indexing. * The filter `relevanssi_post_to_index` now has a second parameter. For posts, it simply repeats the post object, but for taxonomy terms, it has the term object. = 1.16.0.1 = * Fixes "unknown column" issues in multisite searches. * Removes errors when trying to search a multisite subsite that doesn't have Relevanssi. * Small fix to make automatic updates work better in a multisite environment. = 1.16.0 = * Changed a bit how Relevanssi attaches itself to queries. Instead of the global $wp_query, Relevanssi now uses the query passed as the parameter to `the_posts` filter hook. This should improve compatibility in some cases, but may cause problems in some fringe cases. If you're doing something unusual with Relevanssi, try this out before deploying to public use. * Internal link processing had some minor issues, which are now straightened out. * Some meta queries caused major problems with the Relevanssi weighting algorithm. This has now been fixed. * Error notices caused by trying to use a non-existing taxonomy term have been removed. = 1.15.4 = * Improved performance of multisite queries. * Copying settings between multisite sites didn't work in networks of over 100 sites. Now the limit is 2000. * Post type exclusion didn't work as expected. * Relevanssi couldn't handle nested tax queries (such as those generated by WooCommerce product visibility filtering) properly. * Fake posts created for taxonomy terms now include the parent in $post->post_parent. * Doing a quick edit cleaned out the Relevanssi post controls settings. = 1.15.3.1 = * New filter: `relevanssi_allow_one_letter_highlights` lets you allow one-letter highlights. Just make the filter function return `true`. * New filter: `relevanssi_block_one_letter_searches` by default blocks one-letter searches. If you want to enable them, add a filter function that always returns `false`. * Fixed an undefined variable notice. = 1.15.3 = * Multisite search won't attempt to search in blogs that don't exist or are deleted or marked spam. * Synonym indexing failed if synonyms contained a forward slash. * Highlighting HTML tags has been improved further. * New filter: `relevanssi_tag_before_tokenize` allows you to access tag content before indexing. * Improvements to taxonomy terms and post type parameters. Now if you set a post type parameter, taxonomy terms or user profiles are not included in the search. In order to see taxonomy terms in the search results when using `post_types` parameter, add the taxonomy name (or `user`) to the `post_types` parameter. This does not work with the default `post_type` parameter. * Relevanssi now actively blocks one-letter search terms, as they are generally pointless and can cause "out of memory" issues. One-letter search terms are no longer highlighted, either. These are usually caused by cases like "word's" being interpreted as "word s". * New filter: `relevanssi_disable_shortcodes_excerpt` lets you add more shortcodes to be disabled before excerpts are built. * Relevanssi now indexes taxonomy terms whenever they are created. * Relevanssi now supports `fieldname_%_subfieldname` notation for ACF repeater fields in "Custom fields to index" settings. = 1.15.2.1 = * An extra parentheses killed the WP CLI indexing. = 1.15.2 = * When a taxonomy term was saved, Relevanssi didn't record the changes correctly. * New WP CLI commands to index only users or taxonomies. * Improved the way highlighting handles HTML tags, especially when highlighting on post pages. * Relevanssi didn't remove taxonomy term data from the index properly. I recommend rebuilding the taxonomy terms (which you can do easily with the new WP CLI command `wp relevanssi index --target=taxonomies`). * The throttle limit setting was removed from the settings page for causing trouble. If you need to change it, update `relevanssi_throttle_limit` option directly. * The "Did you mean" function should return slightly more relevant results. * The `relevanssi_get_words_query` filter hook has been retired and replaced with new `relevanssi_get_words_having` filter hook, used to adjust the value. The default value is 1, and there's usually no reason to adjust that. * FacetWP users ran into trouble, as `relevanssi_do_query()` started to explicitly expect a WP_Query object in version 1.15.0. That expectation is removed; it's still highly recommended for future compatibility that you use WP_Query objects. * Small bug fix: `get_current_screen()` is now only used when it's available to avoid occasional fatal errors. * Error messages from `DOING_AJAX` being undefined should be removed. = 1.15.1 = * Enabling "Index synonyms" setting with an empty synonym list caused post content and title indexing to fail. * Wrong pages creeping into navigation menus from multisite searches should be history now. * Relevanssi Premium now offers WP CLI support. See `wp help relevanssi` for instructions. * Relevanssi didn't support tax_queries with `field` set to `name`. That works now. * Much faster way of showing the 25 most common words in the index. If you've disabled this feature because it was so slow, try enabling it - you might be surprised! = 1.15.0.1 = * The network settings page was missing. = 1.15.0 = * Improved ACF compatibility. * Relevanssi was a bit too eager to index taxonomy terms it shouldn't. That is now fixed. I suggest you rebuild the index, if you haven't done that recently. * Synonym indexing was searching and replacing too much. If you're using synonym indexing, please rebuild the index. * It is now possible to copy Relevanssi settings from one blog in the multisite network to all other blogs. * On multisite installations, the API key is now a network option. The network admin needs to set the value from the network admin dashboard. * Relevanssi post controls didn't work on attachments: you couldn't save the values. That is now possible. * Pinning didn't work on multisite searches. It does now. * Relevanssi now stores the operator used in $wp_query->query_vars['operator'] so that it can be accessed outside Relevanssi. = 1.14.9 = * Did you mean function had a XSS vulnerability, which is now removed. * Minimum word length wasn't applied to titles in indexing. It is now fixed. If you think this is a problem, rebuild the index. * TablePress compatibility has been improved. * Meta query handling has been improved, thanks to Maxime Culea. * Improved WP_Query parameter support: setting query variable `sentence` to 1 forces phrase search. = 1.14.8 = * An improved version of the sorting function will not throw notices when Intuitive Custom Post Order plugin is used. * New filter: `relevanssi_missing_sort_key` can be used to adjust the result sorting when using keys that are not present in all posts (eg. menu_order). * Importing options now works, it was broken in 1.14.6. * New feature: keyword-based exclusion is the opposite of the pinning feature. You can now list keywords on post edit screen, and if the search query matches those keywords, the post will not appear in results. * Czech translation and stopwords, thanks to Michael Kucera. = 1.14.7.1 = * Relevanssi threw a fatal error with PHP 7.1 thanks to a wrong variable declaration. * The accidental PHP 5.4+ requirement has been removed. = 1.14.7 = * Relevanssi broke the WP admin menu search when admin searches were enabled. * Pinning now supports multi-word search terms. * Relevanssi broke the admin page search under WP 4.7. Relevanssi is now disabled in admin page searches. * The way accented characters are handled in highlighting is improved. A new filter, `relevanssi_accents_replacement_arrays`, can be used to adjust the accent replacement. = 1.14.6.1 = * Fix for a fatal bug in 1.14.6. = 1.14.6 = * Relevanssi option import had a arbitrary code execution vulnerability that is now blocked. * Relevanssi admin page had a vulnerability that allowed SQL injection attacks. That is now fixed. * Relevanssi didn't like to highlight search terms that are followed by a ?, an ! or an apostrophe. * New filter: `relevanssi_ok_to_log` lets you control whether search queries are logged or not. = 1.14.5 = * Relevanssi had problems with plus signs in search queries. * 500 errors caused by arrays in custom fields should be gone now. * Post type filters in multisite searching work better now, and meta_query support is now added. (Thanks to Maxime Culea.) * Improvements to the ACF "select" field support. * Relevanssi will not break when frontend plugins insert posts. * Polylang support has been improved. * WPML and Polylang filters work when "fields" is set to "ids". * `relevanssi_match` filter has a new parameter, which contains the search term. * `relevanssi_post_ok` filter was missing from the multisite search. = 1.14.4 = * Fixed a small glitch that could happen if a highlighted term is next to a starting square bracket. * Bug fixes in the multisite searching: post type weights work now, and relevancy scores are properly noted. * Ensured PHP7 and WP 4.6 compatibility. * New filter: `relevanssi_30days` can be used to adjust the 30 day logs to a different number of days. = 1.14.3 = * Fix for a small bug that caused inflated relevancy values. * `relevanssi_didyoumean_url` has two more parameters (uncorrected query and the suggestion). * The Did you mean function didn't work properly if the search term wasn't in lowercase. * Adding stopwords that contain apostrophes didn't work. * Relevanssi can now index the human-readable labels of ACF "select" fields. (Thanks to Raphaël Droz.) = 1.14.2 = * Fixed a fatal error when searching includes private posts. = 1.14.1 = * Multisite searches had some compatibility issues with other plugins and navigation menus; those have now been fixed. * Multisite search (which has limitations) doesn't trigger if the search only targets the current site. * Multisite search can now return taxonomy terms. * "Did you mean" corrections in search queries with many words work better now. * Fixed an error if the search term was not found in content. * Fixed an error when building excerpts from posts shorter than the excerpt length. * Blocked the `[starpro]`, CFDB and WooCommerce shortcodes that are causing problems with Relevanssi. * Added support for `term_tax_id` in the `fields` parameter in tax_queries. * Excerpt-building failed if multibyte string operations were missing. It should work now. * New filter: `relevanssi_remove_stopwords_in_titles` allows you to include stopwords in titles. * New filter: `relevanssi_remote_addr` can be used to modify the IP address logged to Relevanssi logs. * New filter: `relevanssi_user_searches_limit` to adjust the number of user searches shown in the logs. * Old data check is only done on Relevanssi settings page, not on all admin pages. That should improve admin performance. = 1.14 = * Tokenizer was using `strlen()` and not `mb_strlen()`, so word lengths were not calculated properly. If your site uses non-ASCII alphabet, rebuilding the index is a good idea. * Printing out titles for taxonomy terms didn't work properly. `relevanssi_the_title()` works for that and if you don't want to echo the title, you can use it like `relevanssi_the_title(false)` to make it return the title. * Small improvement to WPML multilanguage filtering. * `relevanssi_user_add_data` only worked when indexing all users. * "Undefined index" errors in multisite search were eliminated. * The `[noindex]` shortcode now supports shortcodes inside it. * When posts transitioned from "future" to "published" there were some issues with disappearing Relevanssi settings. That's fixed now. * The `[watupro]` shortcode didn't work with Relevanssi, so Relevanssi will now bypass it. * Relevanssi had `the_title` filter hook calls that were missing the second parameter; that's now fixed. * The excerpt-building algorithm is completely rewritten based on work by Ben Boyter (http://www.boyter.org/). * The plugin i18n features have been improved slightly. * New filter: `relevanssi_didyoumean_suggestion` lets you modify the Did you mean? suggestion before it's displayed. * `relevanssi_didyoumean()` has a new parameter: you can now choose whether the result is echoed out (the default value) or just returned. * Multisite search had some problems with some Relevanssi variables not changing when the blog was switched. This is now improved, thanks to Teemu Muikku. * In the search results breakdown, you can now use %categories% and %taxonomies% to show the number of matches in categories and taxonomies other than tags and cats, respectively. * Search results breakdowns now work for taxonomy terms and user profiles. * Relevanssi supports `fields` parameter (both `ids` and `id=>parent`) to return only post IDs or post IDs and post parents. = 1.13.5 = * Previous version broke the multisite search. That is now fixed. * Empty lines on synonym settings caused problems. Fixed that. * Relevanssi didn't clean up properly on uninstall, leaving _relevanssi_pin postmeta fields. = 1.13.4 = * New filter: `relevanssi_valid_admin_status` can be used to adjust post statuses that Relevanssi will handle. * Meta query support should now be perfect; there were some limitations with complicated meta queries before. = 1.13.3 = * Removes one "Undefined variable" error. * New filter: `relevanssi_display_common_words` can be used to disable the "25 most common words" listing on the settings page, if it's too heavy to load. * Eliminated problems where using the `relevanssi_do_not_index` filter caused error messages. * Relevanssi was sanitizing taxonomy titles too aggressively. That is now toned down a bit. * If Relevanssi creates an empty excerpt for a post and there's a user-set excerpt for the post, that excerpt is used. * The `relevanssi_post_title_before_tokenize` filter now has a second parameter that contains the post object. * No ellipsis is added to the post excerpt, if the post excerpt shows the whole post. * Relevanssi now supports `post_parent`, `post_parent__in` and `post_parent__not_in`, though you have to set them in `relevanssi_modify_wp_query` filter for them to work. = 1.13.2 = * Fixed a bug that caused the results to change depending of the order of words in a multi-word search query. * Added `product_categories` and `recent_products` from WooCommerce to the list of blocked shortcodes. * There are improvements in excerpt-building and highlighting, especially when fuzzy search is enabled. * Fixed a possible (if quite unlikely) XSS vulnerability. * Improved search performance (thanks to MikeNGarrett). * Sometimes highlights in documents make the document content disappear. I don't know why, but I've added a fix that should make the content visible (without the highlights) if a problem appears. = 1.13.1 = * Fixed a bug with numeric taxonomy terms. * Fixed a bug in user search. * API keys are now completely hidden on the Relevanssi settings page. * `relevanssi_do_not_index` hook is moved a bit, so that when updating posts, posts that are not indexed because of the hook are now removed from the index. * Pinning didn't work if the post wasn't otherwise found with the pinning term. Now pinning terms are also indexed to ensure that the posts can be found with them. = 1.13 = * New feature: You can now pin posts on particular search terms. * New feature: Synonyms can now be defined in indexing, allowing them to be used with AND searches. (Thanks to Christoph Daum.) * Relevanssi handles taxonomy terms in search better. The change requires a reindexing. * Fix in indexing: Relevanssi will now bypass the global $post when indexing. This should help with problems with the Cookie Law Info plugin, for example. * Tax query relation setting didn't work properly. It is now fixed. * Word-based excerpt building sometimes created too short excerpts. That is now fixed. * Synonyms are now highlighted. * Phrase matching had issues where searching for a too common phrase crashed the search. That has been fixed. * LIKE operator didn't work properly in meta_queries. * API key field in settings is now a password field so clients and users can't see the API key. * Relevanssi created lots of unnecessary post_meta rows and didn't clean up properly afterwards. Now unnecessary rows are not created, and everything is cleaned up properly. * Problems with Avatar Upload plugin are fixed. * Offset errors with mb_stripos() shouldn't happen anymore. * Relevanssi tables are now added to `wpmu_drop_tables` to ensure neat cleanup with WPMU. * A small problem in taxonomy search MySQL fixed, also a small problem with AND operator in tax_queries. * Did you mean function now handles umlauted alphabet (ä, ö, ü and å). * Fixed a bug with WP_Date_Queries. Thanks to Charles St-Pierre. * New filter: `relevanssi_post_to_index` lets you access the post object before the post is indexed. * New filter: `relevanssi_orderby` lets you modify the $orderby value before Relevanssi sorts posts. * New filter: `relevanssi_order` lets you modify the $order value before Relevanssi sorts posts. * New filter: `relevanssi_post_title_before_tokenize` lets you modify post titles before indexing. * New filter: `relevanssi_private_cap` lets you adjust the capability setting for private posts in custom post types. = 1.12.1 = * Fixed a bug where excluding posts would cause the search to fail. * WPML searches showed each result twice. That's fixed. * Increased plugin safety against hackers. * There was a bug in `relevanssi_comment_content_to_index` filter. * Some people had problems with the log entry timestamps. Fixed that. * New filter: `relevanssi_prevent_default_request` gives you more control over where Relevanssi prevents the default query from running. * New filter: `relevanssi_private_cap` lets you set the correct capability for finding private posts in custom post types. * The option to exclude categories and tags from search only worked for categories, not tags. Tags have been separated to a different option. = 1.12 = * Relevanssi now automatically treats 'ß' as 'ss'. If your site has 'ß' in text, reindexing the database is a good idea. * Query variable `post_status` is now supported. * Improvements to excerpts: excerpts with phrases work much better now, and the excerpt creation logic has been improved: the excerpts are now better. The process takes a bit more time, though. * Allowing HTML tags in excerpts could lead to those tags being left open. Relevanssi will now try to close open HTML tags in excerpts. * Allowed tags were not controlled in comments. They are now. * Highlighting in documents didn't always work; it should be more reliable now. * Non-integer values are removed from `post__in` and `post__not_in` before processing them. * Query variables `p` and `page_id` are now supported. * Relevanssi now understands `date_query` variables as well. * The original post excerpt is stored in $post->original_excerpt. * Taxonomy search works better with term id parameters (for example from `wp_category_dropdown`). * Errors about $wpdb->prepare() missing an argument removed. * New functions: `relevanssi_the_title()` and `relevanssi_get_the_title()` can be used to display highlighted titles in search results. * The old title highlighting method has been disabled, because it caused highlights in wrong places. Now the highlighted title is stored in $post->highlighted_post_title, take it from there or use the Relevanssi title functions to display it. * Polylang and WPML support was adjusted to perform better in edge cases. * Indexing is faster, thanks to some improved code from Tom Novelli. * MySQL injection attack vulnerability removed. * The cache feature is now removed. Relevanssi should automatically drop the cache tables. * New filter: `relevanssi_indexing_data` lets you modify the data before it's indexed. * Fix for a bug that sometimes caused multisite hits to come from the wrong site. = 1.11 = * Fixed a bug in the TablePress support. * Titles are put through the_title filter before indexing. * relevanssi_related() function had a bug. * New filter: `relevanssi_join` can be used to join tables in the Relevanssi search MySQL queries. Thanks to Ninos Ego. * New filter: `relevanssi_tax_term_additional_content` can be used to add any content to taxonomy terms before indexing. * New filter: `relevanssi_post_content` can be used to modify post content before any Relevanssi processing. * New filter: `relevanssi_post_content_before_tokenize` can be used to modify post content just before it's tokenized. * New filter: `relevanssi_indexing_values` can be used to modify what Relevanssi stores in the index. * New filter: `relevanssi_default_meta_query_relation` can be used to change the default meta query relation (default value is "AND"). * When using a meta_query, `relation` can be set to OR now. * Phrases are now matched to excerpts. * Number of queries Relevanssi generates is much, much lower. * New filter: `relevanssi_didyoumean_url` lets you modify the URL generated by the did you mean feature. * Better set of Russian stopwords. * Relevanssi now highlights search query synonyms as well in documents. = 1.10.14 = * Fix to make Relevanssi compatible with WordPress 3.7. * Fixed a mistyped database table name. * Relevanssi disables responsive-flipbook shortcode in indexing; it was causing problems. * Fixed a problem with an author dropdown with no author selected. = 1.10.13 = * New filter: `relevanssi_comment_content_to_index` lets you modify comment content before it's indexed by Relevanssi (to index comment meta, for example). * Facetious support: if post_type is set to -1, Relevanssi will not hang up on it. * Numerical search terms work better now. * Relevanssi now handles WordPress-created tax_queries better. * Support for Polylang broke the support for WPML. That is now fixed. * Two deprecated $wpdb->escape() were still left; they're gone now. * Shortcode `layerslider` was causing problems with Relevanssi; Relevanssi now disables it before building excerpts. * Relevanssi won't break BBPress search anymore. * Multisite searches had some issues. = 1.10.12 = * Excerpt-building had issues, which are now fixed. * Punctuation removal now replaces   with a space. * "starrater" short code from GD Star Rating is now disabled in indexing. * Punctuation removal now replaces invisible spaces with a normal space. * Division by zero error caused by 0 in posts_per_page is now prevented, and -1 value for posts_per_page handled better. * Relevanssi doesn't apply `get_the_excerpt` filters to excerpts it builds any more. * New filter: `relevanssi_excerpt` lets you modify the excerpts Relevanssi creates. * Relevanssi now suspends WP post cache while indexing, making indexing a lot more efficient. Thanks to Julien Mession for this one. * Deprecated function errors in 3.6 removed. * When search included user profiles or taxonomy terms, Relevanssi would generate lots of MySQL errors. Not anymore. * New filter: `relevanssi_valid_status` lets you modify the post statuses Relevanssi indexes. * New filter: `relevanssi_index_taxonomies_args` lets you modify the arguments passed to get_terms() when indexing taxonomies (for example to set 'hide_empty' to false). * Searching by taxonomy ID could confuse two taxonomies with the same term_id. The search is now checking the taxonomy as well to see it's correct. * Basic support for Polylang plugin. * Russian and Italian stopwords are now included, thanks to Flector and Valerio Vendrame. * Small fix in the way user meta fields are handled. = 1.10.11 = * Previous upgrade broke AND operator in searches. Fixed that. = 1.10.10 = * REBUILD THE INDEX AFTER THIS UPDATE. * Prevented error messages relating to creation of post objects from users and taxonomies. * Fixed MySQL errors from empty meta queries. * Removed WP complaint about badly formed $wpdb->prepare() statement. * Sort order (orderby and order variables) are now read from query variables instead of global variables. * Relevanssi will not choke on bad values of orderby anymore. * Limit searches is improved: when using AND search it is less likely to miss results. * Phrase recognition read the whole post content (which it didn't need) from database, causing memory issues in some cases. Fixed that. * Fuzzy searches are now a lot more efficient; they were a huge resource hog before. * Fixed a possible MySQL injection attack. = 1.10.9.1 = * OR fallback didn't actually fall back to OR, but instead got stuck in an endless loop of AND searches. * Relevanssi was being called twice when a post was saved, on `save_post` and `wp_insert_post`. I removed the hook on `save_post`. = 1.10.9 = * Fixed the auto-update problem in 1.10.8 asking to update after update was done. * Meta queries didn't work without a key; now they work with just meta_value or meta_value_num. * Modified the way the highlights work; now highlighting words with apostrophes should produce more meaningful results. = 1.10.8 = * Major indexing problems caused by shortcodes changing the post ID during the indexing of posts are now fixed. * Meta queries had problems with meta_value being set to null. * Relevanssi now supports category__and. By default this sets include_children to false. * When querying by slug, the term taxonomy is also taken into consideration, fixing problems when same slug appears in different taxonomies. * Author search didn't work. * Fixed an error message caused by all-number synonyms starting with zero, like 02. * New action hook: `relevanssi_pre_indexing_query` can be used to "SET OPTION SQL_BIG_SELECTS=1" if needed. * Synonyms are now case-insensitive. * Highlighting should not highlight anything between & and ; or in