Version Description
- 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.
Download this release
Release Info
Developer | msaari |
Plugin | Relevanssi – A Better Search |
Version | 3.5.6 |
Comparing to | |
See all releases |
Code changes from version 3.5.5 to 3.5.6
- lib/common.php +7 -2
- lib/excerpts-highlights.php +3 -3
- lib/init.php +31 -37
- lib/interface.php +1 -1
- lib/search.php +20 -2
- readme.txt +9 -1
- relevanssi.php +1 -1
lib/common.php
CHANGED
@@ -132,6 +132,7 @@ function relevanssi_update_log($query, $hits) {
|
|
132 |
|
133 |
// Bot filter, by Justin_K
|
134 |
// See: http://wordpress.org/support/topic/bot-logging-problem-w-tested-solution
|
|
|
135 |
if (isset($_SERVER['HTTP_USER_AGENT'])) {
|
136 |
$user_agent = $_SERVER['HTTP_USER_AGENT'];
|
137 |
$bots = array('Google'=>'Mediapartners-Google');
|
@@ -142,8 +143,12 @@ function relevanssi_update_log($query, $hits) {
|
|
142 |
}
|
143 |
|
144 |
get_option('relevanssi_log_queries_with_ip') == "on" ? $ip = apply_filters('relevanssi_remote_addr', $_SERVER['REMOTE_ADDR']) : $ip = '';
|
145 |
-
|
146 |
-
|
|
|
|
|
|
|
|
|
147 |
}
|
148 |
|
149 |
/**
|
132 |
|
133 |
// Bot filter, by Justin_K
|
134 |
// See: http://wordpress.org/support/topic/bot-logging-problem-w-tested-solution
|
135 |
+
$user_agent = "";
|
136 |
if (isset($_SERVER['HTTP_USER_AGENT'])) {
|
137 |
$user_agent = $_SERVER['HTTP_USER_AGENT'];
|
138 |
$bots = array('Google'=>'Mediapartners-Google');
|
143 |
}
|
144 |
|
145 |
get_option('relevanssi_log_queries_with_ip') == "on" ? $ip = apply_filters('relevanssi_remote_addr', $_SERVER['REMOTE_ADDR']) : $ip = '';
|
146 |
+
|
147 |
+
$ok_to_log = apply_filters('relevanssi_ok_to_log', true, $query, $hits, $user_agent, $ip);
|
148 |
+
if ($ok_to_log) {
|
149 |
+
$q = $wpdb->prepare("INSERT INTO " . $relevanssi_variables['log_table'] . " (query, hits, user_id, ip, time) VALUES (%s, %d, %d, %s, NOW())", $query, intval($hits), $user->ID, $ip);
|
150 |
+
$wpdb->query($q);
|
151 |
+
}
|
152 |
}
|
153 |
|
154 |
/**
|
lib/excerpts-highlights.php
CHANGED
@@ -421,17 +421,17 @@ function relevanssi_count_matches($words, $fulltext) {
|
|
421 |
$count = 0;
|
422 |
foreach( $words as $word ) {
|
423 |
if (get_option('relevanssi_fuzzy') == 'never') {
|
424 |
-
$pattern = '/([\s
|
425 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
426 |
$count += count($matches) - 1;
|
427 |
}
|
428 |
}
|
429 |
else {
|
430 |
-
$pattern = '/([\s
|
431 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
432 |
$count += count($matches) - 1;
|
433 |
}
|
434 |
-
$pattern = '/('.$word.'[\s
|
435 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
436 |
$count += count($matches) - 1;
|
437 |
}
|
421 |
$count = 0;
|
422 |
foreach( $words as $word ) {
|
423 |
if (get_option('relevanssi_fuzzy') == 'never') {
|
424 |
+
$pattern = '/([\s,\.:;\?!\']'.$word.'[\s,\.:;\?!\'])/i';
|
425 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
426 |
$count += count($matches) - 1;
|
427 |
}
|
428 |
}
|
429 |
else {
|
430 |
+
$pattern = '/([\s,\.:;\?!\']'.$word.')/i';
|
431 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
432 |
$count += count($matches) - 1;
|
433 |
}
|
434 |
+
$pattern = '/('.$word.'[\s,\.:;\?!\'])/i';
|
435 |
if (preg_match($pattern, $fulltext, $matches, PREG_OFFSET_CAPTURE)) {
|
436 |
$count += count($matches) - 1;
|
437 |
}
|
lib/init.php
CHANGED
@@ -4,7 +4,7 @@ add_action('admin_menu', 'relevanssi_menu');
|
|
4 |
add_filter('the_posts', 'relevanssi_query');
|
5 |
add_action('delete_post', 'relevanssi_delete');
|
6 |
add_action('comment_post', 'relevanssi_comment_index'); //added by OdditY
|
7 |
-
add_action('edit_comment', 'relevanssi_comment_edit'); //added by OdditY
|
8 |
add_action('delete_comment', 'relevanssi_comment_remove'); //added by OdditY
|
9 |
add_action('wp_insert_post', 'relevanssi_insert_edit', 99, 1 ); // added by lumpysimon
|
10 |
// BEGIN added by renaissancehack
|
@@ -50,7 +50,7 @@ function relevanssi_init() {
|
|
50 |
update_option( 'relevanssi_doc_count', $D);
|
51 |
}
|
52 |
}
|
53 |
-
|
54 |
if (!function_exists('mb_internal_encoding')) {
|
55 |
function relevanssi_mb_warning() {
|
56 |
echo "<div id='relevanssi-warning' class='error'><p><strong>"
|
@@ -101,7 +101,7 @@ function relevanssi_query_vars($qv) {
|
|
101 |
|
102 |
function relevanssi_create_database_tables($relevanssi_db_version) {
|
103 |
global $wpdb;
|
104 |
-
|
105 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
106 |
|
107 |
$charset_collate_bin_column = '';
|
@@ -118,12 +118,9 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
118 |
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
119 |
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
120 |
}
|
121 |
-
if ($wpdb->collate == '' && $wpdb->charset == "utf8mb4") {
|
122 |
-
$charset_collate_bin_column .= " COLLATE utf8mb4_bin";
|
123 |
-
}
|
124 |
}
|
125 |
-
|
126 |
-
$relevanssi_table = $wpdb->prefix . "relevanssi";
|
127 |
$relevanssi_stopword_table = $wpdb->prefix . "relevanssi_stopwords";
|
128 |
$relevanssi_log_table = $wpdb->prefix . "relevanssi_log";
|
129 |
|
@@ -135,28 +132,28 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
135 |
}
|
136 |
delete_option('relevanssi_indexed');
|
137 |
}
|
138 |
-
|
139 |
-
$sql = "CREATE TABLE " . $relevanssi_table . " (doc bigint(20) NOT NULL DEFAULT '0',
|
140 |
-
term varchar(50) NOT NULL DEFAULT '0',
|
141 |
term_reverse varchar(50) NOT NULL DEFAULT '0',
|
142 |
-
content mediumint(9) NOT NULL DEFAULT '0',
|
143 |
-
title mediumint(9) NOT NULL DEFAULT '0',
|
144 |
-
comment mediumint(9) NOT NULL DEFAULT '0',
|
145 |
-
tag mediumint(9) NOT NULL DEFAULT '0',
|
146 |
-
link mediumint(9) NOT NULL DEFAULT '0',
|
147 |
-
author mediumint(9) NOT NULL DEFAULT '0',
|
148 |
-
category mediumint(9) NOT NULL DEFAULT '0',
|
149 |
-
excerpt mediumint(9) NOT NULL DEFAULT '0',
|
150 |
-
taxonomy mediumint(9) NOT NULL DEFAULT '0',
|
151 |
-
customfield mediumint(9) NOT NULL DEFAULT '0',
|
152 |
mysqlcolumn mediumint(9) NOT NULL DEFAULT '0',
|
153 |
taxonomy_detail longtext NOT NULL,
|
154 |
customfield_detail longtext NOT NULL,
|
155 |
mysqlcolumn_detail longtext NOT NULL,
|
156 |
type varchar(210) NOT NULL DEFAULT 'post',
|
157 |
-
item bigint(20) NOT NULL DEFAULT '0',
|
158 |
UNIQUE KEY doctermitem (doc, term, item)) $charset_collate";
|
159 |
-
|
160 |
dbDelta($sql);
|
161 |
|
162 |
$sql = "SHOW INDEX FROM $relevanssi_table";
|
@@ -172,7 +169,7 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
172 |
if ($index->Key_name == 'docs') $docs_exists = true;
|
173 |
if ($index->Key_name == 'typeitem') $typeitem_exists = true;
|
174 |
}
|
175 |
-
|
176 |
if (!$terms_exists) {
|
177 |
$sql = "CREATE INDEX terms ON $relevanssi_table (term(20))";
|
178 |
$wpdb->query($sql);
|
@@ -182,12 +179,12 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
182 |
$sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10))";
|
183 |
$wpdb->query($sql);
|
184 |
}
|
185 |
-
|
186 |
if (!$docs_exists) {
|
187 |
$sql = "CREATE INDEX docs ON $relevanssi_table (doc)";
|
188 |
$wpdb->query($sql);
|
189 |
}
|
190 |
-
|
191 |
if (!$typeitem_exists) {
|
192 |
$sql = "CREATE INDEX typeitem ON $relevanssi_table (type, item)";
|
193 |
$wpdb->query($sql);
|
@@ -198,7 +195,7 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
198 |
|
199 |
dbDelta($sql);
|
200 |
|
201 |
-
$sql = "CREATE TABLE " . $relevanssi_log_table . " (id bigint(9) NOT NULL AUTO_INCREMENT,
|
202 |
query varchar(200) NOT NULL,
|
203 |
hits mediumint(9) NOT NULL DEFAULT '0',
|
204 |
time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
@@ -207,11 +204,11 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
207 |
UNIQUE KEY id (id)) $charset_collate;";
|
208 |
|
209 |
dbDelta($sql);
|
210 |
-
|
211 |
if (RELEVANSSI_PREMIUM && get_option('relevanssi_db_version') < 12) {
|
212 |
$charset_collate_bin_column = '';
|
213 |
$charset_collate = '';
|
214 |
-
|
215 |
if (!empty($wpdb->charset)) {
|
216 |
$charset_collate_bin_column = "CHARACTER SET $wpdb->charset";
|
217 |
$charset_collate = "DEFAULT $charset_collate_bin_column";
|
@@ -223,11 +220,8 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
223 |
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
224 |
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
225 |
}
|
226 |
-
if ($wpdb->collate == '' && $wpdb->charset == "utf8mb4") {
|
227 |
-
$charset_collate_bin_column .= " COLLATE utf8mb4_bin";
|
228 |
-
}
|
229 |
}
|
230 |
-
|
231 |
$sql = "ALTER TABLE $relevanssi_stopword_table MODIFY COLUMN stopword varchar(50) $charset_collate_bin_column NOT NULL";
|
232 |
$wpdb->query($sql);
|
233 |
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN user_id bigint(20) NOT NULL DEFAULT '0'";
|
@@ -235,7 +229,7 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
235 |
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN ip varchar(40) NOT NULL DEFAULT ''";
|
236 |
$wpdb->query($sql);
|
237 |
}
|
238 |
-
|
239 |
if (get_option('relevanssi_db_version') < 16) {
|
240 |
$sql = "ALTER TABLE $relevanssi_table ADD COLUMN term_reverse VARCHAR(50);";
|
241 |
$wpdb->query($sql);
|
@@ -244,12 +238,12 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
|
|
244 |
$sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10));";
|
245 |
$wpdb->query($sql);
|
246 |
}
|
247 |
-
|
248 |
update_option('relevanssi_db_version', $relevanssi_db_version);
|
249 |
}
|
250 |
-
|
251 |
if ($wpdb->get_var("SELECT COUNT(*) FROM $relevanssi_stopword_table WHERE 1") < 1) {
|
252 |
relevanssi_populate_stopwords();
|
253 |
}
|
254 |
}
|
255 |
-
?>
|
4 |
add_filter('the_posts', 'relevanssi_query');
|
5 |
add_action('delete_post', 'relevanssi_delete');
|
6 |
add_action('comment_post', 'relevanssi_comment_index'); //added by OdditY
|
7 |
+
add_action('edit_comment', 'relevanssi_comment_edit'); //added by OdditY
|
8 |
add_action('delete_comment', 'relevanssi_comment_remove'); //added by OdditY
|
9 |
add_action('wp_insert_post', 'relevanssi_insert_edit', 99, 1 ); // added by lumpysimon
|
10 |
// BEGIN added by renaissancehack
|
50 |
update_option( 'relevanssi_doc_count', $D);
|
51 |
}
|
52 |
}
|
53 |
+
|
54 |
if (!function_exists('mb_internal_encoding')) {
|
55 |
function relevanssi_mb_warning() {
|
56 |
echo "<div id='relevanssi-warning' class='error'><p><strong>"
|
101 |
|
102 |
function relevanssi_create_database_tables($relevanssi_db_version) {
|
103 |
global $wpdb;
|
104 |
+
|
105 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
106 |
|
107 |
$charset_collate_bin_column = '';
|
118 |
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
119 |
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
120 |
}
|
|
|
|
|
|
|
121 |
}
|
122 |
+
|
123 |
+
$relevanssi_table = $wpdb->prefix . "relevanssi";
|
124 |
$relevanssi_stopword_table = $wpdb->prefix . "relevanssi_stopwords";
|
125 |
$relevanssi_log_table = $wpdb->prefix . "relevanssi_log";
|
126 |
|
132 |
}
|
133 |
delete_option('relevanssi_indexed');
|
134 |
}
|
135 |
+
|
136 |
+
$sql = "CREATE TABLE " . $relevanssi_table . " (doc bigint(20) NOT NULL DEFAULT '0',
|
137 |
+
term varchar(50) NOT NULL DEFAULT '0',
|
138 |
term_reverse varchar(50) NOT NULL DEFAULT '0',
|
139 |
+
content mediumint(9) NOT NULL DEFAULT '0',
|
140 |
+
title mediumint(9) NOT NULL DEFAULT '0',
|
141 |
+
comment mediumint(9) NOT NULL DEFAULT '0',
|
142 |
+
tag mediumint(9) NOT NULL DEFAULT '0',
|
143 |
+
link mediumint(9) NOT NULL DEFAULT '0',
|
144 |
+
author mediumint(9) NOT NULL DEFAULT '0',
|
145 |
+
category mediumint(9) NOT NULL DEFAULT '0',
|
146 |
+
excerpt mediumint(9) NOT NULL DEFAULT '0',
|
147 |
+
taxonomy mediumint(9) NOT NULL DEFAULT '0',
|
148 |
+
customfield mediumint(9) NOT NULL DEFAULT '0',
|
149 |
mysqlcolumn mediumint(9) NOT NULL DEFAULT '0',
|
150 |
taxonomy_detail longtext NOT NULL,
|
151 |
customfield_detail longtext NOT NULL,
|
152 |
mysqlcolumn_detail longtext NOT NULL,
|
153 |
type varchar(210) NOT NULL DEFAULT 'post',
|
154 |
+
item bigint(20) NOT NULL DEFAULT '0',
|
155 |
UNIQUE KEY doctermitem (doc, term, item)) $charset_collate";
|
156 |
+
|
157 |
dbDelta($sql);
|
158 |
|
159 |
$sql = "SHOW INDEX FROM $relevanssi_table";
|
169 |
if ($index->Key_name == 'docs') $docs_exists = true;
|
170 |
if ($index->Key_name == 'typeitem') $typeitem_exists = true;
|
171 |
}
|
172 |
+
|
173 |
if (!$terms_exists) {
|
174 |
$sql = "CREATE INDEX terms ON $relevanssi_table (term(20))";
|
175 |
$wpdb->query($sql);
|
179 |
$sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10))";
|
180 |
$wpdb->query($sql);
|
181 |
}
|
182 |
+
|
183 |
if (!$docs_exists) {
|
184 |
$sql = "CREATE INDEX docs ON $relevanssi_table (doc)";
|
185 |
$wpdb->query($sql);
|
186 |
}
|
187 |
+
|
188 |
if (!$typeitem_exists) {
|
189 |
$sql = "CREATE INDEX typeitem ON $relevanssi_table (type, item)";
|
190 |
$wpdb->query($sql);
|
195 |
|
196 |
dbDelta($sql);
|
197 |
|
198 |
+
$sql = "CREATE TABLE " . $relevanssi_log_table . " (id bigint(9) NOT NULL AUTO_INCREMENT,
|
199 |
query varchar(200) NOT NULL,
|
200 |
hits mediumint(9) NOT NULL DEFAULT '0',
|
201 |
time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
204 |
UNIQUE KEY id (id)) $charset_collate;";
|
205 |
|
206 |
dbDelta($sql);
|
207 |
+
|
208 |
if (RELEVANSSI_PREMIUM && get_option('relevanssi_db_version') < 12) {
|
209 |
$charset_collate_bin_column = '';
|
210 |
$charset_collate = '';
|
211 |
+
|
212 |
if (!empty($wpdb->charset)) {
|
213 |
$charset_collate_bin_column = "CHARACTER SET $wpdb->charset";
|
214 |
$charset_collate = "DEFAULT $charset_collate_bin_column";
|
220 |
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
221 |
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
222 |
}
|
|
|
|
|
|
|
223 |
}
|
224 |
+
|
225 |
$sql = "ALTER TABLE $relevanssi_stopword_table MODIFY COLUMN stopword varchar(50) $charset_collate_bin_column NOT NULL";
|
226 |
$wpdb->query($sql);
|
227 |
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN user_id bigint(20) NOT NULL DEFAULT '0'";
|
229 |
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN ip varchar(40) NOT NULL DEFAULT ''";
|
230 |
$wpdb->query($sql);
|
231 |
}
|
232 |
+
|
233 |
if (get_option('relevanssi_db_version') < 16) {
|
234 |
$sql = "ALTER TABLE $relevanssi_table ADD COLUMN term_reverse VARCHAR(50);";
|
235 |
$wpdb->query($sql);
|
238 |
$sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10));";
|
239 |
$wpdb->query($sql);
|
240 |
}
|
241 |
+
|
242 |
update_option('relevanssi_db_version', $relevanssi_db_version);
|
243 |
}
|
244 |
+
|
245 |
if ($wpdb->get_var("SELECT COUNT(*) FROM $relevanssi_stopword_table WHERE 1") < 1) {
|
246 |
relevanssi_populate_stopwords();
|
247 |
}
|
248 |
}
|
249 |
+
?>
|
lib/interface.php
CHANGED
@@ -828,7 +828,7 @@ function relevanssi_options_form() {
|
|
828 |
$mysql_columns = get_option('relevanssi_mysql_columns');
|
829 |
$serialize_options['relevanssi_mysql_columns'] = $mysql_columns;
|
830 |
|
831 |
-
$serialized_options =
|
832 |
}
|
833 |
|
834 |
echo "<div class='postbox-container' style='width:70%;'>";
|
828 |
$mysql_columns = get_option('relevanssi_mysql_columns');
|
829 |
$serialize_options['relevanssi_mysql_columns'] = $mysql_columns;
|
830 |
|
831 |
+
$serialized_options = json_encode($serialize_options);
|
832 |
}
|
833 |
|
834 |
echo "<div class='postbox-container' style='width:70%;'>";
|
lib/search.php
CHANGED
@@ -7,6 +7,8 @@ function relevanssi_query($posts, $query = false) {
|
|
7 |
global $relevanssi_active;
|
8 |
global $wp_query;
|
9 |
|
|
|
|
|
10 |
$search_ok = true; // we will search!
|
11 |
if (!is_search()) {
|
12 |
$search_ok = false; // no, we can't
|
@@ -51,8 +53,24 @@ function relevanssi_search($args) {
|
|
51 |
$relevanssi_table = $relevanssi_variables['relevanssi_table'];
|
52 |
|
53 |
$filtered_args = apply_filters( 'relevanssi_search_filters', $args );
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
$hits = array();
|
57 |
|
58 |
$query_restrictions = "";
|
7 |
global $relevanssi_active;
|
8 |
global $wp_query;
|
9 |
|
10 |
+
if (!$wp_query) return $posts;
|
11 |
+
|
12 |
$search_ok = true; // we will search!
|
13 |
if (!is_search()) {
|
14 |
$search_ok = false; // no, we can't
|
53 |
$relevanssi_table = $relevanssi_variables['relevanssi_table'];
|
54 |
|
55 |
$filtered_args = apply_filters( 'relevanssi_search_filters', $args );
|
56 |
+
$q = $filtered_args['q'];
|
57 |
+
$tax_query = $filtered_args['tax_query'];
|
58 |
+
$tax_query_relation = $filtered_args['tax_query_relation'];
|
59 |
+
$post_query = $filtered_args['q'];
|
60 |
+
$q = $filtered_args['post_query'];
|
61 |
+
$parent_query = $filtered_args['parent_query'];
|
62 |
+
$meta_query = $filtered_args['meta_query'];
|
63 |
+
$date_query = $filtered_args['date_query'];
|
64 |
+
$expost = $filtered_args['expost'];
|
65 |
+
$post_type = $filtered_args['q'];
|
66 |
+
$post_status = $filtered_args['post_status'];
|
67 |
+
$operator = $filtered_args['operator'];
|
68 |
+
$search_blogs = $filtered_args['search_blogs'];
|
69 |
+
$author = $filtered_args['author'];
|
70 |
+
$orderby = $filtered_args['orderby'];
|
71 |
+
$order = $filtered_args['order'];
|
72 |
+
$fields = $filtered_args['fields'];
|
73 |
+
|
74 |
$hits = array();
|
75 |
|
76 |
$query_restrictions = "";
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.relevanssi.com/buy-premium/
|
|
4 |
Tags: search, relevance, better search
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.6.1
|
7 |
-
Stable tag: 3.5.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -386,6 +386,11 @@ removing those words helps to make the index smaller and searching faster.
|
|
386 |
|
387 |
== Changelog ==
|
388 |
|
|
|
|
|
|
|
|
|
|
|
389 |
= 3.5.5 =
|
390 |
* 500 errors caused by arrays in custom fields should be gone now.
|
391 |
* Improvements to the ACF "select" field support.
|
@@ -1127,6 +1132,9 @@ removing those words helps to make the index smaller and searching faster.
|
|
1127 |
|
1128 |
== Upgrade notice ==
|
1129 |
|
|
|
|
|
|
|
1130 |
= 3.5.5 =
|
1131 |
* Bug fixes and small improvements.
|
1132 |
|
4 |
Tags: search, relevance, better search
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.6.1
|
7 |
+
Stable tag: 3.5.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
386 |
|
387 |
== Changelog ==
|
388 |
|
389 |
+
= 3.5.6 =
|
390 |
+
* Relevanssi admin page had a vulnerability that allowed SQL injection attacks. That is now fixed.
|
391 |
+
* Relevanssi didn't like to highlight search terms that are followed by a ?, an ! or an apostrophe.
|
392 |
+
* New filter: `relevanssi_ok_to_log` lets you control whether search queries are logged or not.
|
393 |
+
|
394 |
= 3.5.5 =
|
395 |
* 500 errors caused by arrays in custom fields should be gone now.
|
396 |
* Improvements to the ACF "select" field support.
|
1132 |
|
1133 |
== Upgrade notice ==
|
1134 |
|
1135 |
+
= 3.5.6 =
|
1136 |
+
* Fix for a SQL injection vulnerability.
|
1137 |
+
|
1138 |
= 3.5.5 =
|
1139 |
* Bug fixes and small improvements.
|
1140 |
|
relevanssi.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Relevanssi
|
4 |
Plugin URI: http://www.relevanssi.com/
|
5 |
Description: This plugin replaces WordPress search with a relevance-sorting search.
|
6 |
-
Version: 3.5.
|
7 |
Author: Mikko Saari
|
8 |
Author URI: http://www.mikkosaari.fi/
|
9 |
*/
|
3 |
Plugin Name: Relevanssi
|
4 |
Plugin URI: http://www.relevanssi.com/
|
5 |
Description: This plugin replaces WordPress search with a relevance-sorting search.
|
6 |
+
Version: 3.5.6
|
7 |
Author: Mikko Saari
|
8 |
Author URI: http://www.mikkosaari.fi/
|
9 |
*/
|