Version Description
- Major fix: Stops more problems with ACF custom field indexing.
- Major fix: Fixes a bug in search result caching that caused Relevanssi to make lots of unnecessary database queries.
Download this release
Release Info
Developer | msaari |
Plugin | Relevanssi – A Better Search |
Version | 4.12.2 |
Comparing to | |
See all releases |
Code changes from version 4.12.1 to 4.12.2
- lib/common.php +11 -4
- lib/indexing.php +1 -1
- lib/options.php +2 -2
- readme.txt +8 -1
- relevanssi.php +2 -2
lib/common.php
CHANGED
@@ -224,10 +224,15 @@ function relevanssi_default_post_ok( $post_ok, $post_id ) {
|
|
224 |
* @global object $wpdb The WordPress database interface.
|
225 |
*
|
226 |
* @param array $matches An array of search matches.
|
|
|
227 |
*/
|
228 |
-
function relevanssi_populate_array( $matches ) {
|
229 |
global $relevanssi_post_array, $relevanssi_post_types, $wpdb;
|
230 |
|
|
|
|
|
|
|
|
|
231 |
// Doing this makes life faster.
|
232 |
wp_suspend_cache_addition( true );
|
233 |
|
@@ -243,8 +248,10 @@ function relevanssi_populate_array( $matches ) {
|
|
243 |
$posts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE id IN ( $id_list )", OBJECT ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
244 |
|
245 |
foreach ( $posts as $post ) {
|
246 |
-
$
|
247 |
-
|
|
|
|
|
248 |
}
|
249 |
} while ( $ids );
|
250 |
|
@@ -528,7 +535,7 @@ function relevanssi_prevent_default_request( $request, $query ) {
|
|
528 |
* value.
|
529 |
*/
|
530 |
function relevanssi_tokenize( $string, $remove_stops = true, int $min_word_length = -1 ) : array {
|
531 |
-
if ( ! $string ) {
|
532 |
return array();
|
533 |
}
|
534 |
$string_for_phrases = is_array( $string ) ? implode( ' ', $string ) : $string;
|
224 |
* @global object $wpdb The WordPress database interface.
|
225 |
*
|
226 |
* @param array $matches An array of search matches.
|
227 |
+
* @param int $blog_id The blog ID for multisite searches. Default -1.
|
228 |
*/
|
229 |
+
function relevanssi_populate_array( $matches, $blog_id = -1 ) {
|
230 |
global $relevanssi_post_array, $relevanssi_post_types, $wpdb;
|
231 |
|
232 |
+
if ( -1 === $blog_id ) {
|
233 |
+
$blog_id = get_current_blog_id();
|
234 |
+
}
|
235 |
+
|
236 |
// Doing this makes life faster.
|
237 |
wp_suspend_cache_addition( true );
|
238 |
|
248 |
$posts = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE id IN ( $id_list )", OBJECT ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
249 |
|
250 |
foreach ( $posts as $post ) {
|
251 |
+
$cache_id = $blog_id . '|' . $post->ID;
|
252 |
+
|
253 |
+
$relevanssi_post_array[ $cache_id ] = $post;
|
254 |
+
$relevanssi_post_types[ $cache_id ] = $post->post_type;
|
255 |
}
|
256 |
} while ( $ids );
|
257 |
|
535 |
* value.
|
536 |
*/
|
537 |
function relevanssi_tokenize( $string, $remove_stops = true, int $min_word_length = -1 ) : array {
|
538 |
+
if ( ! $string || ( ! is_string( $string ) && ! is_array( $string ) ) ) {
|
539 |
return array();
|
540 |
}
|
541 |
$string_for_phrases = is_array( $string ) ? implode( ' ', $string ) : $string;
|
lib/indexing.php
CHANGED
@@ -361,7 +361,7 @@ function relevanssi_build_index( $extend_offset = false, $verbose = null, $post_
|
|
361 |
|
362 |
if ( ( 0 === $size ) || ( count( $content ) < $size ) ) {
|
363 |
$complete = true;
|
364 |
-
update_option( 'relevanssi_indexed', 'done'
|
365 |
|
366 |
// To prevent empty indices.
|
367 |
$wpdb->query( "ANALYZE TABLE $relevanssi_table" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared,WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
361 |
|
362 |
if ( ( 0 === $size ) || ( count( $content ) < $size ) ) {
|
363 |
$complete = true;
|
364 |
+
update_option( 'relevanssi_indexed', 'done' );
|
365 |
|
366 |
// To prevent empty indices.
|
367 |
$wpdb->query( "ANALYZE TABLE $relevanssi_table" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared,WordPress.DB.PreparedSQL.InterpolatedNotPrepared
|
lib/options.php
CHANGED
@@ -125,7 +125,7 @@ function update_relevanssi_options() {
|
|
125 |
}
|
126 |
|
127 |
if ( count( $index_post_types ) > 0 ) {
|
128 |
-
update_option( 'relevanssi_index_post_types', array_keys( $index_post_types )
|
129 |
}
|
130 |
|
131 |
if ( isset( $_REQUEST['relevanssi_index_fields_select'] ) ) {
|
@@ -212,7 +212,7 @@ function update_relevanssi_options() {
|
|
212 |
'relevanssi_index_author' => false,
|
213 |
'relevanssi_index_comments' => false,
|
214 |
'relevanssi_index_excerpt' => false,
|
215 |
-
'relevanssi_index_image_files' =>
|
216 |
'relevanssi_log_queries_with_ip' => true,
|
217 |
'relevanssi_log_queries' => true,
|
218 |
'relevanssi_omit_from_logs' => true,
|
125 |
}
|
126 |
|
127 |
if ( count( $index_post_types ) > 0 ) {
|
128 |
+
update_option( 'relevanssi_index_post_types', array_keys( $index_post_types ) );
|
129 |
}
|
130 |
|
131 |
if ( isset( $_REQUEST['relevanssi_index_fields_select'] ) ) {
|
212 |
'relevanssi_index_author' => false,
|
213 |
'relevanssi_index_comments' => false,
|
214 |
'relevanssi_index_excerpt' => false,
|
215 |
+
'relevanssi_index_image_files' => true,
|
216 |
'relevanssi_log_queries_with_ip' => true,
|
217 |
'relevanssi_log_queries' => true,
|
218 |
'relevanssi_omit_from_logs' => true,
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: search, relevance, better search, product search, woocommerce search
|
|
5 |
Requires at least: 4.9
|
6 |
Tested up to: 5.6.3
|
7 |
Requires PHP: 7.0
|
8 |
-
Stable tag: 4.12.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -131,6 +131,10 @@ Each document database is full of useless words. All the little words that appea
|
|
131 |
* John Calahan for extensive 4.0 beta testing.
|
132 |
|
133 |
== Changelog ==
|
|
|
|
|
|
|
|
|
134 |
= 4.12.1 =
|
135 |
* Major fix: Stops TypeError crashes from null custom field indexing.
|
136 |
|
@@ -211,6 +215,9 @@ Each document database is full of useless words. All the little words that appea
|
|
211 |
* Minor fix: The category inclusion and exclusion setting checkboxes on the Searching tab didn't work. The setting was saved, but the checkboxes wouldn't appear.
|
212 |
|
213 |
== Upgrade notice ==
|
|
|
|
|
|
|
214 |
= 4.12.1 =
|
215 |
* Stops TypeError crashes from null custom field indexing.
|
216 |
|
5 |
Requires at least: 4.9
|
6 |
Tested up to: 5.6.3
|
7 |
Requires PHP: 7.0
|
8 |
+
Stable tag: 4.12.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
131 |
* John Calahan for extensive 4.0 beta testing.
|
132 |
|
133 |
== Changelog ==
|
134 |
+
= 4.12.2 =
|
135 |
+
* Major fix: Stops more problems with ACF custom field indexing.
|
136 |
+
* Major fix: Fixes a bug in search result caching that caused Relevanssi to make lots of unnecessary database queries.
|
137 |
+
|
138 |
= 4.12.1 =
|
139 |
* Major fix: Stops TypeError crashes from null custom field indexing.
|
140 |
|
215 |
* Minor fix: The category inclusion and exclusion setting checkboxes on the Searching tab didn't work. The setting was saved, but the checkboxes wouldn't appear.
|
216 |
|
217 |
== Upgrade notice ==
|
218 |
+
= 4.12.2 =
|
219 |
+
* Stops Relevanssi from crashing when saving posts with ACF fields, major performance boost.
|
220 |
+
|
221 |
= 4.12.1 =
|
222 |
* Stops TypeError crashes from null custom field indexing.
|
223 |
|
relevanssi.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
* Plugin Name: Relevanssi
|
14 |
* Plugin URI: https://www.relevanssi.com/
|
15 |
* Description: This plugin replaces WordPress search with a relevance-sorting search.
|
16 |
-
* Version: 4.12.
|
17 |
* Author: Mikko Saari
|
18 |
* Author URI: http://www.mikkosaari.fi/
|
19 |
* Text Domain: relevanssi
|
@@ -67,7 +67,7 @@ $relevanssi_variables['database_version'] = 6;
|
|
67 |
$relevanssi_variables['file'] = __FILE__;
|
68 |
$relevanssi_variables['plugin_dir'] = plugin_dir_path( __FILE__ );
|
69 |
$relevanssi_variables['plugin_basename'] = plugin_basename( __FILE__ );
|
70 |
-
$relevanssi_variables['plugin_version'] = '4.12.
|
71 |
|
72 |
require_once 'lib/admin-ajax.php';
|
73 |
require_once 'lib/common.php';
|
13 |
* Plugin Name: Relevanssi
|
14 |
* Plugin URI: https://www.relevanssi.com/
|
15 |
* Description: This plugin replaces WordPress search with a relevance-sorting search.
|
16 |
+
* Version: 4.12.2
|
17 |
* Author: Mikko Saari
|
18 |
* Author URI: http://www.mikkosaari.fi/
|
19 |
* Text Domain: relevanssi
|
67 |
$relevanssi_variables['file'] = __FILE__;
|
68 |
$relevanssi_variables['plugin_dir'] = plugin_dir_path( __FILE__ );
|
69 |
$relevanssi_variables['plugin_basename'] = plugin_basename( __FILE__ );
|
70 |
+
$relevanssi_variables['plugin_version'] = '4.12.2';
|
71 |
|
72 |
require_once 'lib/admin-ajax.php';
|
73 |
require_once 'lib/common.php';
|