Version Description
- 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.
Download this release
Release Info
Developer | msaari |
Plugin | Relevanssi – A Better Search |
Version | 3.6.2 |
Comparing to | |
See all releases |
Code changes from version 3.6.1 to 3.6.2
- lib/common.php +183 -60
- lib/indexing.php +11 -4
- lib/search.php +18 -9
- readme.txt +9 -1
- relevanssi.php +4 -14
lib/common.php
CHANGED
@@ -23,20 +23,6 @@ function relevanssi_wpml_filter($data) {
|
|
23 |
$filtered_hits[] = $hit;
|
24 |
}
|
25 |
}
|
26 |
-
elseif (function_exists('icl_object_id') && function_exists('pll_is_translated_post_type')) {
|
27 |
-
if (pll_is_translated_post_type($hit->post_type)) {
|
28 |
-
if (PLL()->model->post->get_language($hit->ID)->slug == ICL_LANGUAGE_CODE) {
|
29 |
-
$filtered_hits[] = $hit;
|
30 |
-
}
|
31 |
-
else if ($hit->ID == icl_object_id($hit->ID, $hit->post_type, false, ICL_LANGUAGE_CODE)) {
|
32 |
-
$filtered_hits[] = $hit;
|
33 |
-
}
|
34 |
-
}
|
35 |
-
else {
|
36 |
-
$filtered_hits[] = $hit;
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
// if there is no WPML but the target blog has identical language with current blog,
|
41 |
// we use the hits. Note en-US is not identical to en-GB!
|
42 |
elseif (get_bloginfo('language') == $lang) {
|
@@ -51,52 +37,186 @@ function relevanssi_wpml_filter($data) {
|
|
51 |
return $data;
|
52 |
}
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
/**
|
55 |
* Function by Matthew Hood http://my.php.net/manual/en/function.sort.php#75036
|
56 |
*/
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
function relevanssi_show_matches($data, $hit) {
|
102 |
isset($data['body_matches'][$hit]) ? $body = $data['body_matches'][$hit] : $body = 0;
|
@@ -115,7 +235,7 @@ function relevanssi_show_matches($data, $hit) {
|
|
115 |
$total_hits += $hits;
|
116 |
}
|
117 |
|
118 |
-
$text = get_option('relevanssi_show_matches_text');
|
119 |
$replace_these = array("%body%", "%title%", "%tags%", "%categories%", "%taxonomies%", "%comments%", "%score%", "%terms%", "%total%");
|
120 |
$replacements = array($body, $title, $tag, $category, $taxonomy, $comment, $score, $term_hits, $total_hits);
|
121 |
|
@@ -188,6 +308,11 @@ function relevanssi_default_post_ok($post_ok, $doc) {
|
|
188 |
$current_user = wp_get_current_user();
|
189 |
$access = Groups_Post_Access::user_can_read_post($doc, $current_user->ID);
|
190 |
}
|
|
|
|
|
|
|
|
|
|
|
191 |
else {
|
192 |
// Basic WordPress version
|
193 |
$type = relevanssi_get_post_type($doc);
|
@@ -756,5 +881,3 @@ function relevanssi_debug_echo($s) {
|
|
756 |
echo $s . "\n";
|
757 |
}
|
758 |
}
|
759 |
-
|
760 |
-
?>
|
23 |
$filtered_hits[] = $hit;
|
24 |
}
|
25 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
// if there is no WPML but the target blog has identical language with current blog,
|
27 |
// we use the hits. Note en-US is not identical to en-GB!
|
28 |
elseif (get_bloginfo('language') == $lang) {
|
37 |
return $data;
|
38 |
}
|
39 |
|
40 |
+
/*
|
41 |
+
* Fetches a key-direction pair from the orderby array. Converts key names to match the post object parameters
|
42 |
+
* when necessary and seeds the random generator, if required.
|
43 |
+
*/
|
44 |
+
function relevanssi_get_next_key(&$orderby) {
|
45 |
+
if (!is_array($orderby) || count($orderby) < 1) return array(null, null);
|
46 |
+
|
47 |
+
list($key) = array_keys($orderby);
|
48 |
+
$dir = $orderby[$key];
|
49 |
+
unset($orderby[$key]);
|
50 |
+
|
51 |
+
$compare = "string";
|
52 |
+
|
53 |
+
if (strtolower($dir) == "rand") $key = "rand";
|
54 |
+
|
55 |
+
if ('title' == $key) $key = 'post_title';
|
56 |
+
if ('date' == $key) $key = 'post_date';
|
57 |
+
if ('modified' == $key) $key = 'post_modified';
|
58 |
+
if ('parent' == $key) $key = 'post_parent';
|
59 |
+
if ('type' == $key) $key = 'post_type';
|
60 |
+
if ('name' == $key) $key = 'post_name';
|
61 |
+
if ('author' == $key) $key = 'post_author';
|
62 |
+
if ('relevance' == $key) $key = 'relevance_score';
|
63 |
+
|
64 |
+
$numeric_keys = array('menu_order', 'ID', 'post_parent', 'post_author', 'comment_count', 'relevance_score');
|
65 |
+
$date_keys = array('post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
|
66 |
+
|
67 |
+
if (in_array($key, $numeric_keys)) $compare = "number";
|
68 |
+
if (in_array($key, $date_keys)) $compare = "date";
|
69 |
+
|
70 |
+
if ('rand' == $key) {
|
71 |
+
if (is_numeric($dir)) srand($dir);
|
72 |
+
}
|
73 |
+
else {
|
74 |
+
$dir = strtolower($dir);
|
75 |
+
if ($dir != "asc") $dir = "desc";
|
76 |
+
}
|
77 |
+
|
78 |
+
return array($key, $dir, $compare);
|
79 |
+
}
|
80 |
+
|
81 |
+
/*
|
82 |
+
* Fetches the key values for the item pair. If random order is required, will randomize the order.
|
83 |
+
*/
|
84 |
+
function relevanssi_get_compare_keys($key, $item_1, $item_2) {
|
85 |
+
function_exists('mb_strtolower') ? $strtolower = 'mb_strtolower' : $strtolower = 'strtolower';
|
86 |
+
|
87 |
+
if ($key == "rand") {
|
88 |
+
do {
|
89 |
+
$key1 = rand();
|
90 |
+
$key2 = rand();
|
91 |
+
} while ($key1 == $key2);
|
92 |
+
return array($key1, $key2);
|
93 |
+
}
|
94 |
+
|
95 |
+
$key1 = "";
|
96 |
+
$key2 = "";
|
97 |
+
|
98 |
+
if ($key == "meta_value" || $key == "meta_value_num") {
|
99 |
+
global $wp_query;
|
100 |
+
$key = $wp_query->query_vars['meta_key'];
|
101 |
+
if (!isset($key)) return array("", "");
|
102 |
+
|
103 |
+
$key1 = get_post_meta($item_1->ID, $key, true);
|
104 |
+
if (empty($key1)) $key1 = apply_filters('relevanssi_missing_sort_key', $key1, $key);
|
105 |
+
|
106 |
+
$key2 = get_post_meta($item_2->ID, $key, true);
|
107 |
+
if (empty($key2)) $key2 = apply_filters('relevanssi_missing_sort_key', $key2, $key);
|
108 |
+
}
|
109 |
+
else {
|
110 |
+
if (isset($item_1->$key)) {
|
111 |
+
$key1 = call_user_func($strtolower, $item_1->$key);
|
112 |
+
}
|
113 |
+
else {
|
114 |
+
$key1 = apply_filters('relevanssi_missing_sort_key', $key1, $key);
|
115 |
+
}
|
116 |
+
if (isset($item_2->$key)) {
|
117 |
+
$key2 = call_user_func($strtolower, $item_2->$key);
|
118 |
+
}
|
119 |
+
else {
|
120 |
+
$key2 = apply_filters('relevanssi_missing_sort_key', $key2, $key);
|
121 |
+
}
|
122 |
+
}
|
123 |
+
return array($key1, $key2);
|
124 |
+
}
|
125 |
+
|
126 |
+
function relevanssi_compare_keys($key1, $key2, $compare) {
|
127 |
+
$val = 0;
|
128 |
+
if ($compare == "date") {
|
129 |
+
if (strtotime($key1) > strtotime($key2)) {
|
130 |
+
$val = 1;
|
131 |
+
}
|
132 |
+
else if (strtotime($key1) < strtome($key2)) {
|
133 |
+
$val = -1;
|
134 |
+
}
|
135 |
+
}
|
136 |
+
else if ($compare == "string") {
|
137 |
+
$val = relevanssi_mb_strcasecmp($key1, $key2);
|
138 |
+
}
|
139 |
+
else {
|
140 |
+
if ($key1 > $key2) {
|
141 |
+
$val = 1;
|
142 |
+
}
|
143 |
+
else if ($key1 < $key2) {
|
144 |
+
$val = -1;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
return $val;
|
148 |
+
}
|
149 |
+
|
150 |
+
function relevanssi_mb_strcasecmp($str1, $str2, $encoding = null) {
|
151 |
+
if (!function_exists('mb_internal_encoding')) {
|
152 |
+
return strcasecmp($str1, $str2);
|
153 |
+
}
|
154 |
+
else {
|
155 |
+
if (null === $encoding) $encoding = mb_internal_encoding();
|
156 |
+
return strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding));
|
157 |
+
}
|
158 |
+
}
|
159 |
+
|
160 |
/**
|
161 |
* Function by Matthew Hood http://my.php.net/manual/en/function.sort.php#75036
|
162 |
*/
|
163 |
+
function relevanssi_object_sort(&$data, $orderby) {
|
164 |
+
$keys = array();
|
165 |
+
$dirs = array();
|
166 |
+
$compares = array();
|
167 |
+
do {
|
168 |
+
list($key, $dir, $compare) = relevanssi_get_next_key($orderby);
|
169 |
+
if ($key != null) {
|
170 |
+
$keys[] = $key;
|
171 |
+
$dirs[] = $dir;
|
172 |
+
$compares[] = $compare;
|
173 |
+
}
|
174 |
+
} while ($key != null);
|
175 |
+
|
176 |
+
$primary_key = $keys[0];
|
177 |
+
if (!isset($data[0]->$primary_key)) return; // trying to sort by a non-existent key
|
178 |
+
|
179 |
+
for ($i = count($data) - 1; $i >= 0; $i--) {
|
180 |
+
$swapped = false;
|
181 |
+
for ($j = 0; $j < $i; $j++) {
|
182 |
+
$key1 = "";
|
183 |
+
$key2 = "";
|
184 |
+
|
185 |
+
$level = -1;
|
186 |
+
|
187 |
+
$compare = $compares[$level];
|
188 |
+
$val = relevanssi_compare_keys($key1, $key2, $compare);
|
189 |
+
|
190 |
+
while ($val == 0) {
|
191 |
+
$level++;
|
192 |
+
if (!isset($keys[$level])) {
|
193 |
+
$level--;
|
194 |
+
break; // give up – we can't sort these two
|
195 |
+
}
|
196 |
+
list($key1, $key2) = relevanssi_get_compare_keys($keys[$level], $data[$j], $data[$j + 1]);
|
197 |
+
$val = relevanssi_compare_keys($key1, $key2, $compare);
|
198 |
+
}
|
199 |
+
|
200 |
+
if ('asc' == $dirs[$level]) {
|
201 |
+
if ($val == 1) {
|
202 |
+
$tmp = $data[$j];
|
203 |
+
$data[$j] = $data[$j + 1];
|
204 |
+
$data[$j + 1] = $tmp;
|
205 |
+
$swapped = true;
|
206 |
+
}
|
207 |
+
}
|
208 |
+
else {
|
209 |
+
if ($val == -1) {
|
210 |
+
$tmp = $data[$j];
|
211 |
+
$data[$j] = $data[$j + 1];
|
212 |
+
$data[$j + 1] = $tmp;
|
213 |
+
$swapped = true;
|
214 |
+
}
|
215 |
+
}
|
216 |
+
}
|
217 |
+
if (!$swapped) return;
|
218 |
+
}
|
219 |
+
}
|
220 |
|
221 |
function relevanssi_show_matches($data, $hit) {
|
222 |
isset($data['body_matches'][$hit]) ? $body = $data['body_matches'][$hit] : $body = 0;
|
235 |
$total_hits += $hits;
|
236 |
}
|
237 |
|
238 |
+
$text = stripslashes(get_option('relevanssi_show_matches_text'));
|
239 |
$replace_these = array("%body%", "%title%", "%tags%", "%categories%", "%taxonomies%", "%comments%", "%score%", "%terms%", "%total%");
|
240 |
$replacements = array($body, $title, $tag, $category, $taxonomy, $comment, $score, $term_hits, $total_hits);
|
241 |
|
308 |
$current_user = wp_get_current_user();
|
309 |
$access = Groups_Post_Access::user_can_read_post($doc, $current_user->ID);
|
310 |
}
|
311 |
+
else if (defined('SIMPLE_WP_MEMBERSHIP_VER')) {
|
312 |
+
// Simple Membership
|
313 |
+
$access_ctrl = SwpmAccessControl::get_instance();
|
314 |
+
$access = $access_ctrl->can_i_read_post($post);
|
315 |
+
}
|
316 |
else {
|
317 |
// Basic WordPress version
|
318 |
$type = relevanssi_get_post_type($doc);
|
881 |
echo $s . "\n";
|
882 |
}
|
883 |
}
|
|
|
|
lib/indexing.php
CHANGED
@@ -448,6 +448,16 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
|
|
448 |
remove_shortcode('tc_process_payment');
|
449 |
remove_shortcode('maxmegamenu'); // Max Mega Menu
|
450 |
remove_shortcode('searchandfilter'); // Search and Filter
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
|
452 |
$post_before_shortcode = $post;
|
453 |
$contents = do_shortcode($contents);
|
@@ -462,10 +472,7 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
|
|
462 |
}
|
463 |
}
|
464 |
else {
|
465 |
-
|
466 |
-
// WP 2.5 doesn't have the function
|
467 |
-
$contents = strip_shortcodes($contents);
|
468 |
-
}
|
469 |
}
|
470 |
|
471 |
remove_shortcode('noindex');
|
448 |
remove_shortcode('tc_process_payment');
|
449 |
remove_shortcode('maxmegamenu'); // Max Mega Menu
|
450 |
remove_shortcode('searchandfilter'); // Search and Filter
|
451 |
+
remove_shortcode('downloads'); // Easy Digital Downloads
|
452 |
+
remove_shortcode('download_history');
|
453 |
+
remove_shortcode('purchase_history');
|
454 |
+
remove_shortcode('download_checkout');
|
455 |
+
remove_shortcode('purchase_link');
|
456 |
+
remove_shortcode('download_cart');
|
457 |
+
remove_shortcode('edd_profile_editor');
|
458 |
+
remove_shortcode('edd_login');
|
459 |
+
remove_shortcode('edd_register');
|
460 |
+
remove_shortcode('swpm_protected'); // Simple Membership Partially Protected content
|
461 |
|
462 |
$post_before_shortcode = $post;
|
463 |
$contents = do_shortcode($contents);
|
472 |
}
|
473 |
}
|
474 |
else {
|
475 |
+
$contents = strip_shortcodes($contents);
|
|
|
|
|
|
|
476 |
}
|
477 |
|
478 |
remove_shortcode('noindex');
|
lib/search.php
CHANGED
@@ -729,16 +729,25 @@ function relevanssi_search($args) {
|
|
729 |
if (empty($orderby)) $orderby = $default_order;
|
730 |
// the sorting function checks for non-existing keys, cannot whitelist here
|
731 |
|
732 |
-
if (
|
733 |
-
|
734 |
-
|
735 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
736 |
|
737 |
-
|
738 |
-
|
739 |
|
740 |
-
|
741 |
-
|
|
|
|
|
|
|
742 |
|
743 |
$return = array('hits' => $hits, 'body_matches' => $body_matches, 'title_matches' => $title_matches,
|
744 |
'tag_matches' => $tag_matches, 'category_matches' => $category_matches, 'taxonomy_matches' => $taxonomy_matches,
|
@@ -1210,7 +1219,7 @@ function relevanssi_do_query(&$query) {
|
|
1210 |
}
|
1211 |
|
1212 |
//Added by OdditY - Highlight Result Title too ->
|
1213 |
-
if("on" == get_option('relevanssi_hilite_title')){
|
1214 |
if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
|
1215 |
$post->post_highlighted_title = strip_tags(qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($post->post_title));
|
1216 |
}
|
729 |
if (empty($orderby)) $orderby = $default_order;
|
730 |
// the sorting function checks for non-existing keys, cannot whitelist here
|
731 |
|
732 |
+
if (is_array($orderby)) {
|
733 |
+
$orderby = apply_filters('relevanssi_orderby', $orderby);
|
734 |
+
|
735 |
+
relevanssi_object_sort($hits, $orderby);
|
736 |
+
}
|
737 |
+
else {
|
738 |
+
if (empty($order)) $order = 'desc';
|
739 |
+
$order = strtolower($order);
|
740 |
+
$order_accepted_values = array('asc', 'desc');
|
741 |
+
if (!in_array($order, $order_accepted_values)) $order = 'desc';
|
742 |
|
743 |
+
$orderby = apply_filters('relevanssi_orderby', $orderby);
|
744 |
+
$order = apply_filters('relevanssi_order', $order);
|
745 |
|
746 |
+
if ($orderby != 'relevance') {
|
747 |
+
$orderby_array = array($orderby => $order);
|
748 |
+
relevanssi_object_sort($hits, $orderby_array);
|
749 |
+
}
|
750 |
+
}
|
751 |
|
752 |
$return = array('hits' => $hits, 'body_matches' => $body_matches, 'title_matches' => $title_matches,
|
753 |
'tag_matches' => $tag_matches, 'category_matches' => $category_matches, 'taxonomy_matches' => $taxonomy_matches,
|
1219 |
}
|
1220 |
|
1221 |
//Added by OdditY - Highlight Result Title too ->
|
1222 |
+
if("on" == get_option('relevanssi_hilite_title') && empty($fields)){
|
1223 |
if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
|
1224 |
$post->post_highlighted_title = strip_tags(qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($post->post_title));
|
1225 |
}
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: search, relevance, better search
|
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.9
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 3.6.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -269,6 +269,14 @@ Each document database is full of useless words. All the little words that appea
|
|
269 |
|
270 |
== Changelog ==
|
271 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
= 3.6.1 =
|
273 |
* 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.
|
274 |
* Search and Filter shortcode is added to the blacklist.
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.9
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 3.6.2
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
269 |
|
270 |
== Changelog ==
|
271 |
|
272 |
+
= 3.6.2 =
|
273 |
+
* Simple Membership plugin is now supported automatically to restrict access to posts.
|
274 |
+
* Relevanssi can now handle orderby parameter in array format.
|
275 |
+
* Relevanssi now blocks Easy Digital Downloads shortcodes when indexing to improve compatibility with EDD.
|
276 |
+
* When using `fields` to only fetch post IDs, Relevanssi doesn't try to highlight post titles.
|
277 |
+
* New action: `relevanssi_update_options` lets you adjust Relevanssi options immediately after the defaults are set.
|
278 |
+
* Remove notices about duplicated database columns when installing the plugin.
|
279 |
+
|
280 |
= 3.6.1 =
|
281 |
* 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.
|
282 |
* Search and Filter shortcode is added to the blacklist.
|
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.6.
|
7 |
Author: Mikko Saari
|
8 |
Author URI: http://www.mikkosaari.fi/
|
9 |
*/
|
@@ -287,6 +287,8 @@ function _relevanssi_install() {
|
|
287 |
add_option('relevanssi_index_post_types', $relevanssi_variables['post_type_index_defaults']);
|
288 |
add_option('relevanssi_index_taxonomies_list', array());
|
289 |
|
|
|
|
|
290 |
relevanssi_create_database_tables($relevanssi_variables['database_version']);
|
291 |
}
|
292 |
|
@@ -359,19 +361,7 @@ EOH;
|
|
359 |
|
360 |
function relevanssi_sidebar() {
|
361 |
$tweet = 'http://twitter.com/home?status=' . urlencode("I'm using Relevanssi, a better search for WordPress. http://wordpress.org/extend/plugins/relevanssi/ #relevanssi #wordpress");
|
362 |
-
|
363 |
-
global $wp_version;
|
364 |
-
if (version_compare($wp_version, '2.8dev', '>' )) {
|
365 |
-
$facebooklogo = plugins_url('facebooklogo.jpg', __FILE__);
|
366 |
-
}
|
367 |
-
else {
|
368 |
-
$facebooklogo = plugins_url('relevanssi/facebooklogo.jpg');
|
369 |
-
}
|
370 |
-
}
|
371 |
-
else {
|
372 |
-
// We can't check, so let's assume something sensible
|
373 |
-
$facebooklogo = '/wp-content/plugins/relevanssi/facebooklogo.jpg';
|
374 |
-
}
|
375 |
|
376 |
echo <<<EOH
|
377 |
<div class="postbox-container" style="width:20%; margin-top: 35px; margin-left: 15px;">
|
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.6.2
|
7 |
Author: Mikko Saari
|
8 |
Author URI: http://www.mikkosaari.fi/
|
9 |
*/
|
287 |
add_option('relevanssi_index_post_types', $relevanssi_variables['post_type_index_defaults']);
|
288 |
add_option('relevanssi_index_taxonomies_list', array());
|
289 |
|
290 |
+
do_action('relevanssi_update_options');
|
291 |
+
|
292 |
relevanssi_create_database_tables($relevanssi_variables['database_version']);
|
293 |
}
|
294 |
|
361 |
|
362 |
function relevanssi_sidebar() {
|
363 |
$tweet = 'http://twitter.com/home?status=' . urlencode("I'm using Relevanssi, a better search for WordPress. http://wordpress.org/extend/plugins/relevanssi/ #relevanssi #wordpress");
|
364 |
+
$facebooklogo = plugins_url('facebooklogo.jpg', __FILE__);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
|
366 |
echo <<<EOH
|
367 |
<div class="postbox-container" style="width:20%; margin-top: 35px; margin-left: 15px;">
|