Version Description
- New feature: New filter hook
relevanssi_phrase_queries
can be used to add phrase matching queries to support more content types. - New feature: New filter hook
relevanssi_excerpt_gap
lets you adjust the first line of excerpt optimization. - Changed behaviour: The
relevanssi_admin_search_element
filter hook now gets the post object as the second parameter, rendering the filter hook more useful. - Changed behaviour: Relevanssi now automatically optimizes excerpt creation in long posts. You can still use
relevanssi_optimize_excerpts
for further optimization, but it's probably not necessary. - Changed behaviour: The
relevanssi_tag_before_tokenize
filter hook parameters were changed in order to be actually useful and to match what the filter hook is supposed to do. - Minor fix: In some cases Relevanssi wouldn't highlight the last word of the title. This is more reliable now.
- Minor fix: Relevanssi will now add the
highlight
parameter only to search results, and not to other links on the search results page. - Minor fix: Improved fringe cases in nested taxonomy queries.
- Minor fix: Taxonomy terms in WPML were not indexed correctly. Instead of the post language, the current language was used, so if your admin dashboard is in English, German posts would get English translations of the terms, not German. This is now fixed.
- Minor fix: Excerpt creation is now faster when multiple excerpts are not used.
- Minor fix: The SEO plugin noindex setting did not actually work. That has been fixed now.
Download this release
Release Info
Developer | msaari |
Plugin | Relevanssi – A Better Search |
Version | 4.12.0 |
Comparing to | |
See all releases |
Code changes from version 4.11.0 to 4.12.0
- lib/admin-ajax.php +4 -2
- lib/common.php +18 -9
- lib/compatibility/aioseo.php +7 -0
- lib/compatibility/rankmath.php +7 -0
- lib/compatibility/seoframework.php +8 -0
- lib/compatibility/seopress.php +8 -0
- lib/compatibility/wpml.php +43 -0
- lib/compatibility/yoast-seo.php +8 -0
- lib/didyoumean.php +5 -0
- lib/excerpts-highlights.php +84 -4
- lib/indexing.php +20 -9
- lib/init.php +1 -1
- lib/options.php +1 -0
- lib/phrases.php +45 -43
- lib/search-tax-query.php +39 -27
- lib/sorting.php +3 -0
- lib/tabs/debugging-tab.php +3 -0
- lib/utils.php +50 -13
- readme.txt +24 -4
- relevanssi.php +2 -2
- relevanssi.po +443 -269
lib/admin-ajax.php
CHANGED
@@ -268,11 +268,13 @@ EOH;
|
|
268 |
/**
|
269 |
* Filters the admin search results element.
|
270 |
*
|
271 |
-
* The post element is a <li> element. Feel free to edit the element any
|
|
|
272 |
*
|
273 |
* @param string $post_element The post element.
|
|
|
274 |
*/
|
275 |
-
$result .= apply_filters( 'relevanssi_admin_search_element', $post_element );
|
276 |
if ( isset( $post->blog_id ) ) {
|
277 |
restore_current_blog();
|
278 |
}
|
268 |
/**
|
269 |
* Filters the admin search results element.
|
270 |
*
|
271 |
+
* The post element is a <li> element. Feel free to edit the element any
|
272 |
+
* way you want to.
|
273 |
*
|
274 |
* @param string $post_element The post element.
|
275 |
+
* @param object $post The post object.
|
276 |
*/
|
277 |
+
$result .= apply_filters( 'relevanssi_admin_search_element', $post_element, $post );
|
278 |
if ( isset( $post->blog_id ) ) {
|
279 |
restore_current_blog();
|
280 |
}
|
lib/common.php
CHANGED
@@ -299,9 +299,8 @@ function relevanssi_remove_punct( $a ) {
|
|
299 |
}
|
300 |
|
301 |
$a = preg_replace( '/<(\d|\s)/', '\1', $a );
|
302 |
-
|
303 |
$a = html_entity_decode( $a, ENT_QUOTES );
|
304 |
-
$a =
|
305 |
|
306 |
$punct_options = get_option( 'relevanssi_punctuation' );
|
307 |
|
@@ -528,7 +527,14 @@ function relevanssi_prevent_default_request( $request, $query ) {
|
|
528 |
* @return int[] An array of tokens as the keys and their frequency as the
|
529 |
* value.
|
530 |
*/
|
531 |
-
function relevanssi_tokenize( $string, $remove_stops = true, $min_word_length = -1 ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
$tokens = array();
|
533 |
if ( is_array( $string ) ) {
|
534 |
// If we get an array, tokenize each string in the array.
|
@@ -593,12 +599,12 @@ function relevanssi_tokenize( $string, $remove_stops = true, $min_word_length =
|
|
593 |
$accept = false;
|
594 |
}
|
595 |
|
596 |
-
if ( RELEVANSSI_PREMIUM ) {
|
597 |
/**
|
598 |
* Fires Premium tokenizer.
|
599 |
*
|
600 |
-
* Filters the token through the Relevanssi Premium tokenizer to add
|
601 |
-
* Premium features to the tokenizing (mostly stemming).
|
602 |
*
|
603 |
* @param string $token Search query token.
|
604 |
*/
|
@@ -924,8 +930,8 @@ function relevanssi_add_highlight( $permalink, $link_post = null ) {
|
|
924 |
* @global object $post The global post object.
|
925 |
*
|
926 |
* @param string $link The link to adjust.
|
927 |
-
* @param object|int $link_post The post to modify, either WP post object or the
|
928 |
-
* ID. If null, use global $post. Defaults null.
|
929 |
*
|
930 |
* @return string The modified link.
|
931 |
*/
|
@@ -941,7 +947,7 @@ function relevanssi_permalink( $link, $link_post = null ) {
|
|
941 |
$link = $link_post->relevanssi_link;
|
942 |
}
|
943 |
|
944 |
-
if ( is_search() ) {
|
945 |
$link = relevanssi_add_highlight( $link, $link_post );
|
946 |
}
|
947 |
return $link;
|
@@ -1088,6 +1094,9 @@ function relevanssi_get_forbidden_post_types() {
|
|
1088 |
'acfe-dop', // ACF Extended.
|
1089 |
'acfe-dpt', // ACF Extended.
|
1090 |
'acfe-dt', // ACF Extended.
|
|
|
|
|
|
|
1091 |
);
|
1092 |
}
|
1093 |
|
299 |
}
|
300 |
|
301 |
$a = preg_replace( '/<(\d|\s)/', '\1', $a );
|
|
|
302 |
$a = html_entity_decode( $a, ENT_QUOTES );
|
303 |
+
$a = relevanssi_strip_all_tags( $a );
|
304 |
|
305 |
$punct_options = get_option( 'relevanssi_punctuation' );
|
306 |
|
527 |
* @return int[] An array of tokens as the keys and their frequency as the
|
528 |
* value.
|
529 |
*/
|
530 |
+
function relevanssi_tokenize( $string, $remove_stops = true, int $min_word_length = -1 ) : array {
|
531 |
+
$string_for_phrases = is_array( $string ) ? implode( ' ', $string ) : $string;
|
532 |
+
$phrases = relevanssi_extract_phrases( $string_for_phrases );
|
533 |
+
$phrase_words = array();
|
534 |
+
foreach ( $phrases as $phrase ) {
|
535 |
+
$phrase_words = array_merge( $phrase_words, explode( ' ', $phrase ) );
|
536 |
+
}
|
537 |
+
|
538 |
$tokens = array();
|
539 |
if ( is_array( $string ) ) {
|
540 |
// If we get an array, tokenize each string in the array.
|
599 |
$accept = false;
|
600 |
}
|
601 |
|
602 |
+
if ( RELEVANSSI_PREMIUM && ! in_array( $token, $phrase_words, true ) ) {
|
603 |
/**
|
604 |
* Fires Premium tokenizer.
|
605 |
*
|
606 |
+
* Filters the token through the Relevanssi Premium tokenizer to add
|
607 |
+
* some Premium features to the tokenizing (mostly stemming).
|
608 |
*
|
609 |
* @param string $token Search query token.
|
610 |
*/
|
930 |
* @global object $post The global post object.
|
931 |
*
|
932 |
* @param string $link The link to adjust.
|
933 |
+
* @param object|int $link_post The post to modify, either WP post object or the
|
934 |
+
* post ID. If null, use global $post. Defaults null.
|
935 |
*
|
936 |
* @return string The modified link.
|
937 |
*/
|
947 |
$link = $link_post->relevanssi_link;
|
948 |
}
|
949 |
|
950 |
+
if ( is_search() && isset( $link_post->relevance_score ) ) {
|
951 |
$link = relevanssi_add_highlight( $link, $link_post );
|
952 |
}
|
953 |
return $link;
|
1094 |
'acfe-dop', // ACF Extended.
|
1095 |
'acfe-dpt', // ACF Extended.
|
1096 |
'acfe-dt', // ACF Extended.
|
1097 |
+
'um_form', // Ultimate Member.
|
1098 |
+
'um_directory', // Ultimate Member.
|
1099 |
+
'mailpoet_page', // Mailpoet Page.
|
1100 |
);
|
1101 |
}
|
1102 |
|
lib/compatibility/aioseo.php
CHANGED
@@ -27,6 +27,9 @@ add_action( 'relevanssi_indexing_options', 'relevanssi_aioseo_options' );
|
|
27 |
* 'aioseo_seo'. The value may also be a boolean.
|
28 |
*/
|
29 |
function relevanssi_aioseo_noindex( bool $do_not_index, int $post_id ) {
|
|
|
|
|
|
|
30 |
$noindex_posts = relevanssi_aioseo_get_noindex_posts();
|
31 |
if ( in_array( $post_id, $noindex_posts, true ) ) {
|
32 |
$do_not_index = 'All-in-One SEO';
|
@@ -44,6 +47,10 @@ function relevanssi_aioseo_noindex( bool $do_not_index, int $post_id ) {
|
|
44 |
* query restriction to modify, 'reason' for the reason of restriction.
|
45 |
*/
|
46 |
function relevanssi_aioseo_exclude( array $restriction ) {
|
|
|
|
|
|
|
|
|
47 |
global $wpdb;
|
48 |
|
49 |
$restriction['mysql'] .= " AND post.ID NOT IN (SELECT post_id FROM
|
27 |
* 'aioseo_seo'. The value may also be a boolean.
|
28 |
*/
|
29 |
function relevanssi_aioseo_noindex( bool $do_not_index, int $post_id ) {
|
30 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
31 |
+
return $do_not_index;
|
32 |
+
}
|
33 |
$noindex_posts = relevanssi_aioseo_get_noindex_posts();
|
34 |
if ( in_array( $post_id, $noindex_posts, true ) ) {
|
35 |
$do_not_index = 'All-in-One SEO';
|
47 |
* query restriction to modify, 'reason' for the reason of restriction.
|
48 |
*/
|
49 |
function relevanssi_aioseo_exclude( array $restriction ) {
|
50 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
51 |
+
return $restriction;
|
52 |
+
}
|
53 |
+
|
54 |
global $wpdb;
|
55 |
|
56 |
$restriction['mysql'] .= " AND post.ID NOT IN (SELECT post_id FROM
|
lib/compatibility/rankmath.php
CHANGED
@@ -26,6 +26,9 @@ add_action( 'relevanssi_indexing_options', 'relevanssi_rankmath_options' );
|
|
26 |
* 'RankMath'. The value may also be a boolean.
|
27 |
*/
|
28 |
function relevanssi_rankmath_noindex( $do_not_index, $post_id ) {
|
|
|
|
|
|
|
29 |
$noindex = get_post_meta( $post_id, 'rank_math_robots', true );
|
30 |
if ( is_array( $noindex ) && in_array( 'noindex', $noindex, true ) ) {
|
31 |
$do_not_index = 'RankMath';
|
@@ -43,6 +46,10 @@ function relevanssi_rankmath_noindex( $do_not_index, $post_id ) {
|
|
43 |
* query restriction to modify, 'reason' for the reason of restriction.
|
44 |
*/
|
45 |
function relevanssi_rankmath_exclude( $restriction ) {
|
|
|
|
|
|
|
|
|
46 |
global $wpdb;
|
47 |
|
48 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
26 |
* 'RankMath'. The value may also be a boolean.
|
27 |
*/
|
28 |
function relevanssi_rankmath_noindex( $do_not_index, $post_id ) {
|
29 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
30 |
+
return $do_not_index;
|
31 |
+
}
|
32 |
$noindex = get_post_meta( $post_id, 'rank_math_robots', true );
|
33 |
if ( is_array( $noindex ) && in_array( 'noindex', $noindex, true ) ) {
|
34 |
$do_not_index = 'RankMath';
|
46 |
* query restriction to modify, 'reason' for the reason of restriction.
|
47 |
*/
|
48 |
function relevanssi_rankmath_exclude( $restriction ) {
|
49 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
50 |
+
return $restriction;
|
51 |
+
}
|
52 |
+
|
53 |
global $wpdb;
|
54 |
|
55 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
lib/compatibility/seoframework.php
CHANGED
@@ -28,6 +28,10 @@ add_action( 'relevanssi_indexing_options', 'relevanssi_seoframework_options' );
|
|
28 |
* 'SEO Framework'. The value may also be a boolean.
|
29 |
*/
|
30 |
function relevanssi_seoframework_noindex( $do_not_index, $post_id ) {
|
|
|
|
|
|
|
|
|
31 |
$noindex = get_post_meta( $post_id, 'exclude_local_search', true );
|
32 |
if ( '1' === $noindex ) {
|
33 |
$do_not_index = 'SEO Framework';
|
@@ -46,6 +50,10 @@ function relevanssi_seoframework_noindex( $do_not_index, $post_id ) {
|
|
46 |
* query restriction to modify, 'reason' for the reason of restriction.
|
47 |
*/
|
48 |
function relevanssi_seoframework_exclude( $restriction ) {
|
|
|
|
|
|
|
|
|
49 |
global $wpdb;
|
50 |
|
51 |
$restriction['mysql'] .= " AND post.ID NOT IN (SELECT post_id FROM
|
28 |
* 'SEO Framework'. The value may also be a boolean.
|
29 |
*/
|
30 |
function relevanssi_seoframework_noindex( $do_not_index, $post_id ) {
|
31 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
32 |
+
return $do_not_index;
|
33 |
+
}
|
34 |
+
|
35 |
$noindex = get_post_meta( $post_id, 'exclude_local_search', true );
|
36 |
if ( '1' === $noindex ) {
|
37 |
$do_not_index = 'SEO Framework';
|
50 |
* query restriction to modify, 'reason' for the reason of restriction.
|
51 |
*/
|
52 |
function relevanssi_seoframework_exclude( $restriction ) {
|
53 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
54 |
+
return $restriction;
|
55 |
+
}
|
56 |
+
|
57 |
global $wpdb;
|
58 |
|
59 |
$restriction['mysql'] .= " AND post.ID NOT IN (SELECT post_id FROM
|
lib/compatibility/seopress.php
CHANGED
@@ -28,6 +28,10 @@ add_action( 'relevanssi_indexing_options', 'relevanssi_seopress_options' );
|
|
28 |
* 'seopress'. The value may also be a boolean.
|
29 |
*/
|
30 |
function relevanssi_seopress_noindex( $do_not_index, $post_id ) {
|
|
|
|
|
|
|
|
|
31 |
$noindex = get_post_meta( $post_id, '_seopress_robots_index', true );
|
32 |
if ( 'yes' === $noindex ) {
|
33 |
$do_not_index = 'SEOPress';
|
@@ -45,6 +49,10 @@ function relevanssi_seopress_noindex( $do_not_index, $post_id ) {
|
|
45 |
* query restriction to modify, 'reason' for the reason of restriction.
|
46 |
*/
|
47 |
function relevanssi_seopress_exclude( $restriction ) {
|
|
|
|
|
|
|
|
|
48 |
global $wpdb;
|
49 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
50 |
if ( is_string( $restriction ) ) {
|
28 |
* 'seopress'. The value may also be a boolean.
|
29 |
*/
|
30 |
function relevanssi_seopress_noindex( $do_not_index, $post_id ) {
|
31 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
32 |
+
return $do_not_index;
|
33 |
+
}
|
34 |
+
|
35 |
$noindex = get_post_meta( $post_id, '_seopress_robots_index', true );
|
36 |
if ( 'yes' === $noindex ) {
|
37 |
$do_not_index = 'SEOPress';
|
49 |
* query restriction to modify, 'reason' for the reason of restriction.
|
50 |
*/
|
51 |
function relevanssi_seopress_exclude( $restriction ) {
|
52 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
53 |
+
return $restriction;
|
54 |
+
}
|
55 |
+
|
56 |
global $wpdb;
|
57 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
58 |
if ( is_string( $restriction ) ) {
|
lib/compatibility/wpml.php
CHANGED
@@ -11,6 +11,7 @@
|
|
11 |
*/
|
12 |
|
13 |
add_filter( 'relevanssi_hits_filter', 'relevanssi_wpml_filter' );
|
|
|
14 |
|
15 |
/**
|
16 |
* Filters posts based on WPML language.
|
@@ -104,3 +105,45 @@ function relevanssi_wpml_filter( $data ) {
|
|
104 |
|
105 |
return $data;
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
*/
|
12 |
|
13 |
add_filter( 'relevanssi_hits_filter', 'relevanssi_wpml_filter' );
|
14 |
+
add_filter( 'relevanssi_tag_before_tokenize', 'relevanssi_wpml_term_fix', 10, 4 );
|
15 |
|
16 |
/**
|
17 |
* Filters posts based on WPML language.
|
105 |
|
106 |
return $data;
|
107 |
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Fixes translated term indexing for WPML.
|
111 |
+
*
|
112 |
+
* WPML indexed translated terms based on current admin language, not the post
|
113 |
+
* language. This filter changes the term indexing to match the post language.
|
114 |
+
*
|
115 |
+
* @param string $term_content All terms in the taxonomy as a string.
|
116 |
+
* @param array $terms All the term objects in the current taxonomy.
|
117 |
+
* @param string $taxonomy The taxonomy name.
|
118 |
+
* @param int $post_id The post ID.
|
119 |
+
*
|
120 |
+
* @return string The term names as a string.
|
121 |
+
*/
|
122 |
+
function relevanssi_wpml_term_fix( string $term_content, array $terms, string $taxonomy, int $post_id ) {
|
123 |
+
$post_language = apply_filters( 'wpml_post_language_details', null, $post_id );
|
124 |
+
if ( ! is_wp_error( $post_language ) ) {
|
125 |
+
$term_content = '';
|
126 |
+
|
127 |
+
global $sitepress;
|
128 |
+
remove_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ), 1, 1 );
|
129 |
+
|
130 |
+
foreach ( $terms as $term ) {
|
131 |
+
$term = get_term(
|
132 |
+
apply_filters(
|
133 |
+
'wpml_object_id',
|
134 |
+
$term->term_id,
|
135 |
+
$taxonomy,
|
136 |
+
true,
|
137 |
+
$post_language['language_code']
|
138 |
+
),
|
139 |
+
$taxonomy
|
140 |
+
);
|
141 |
+
|
142 |
+
$term_content .= ' ' . $term->name;
|
143 |
+
}
|
144 |
+
|
145 |
+
add_filter( 'get_term', array( $sitepress, 'get_term_adjust_id' ), 1, 1 );
|
146 |
+
}
|
147 |
+
|
148 |
+
return $term_content;
|
149 |
+
}
|
lib/compatibility/yoast-seo.php
CHANGED
@@ -27,6 +27,10 @@ add_action( 'relevanssi_indexing_options', 'relevanssi_yoast_options' );
|
|
27 |
* 'yoast_seo'. The value may also be a boolean.
|
28 |
*/
|
29 |
function relevanssi_yoast_noindex( $do_not_index, $post_id ) {
|
|
|
|
|
|
|
|
|
30 |
$noindex = get_post_meta( $post_id, '_yoast_wpseo_meta-robots-noindex', true );
|
31 |
if ( '1' === $noindex ) {
|
32 |
$do_not_index = 'Yoast SEO';
|
@@ -44,6 +48,10 @@ function relevanssi_yoast_noindex( $do_not_index, $post_id ) {
|
|
44 |
* query restriction to modify, 'reason' for the reason of restriction.
|
45 |
*/
|
46 |
function relevanssi_yoast_exclude( $restriction ) {
|
|
|
|
|
|
|
|
|
47 |
global $wpdb;
|
48 |
|
49 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
27 |
* 'yoast_seo'. The value may also be a boolean.
|
28 |
*/
|
29 |
function relevanssi_yoast_noindex( $do_not_index, $post_id ) {
|
30 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
31 |
+
return $do_not_index;
|
32 |
+
}
|
33 |
+
|
34 |
$noindex = get_post_meta( $post_id, '_yoast_wpseo_meta-robots-noindex', true );
|
35 |
if ( '1' === $noindex ) {
|
36 |
$do_not_index = 'Yoast SEO';
|
48 |
* query restriction to modify, 'reason' for the reason of restriction.
|
49 |
*/
|
50 |
function relevanssi_yoast_exclude( $restriction ) {
|
51 |
+
if ( 'on' !== get_option( 'relevanssi_seo_noindex' ) ) {
|
52 |
+
return $restriction;
|
53 |
+
}
|
54 |
+
|
55 |
global $wpdb;
|
56 |
|
57 |
// Backwards compatibility code for 2.8.0, remove at some point.
|
lib/didyoumean.php
CHANGED
@@ -142,6 +142,11 @@ function relevanssi_simple_generate_suggestion( $query ) {
|
|
142 |
$q = 'SELECT query, count(query) as c, AVG(hits) as a FROM '
|
143 |
. $relevanssi_variables['log_table'] . ' WHERE hits > ' . $count
|
144 |
. ' GROUP BY query ORDER BY count(query) DESC';
|
|
|
|
|
|
|
|
|
|
|
145 |
$q = apply_filters( 'relevanssi_didyoumean_query', $q );
|
146 |
|
147 |
$data = get_transient( 'relevanssi_didyoumean_query' );
|
142 |
$q = 'SELECT query, count(query) as c, AVG(hits) as a FROM '
|
143 |
. $relevanssi_variables['log_table'] . ' WHERE hits > ' . $count
|
144 |
. ' GROUP BY query ORDER BY count(query) DESC';
|
145 |
+
/**
|
146 |
+
* Filters the MySQL query used to fetch potential suggestions from the log.
|
147 |
+
*
|
148 |
+
* @param string $q MySQL query for fetching the suggestions.
|
149 |
+
*/
|
150 |
$q = apply_filters( 'relevanssi_didyoumean_query', $q );
|
151 |
|
152 |
$data = get_transient( 'relevanssi_didyoumean_query' );
|
lib/excerpts-highlights.php
CHANGED
@@ -250,7 +250,9 @@ function relevanssi_do_excerpt( $t_post, $query, $excerpt_length = null, $excerp
|
|
250 |
}
|
251 |
}
|
252 |
|
253 |
-
|
|
|
|
|
254 |
|
255 |
if ( ! $whole_post_excerpted ) {
|
256 |
if ( ! $excerpt['start'] && ! empty( $excerpt['text'] ) ) {
|
@@ -395,7 +397,7 @@ function relevanssi_create_excerpts( $content, $terms, $query, $excerpt_length =
|
|
395 |
);
|
396 |
$excerpts[] = $excerpt;
|
397 |
} else {
|
398 |
-
if ( function_exists( 'relevanssi_extract_multiple_excerpts' ) ) {
|
399 |
$excerpts = relevanssi_extract_multiple_excerpts(
|
400 |
array_keys( $terms ),
|
401 |
$content,
|
@@ -631,6 +633,11 @@ function relevanssi_highlight_terms( $content, $query, $convert_entities = false
|
|
631 |
$replace = $start_emp_token . '\\1' . $end_emp_token;
|
632 |
}
|
633 |
|
|
|
|
|
|
|
|
|
|
|
634 |
$content = trim(
|
635 |
preg_replace(
|
636 |
$regex,
|
@@ -638,7 +645,6 @@ function relevanssi_highlight_terms( $content, $query, $convert_entities = false
|
|
638 |
' ' . $content
|
639 |
)
|
640 |
);
|
641 |
-
|
642 |
/**
|
643 |
* The method here leaves extra spaces or HTML tag closing brackets
|
644 |
* inside the highlighting. That is cleaned away here.
|
@@ -1135,9 +1141,30 @@ function relevanssi_extract_relevant_words( $terms, $content, $excerpt_length =
|
|
1135 |
$excerpt = '';
|
1136 |
$count_words = count( $words );
|
1137 |
$start = false;
|
|
|
1138 |
|
1139 |
$best_excerpt_term_hits = -1;
|
1140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1141 |
while ( $offset < $count_words ) {
|
1142 |
if ( $offset + $excerpt_length > $count_words ) {
|
1143 |
$offset = $count_words - $excerpt_length;
|
@@ -1175,7 +1202,15 @@ function relevanssi_extract_relevant_words( $terms, $content, $excerpt_length =
|
|
1175 |
}
|
1176 |
}
|
1177 |
|
1178 |
-
$offset += $excerpt_length;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1179 |
}
|
1180 |
|
1181 |
if ( '' === $excerpt ) {
|
@@ -1192,6 +1227,51 @@ function relevanssi_extract_relevant_words( $terms, $content, $excerpt_length =
|
|
1192 |
return array( trim( $excerpt ), $best_excerpt_term_hits, $start );
|
1193 |
}
|
1194 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1195 |
/**
|
1196 |
* Adds accented variations to letters.
|
1197 |
*
|
250 |
}
|
251 |
}
|
252 |
|
253 |
+
if ( ! empty( $excerpt['text'] ) ) {
|
254 |
+
$excerpt['text'] = relevanssi_close_tags( $excerpt['text'] );
|
255 |
+
}
|
256 |
|
257 |
if ( ! $whole_post_excerpted ) {
|
258 |
if ( ! $excerpt['start'] && ! empty( $excerpt['text'] ) ) {
|
397 |
);
|
398 |
$excerpts[] = $excerpt;
|
399 |
} else {
|
400 |
+
if ( function_exists( 'relevanssi_extract_multiple_excerpts' ) && get_option( 'relevanssi_max_excerpts', 1 ) > 1 ) {
|
401 |
$excerpts = relevanssi_extract_multiple_excerpts(
|
402 |
array_keys( $terms ),
|
403 |
$content,
|
633 |
$replace = $start_emp_token . '\\1' . $end_emp_token;
|
634 |
}
|
635 |
|
636 |
+
// Add an extra space so that the regex that looks for a non-word
|
637 |
+
// character after the search term will find one, even if the word is
|
638 |
+
// at the end of the content (especially in titles).
|
639 |
+
$content .= ' ';
|
640 |
+
|
641 |
$content = trim(
|
642 |
preg_replace(
|
643 |
$regex,
|
645 |
' ' . $content
|
646 |
)
|
647 |
);
|
|
|
648 |
/**
|
649 |
* The method here leaves extra spaces or HTML tag closing brackets
|
650 |
* inside the highlighting. That is cleaned away here.
|
1141 |
$excerpt = '';
|
1142 |
$count_words = count( $words );
|
1143 |
$start = false;
|
1144 |
+
$gap = 0;
|
1145 |
|
1146 |
$best_excerpt_term_hits = -1;
|
1147 |
|
1148 |
+
$excerpt_candidates = $count_words / $excerpt_length;
|
1149 |
+
if ( $excerpt_candidates > 200 ) {
|
1150 |
+
/**
|
1151 |
+
* Adjusts the gap between excerpt candidates.
|
1152 |
+
*
|
1153 |
+
* The default value for the gap is number of words / 200 minus the
|
1154 |
+
* excerpt length, which means Relevanssi tries to create 200 excerpts.
|
1155 |
+
*
|
1156 |
+
* @param int The gap between excerpt candidates.
|
1157 |
+
* @param int $count_words The number of words in the content.
|
1158 |
+
* @param int $excerpt_length The length of the excerpt.
|
1159 |
+
*/
|
1160 |
+
$gap = apply_filters(
|
1161 |
+
'relevanssi_excerpt_gap',
|
1162 |
+
floor( $count_words / 200 - $excerpt_length ),
|
1163 |
+
$count_words,
|
1164 |
+
$excerpt_length
|
1165 |
+
);
|
1166 |
+
}
|
1167 |
+
|
1168 |
while ( $offset < $count_words ) {
|
1169 |
if ( $offset + $excerpt_length > $count_words ) {
|
1170 |
$offset = $count_words - $excerpt_length;
|
1202 |
}
|
1203 |
}
|
1204 |
|
1205 |
+
$offset += $excerpt_length + $gap;
|
1206 |
+
}
|
1207 |
+
|
1208 |
+
if ( '' === $excerpt && $gap > 0 ) {
|
1209 |
+
$result = relevanssi_get_first_match( $words, $terms, $excerpt_length );
|
1210 |
+
|
1211 |
+
$excerpt = $result['excerpt'];
|
1212 |
+
$start = $result['start'];
|
1213 |
+
$best_excerpt_term_hits = $result['best_excerpt_term_hits'];
|
1214 |
}
|
1215 |
|
1216 |
if ( '' === $excerpt ) {
|
1227 |
return array( trim( $excerpt ), $best_excerpt_term_hits, $start );
|
1228 |
}
|
1229 |
|
1230 |
+
/**
|
1231 |
+
* Finds the first match in the content.
|
1232 |
+
*
|
1233 |
+
* Looks for search terms in the post content and stops immediately when the
|
1234 |
+
* first match is found. Then an excerpt is returned where the match is in the
|
1235 |
+
* middle of the excerpt.
|
1236 |
+
*
|
1237 |
+
* @param array $words An array of words to look in.
|
1238 |
+
* @param array $terms An array of search terms to look for.
|
1239 |
+
* @param int $excerpt_length The length of the excerpt.
|
1240 |
+
*
|
1241 |
+
* @return array The found excerpt in 'excerpt', a boolean in 'start' that's
|
1242 |
+
* true if the excerpt was from the start of the content and the number of
|
1243 |
+
* matches found in the excerpt in 'best_excerpt_term_hits'.
|
1244 |
+
*/
|
1245 |
+
function relevanssi_get_first_match( array $words, array $terms, int $excerpt_length ) {
|
1246 |
+
$offset = 0;
|
1247 |
+
$excerpt = '';
|
1248 |
+
$start = false;
|
1249 |
+
$best_excerpt_term_hits = 0;
|
1250 |
+
|
1251 |
+
foreach ( $words as $word ) {
|
1252 |
+
if ( in_array( $word, $terms, true ) ) {
|
1253 |
+
$offset = floor( $offset - $excerpt_length / 2 );
|
1254 |
+
if ( $offset < 0 ) {
|
1255 |
+
$offset = 0;
|
1256 |
+
}
|
1257 |
+
$excerpt_slice = array_slice( $words, $offset, $excerpt_length );
|
1258 |
+
$excerpt = ' ' . implode( ' ', $excerpt_slice );
|
1259 |
+
$start = $offset ? false : true;
|
1260 |
+
$count_matches = relevanssi_count_matches( $terms, $excerpt );
|
1261 |
+
|
1262 |
+
$best_excerpt_term_hits = $count_matches;
|
1263 |
+
break;
|
1264 |
+
}
|
1265 |
+
$offset++;
|
1266 |
+
}
|
1267 |
+
|
1268 |
+
return array(
|
1269 |
+
'excerpt' => $excerpt,
|
1270 |
+
'start' => $start,
|
1271 |
+
'best_excerpt_term_hits' => $best_excerpt_term_hits,
|
1272 |
+
);
|
1273 |
+
}
|
1274 |
+
|
1275 |
/**
|
1276 |
* Adds accented variations to letters.
|
1277 |
*
|
lib/indexing.php
CHANGED
@@ -631,12 +631,24 @@ function relevanssi_index_taxonomy_terms( &$insert_data, $post_id, $taxonomy, $d
|
|
631 |
/**
|
632 |
* Filters the taxonomy term content before indexing.
|
633 |
*
|
634 |
-
*
|
635 |
-
*
|
636 |
-
*
|
637 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
638 |
*/
|
639 |
-
$term_string = apply_filters(
|
|
|
|
|
|
|
|
|
|
|
|
|
640 |
|
641 |
/** This filter is documented in lib/indexing.php */
|
642 |
$term_tokens = apply_filters(
|
@@ -1131,8 +1143,8 @@ function relevanssi_index_comments( &$insert_data, $post_id, $min_word_length, $
|
|
1131 |
$post_comments = relevanssi_get_comments( $post_id );
|
1132 |
if ( ! empty( $post_comments ) ) {
|
1133 |
$post_comments = relevanssi_strip_invisibles( $post_comments );
|
1134 |
-
$post_comments =
|
1135 |
-
|
1136 |
if ( $debug ) {
|
1137 |
relevanssi_debug_echo( "Comment content: $post_comments" );
|
1138 |
}
|
@@ -1501,8 +1513,7 @@ function relevanssi_index_content( &$insert_data, $post_object, $min_word_length
|
|
1501 |
$contents = relevanssi_process_internal_links( $contents, $post_object->ID );
|
1502 |
}
|
1503 |
|
1504 |
-
$contents =
|
1505 |
-
$contents = wp_strip_all_tags( $contents );
|
1506 |
|
1507 |
/**
|
1508 |
* Filters the post content in indexing before tokenization.
|
631 |
/**
|
632 |
* Filters the taxonomy term content before indexing.
|
633 |
*
|
634 |
+
* The taxonomy term content is presented as a string of term names
|
635 |
+
* separated by spaces. If you want to edit this, it's probably best to just
|
636 |
+
* reconstruct it from the taxonomy term objects contained in the second
|
637 |
+
* parameter.
|
638 |
+
*
|
639 |
+
* @param string The taxonomy term content as a string.
|
640 |
+
* @param array An array containing the taxonomy term objects for this
|
641 |
+
* taxonomy.
|
642 |
+
* @param string The taxonomy name.
|
643 |
+
* @param int The post ID for the current post.
|
644 |
*/
|
645 |
+
$term_string = apply_filters(
|
646 |
+
'relevanssi_tag_before_tokenize',
|
647 |
+
trim( $term_string ),
|
648 |
+
$post_taxonomy_terms,
|
649 |
+
$taxonomy,
|
650 |
+
$post_id
|
651 |
+
);
|
652 |
|
653 |
/** This filter is documented in lib/indexing.php */
|
654 |
$term_tokens = apply_filters(
|
1143 |
$post_comments = relevanssi_get_comments( $post_id );
|
1144 |
if ( ! empty( $post_comments ) ) {
|
1145 |
$post_comments = relevanssi_strip_invisibles( $post_comments );
|
1146 |
+
$post_comments = relevanssi_strip_all_tags( $post_comments );
|
1147 |
+
|
1148 |
if ( $debug ) {
|
1149 |
relevanssi_debug_echo( "Comment content: $post_comments" );
|
1150 |
}
|
1513 |
$contents = relevanssi_process_internal_links( $contents, $post_object->ID );
|
1514 |
}
|
1515 |
|
1516 |
+
$contents = relevanssi_strip_all_tags( $contents );
|
|
|
1517 |
|
1518 |
/**
|
1519 |
* Filters the post content in indexing before tokenization.
|
lib/init.php
CHANGED
@@ -453,7 +453,7 @@ function relevanssi_create_database_tables( $relevanssi_db_version ) {
|
|
453 |
}
|
454 |
|
455 |
if ( $docs_exists ) { // This index was removed in 4.9.2 / 2.11.2.
|
456 |
-
$sql = "DROP INDEX docs ON $relevanssi_table
|
457 |
$wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery
|
458 |
}
|
459 |
|
453 |
}
|
454 |
|
455 |
if ( $docs_exists ) { // This index was removed in 4.9.2 / 2.11.2.
|
456 |
+
$sql = "DROP INDEX docs ON $relevanssi_table";
|
457 |
$wpdb->query( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery
|
458 |
}
|
459 |
|
lib/options.php
CHANGED
@@ -31,6 +31,7 @@ function update_relevanssi_options() {
|
|
31 |
'relevanssi_index_author',
|
32 |
'relevanssi_index_excerpt',
|
33 |
'relevanssi_index_image_files',
|
|
|
34 |
)
|
35 |
);
|
36 |
relevanssi_update_intval( $_REQUEST, 'relevanssi_min_word_length', true, 3 );
|
31 |
'relevanssi_index_author',
|
32 |
'relevanssi_index_excerpt',
|
33 |
'relevanssi_index_image_files',
|
34 |
+
'relevanssi_seo_noindex',
|
35 |
)
|
36 |
);
|
37 |
relevanssi_update_intval( $_REQUEST, 'relevanssi_min_word_length', true, 3 );
|
lib/phrases.php
CHANGED
@@ -18,7 +18,7 @@
|
|
18 |
*
|
19 |
* @return array An array of phrases (strings).
|
20 |
*/
|
21 |
-
function relevanssi_extract_phrases( $query ) {
|
22 |
// iOS uses “” as the default quotes, so Relevanssi needs to understand
|
23 |
// that as well.
|
24 |
$normalized_query = str_replace( array( '”', '“' ), '"', $query );
|
@@ -83,11 +83,9 @@ function relevanssi_recognize_phrases( $search_query, $operator = 'AND' ) {
|
|
83 |
return $all_queries;
|
84 |
}
|
85 |
|
86 |
-
$custom_fields
|
87 |
-
$taxonomies
|
88 |
-
$excerpts
|
89 |
-
$index_pdf_parent = get_option( 'relevanssi_index_pdf_parent' );
|
90 |
-
|
91 |
$phrase_queries = array();
|
92 |
$queries = array();
|
93 |
|
@@ -115,17 +113,19 @@ function relevanssi_recognize_phrases( $search_query, $operator = 'AND' ) {
|
|
115 |
$phrases,
|
116 |
$taxonomies,
|
117 |
$custom_fields,
|
118 |
-
$excerpts
|
119 |
-
$index_pdf_parent
|
120 |
)
|
121 |
);
|
122 |
|
123 |
$phrase_queries = array();
|
124 |
|
125 |
foreach ( $queries as $phrase => $p_queries ) {
|
126 |
-
$
|
127 |
-
$p_queries
|
128 |
-
|
|
|
|
|
|
|
129 |
|
130 |
$phrase_queries[ $phrase ] = $p_queries;
|
131 |
}
|
@@ -151,17 +151,18 @@ function relevanssi_recognize_phrases( $search_query, $operator = 'AND' ) {
|
|
151 |
* Takes in phrases and a bunch of parameters and generates the MySQL queries
|
152 |
* that restrict the main search query to only posts that have the phrase.
|
153 |
*
|
154 |
-
* @param array
|
155 |
-
* @param array
|
156 |
-
* @param array
|
157 |
-
*
|
158 |
-
* @param string
|
159 |
*
|
160 |
* @global object $wpdb The WordPress database interface.
|
161 |
*
|
162 |
* @return array An array of queries sorted by phrase.
|
163 |
*/
|
164 |
-
function relevanssi_generate_phrase_queries( $phrases, $taxonomies,
|
|
|
165 |
global $wpdb;
|
166 |
|
167 |
$status = relevanssi_valid_status_array();
|
@@ -190,7 +191,10 @@ function relevanssi_generate_phrase_queries( $phrases, $taxonomies, $custom_fiel
|
|
190 |
OR post_title LIKE '%$phrase%' $excerpt)
|
191 |
AND post_status IN ($status))";
|
192 |
|
193 |
-
$queries[] =
|
|
|
|
|
|
|
194 |
|
195 |
if ( $taxonomies ) {
|
196 |
$taxonomies_escaped = implode( "','", array_map( 'esc_sql', $taxonomies ) );
|
@@ -205,7 +209,10 @@ function relevanssi_generate_phrase_queries( $phrases, $taxonomies, $custom_fiel
|
|
205 |
$taxonomies_sql
|
206 |
AND t.name LIKE '%$phrase%' AND p.post_status IN ($status))";
|
207 |
|
208 |
-
$queries[] =
|
|
|
|
|
|
|
209 |
}
|
210 |
|
211 |
if ( $custom_fields ) {
|
@@ -243,32 +250,27 @@ function relevanssi_generate_phrase_queries( $phrases, $taxonomies, $custom_fiel
|
|
243 |
AND m.meta_value LIKE '%$phrase%'
|
244 |
AND p.post_status IN ($status))";
|
245 |
|
246 |
-
$queries[] =
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
$query = "(SELECT ID
|
251 |
-
FROM $wpdb->posts AS p, $wpdb->postmeta AS m
|
252 |
-
WHERE p.ID = m.post_id
|
253 |
-
AND m.meta_key = '_relevanssi_pdf_content'
|
254 |
-
AND m.meta_value LIKE '%$phrase%'
|
255 |
-
AND p.post_status IN ($status))";
|
256 |
-
|
257 |
-
$queries[] = $query;
|
258 |
-
}
|
259 |
}
|
260 |
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
|
|
|
|
|
|
|
|
272 |
|
273 |
$phrase_queries[ $phrase ] = $queries;
|
274 |
}
|
18 |
*
|
19 |
* @return array An array of phrases (strings).
|
20 |
*/
|
21 |
+
function relevanssi_extract_phrases( string $query ) {
|
22 |
// iOS uses “” as the default quotes, so Relevanssi needs to understand
|
23 |
// that as well.
|
24 |
$normalized_query = str_replace( array( '”', '“' ), '"', $query );
|
83 |
return $all_queries;
|
84 |
}
|
85 |
|
86 |
+
$custom_fields = relevanssi_get_custom_fields();
|
87 |
+
$taxonomies = get_option( 'relevanssi_index_taxonomies_list', array() );
|
88 |
+
$excerpts = get_option( 'relevanssi_index_excerpt', 'off' );
|
|
|
|
|
89 |
$phrase_queries = array();
|
90 |
$queries = array();
|
91 |
|
113 |
$phrases,
|
114 |
$taxonomies,
|
115 |
$custom_fields,
|
116 |
+
$excerpts
|
|
|
117 |
)
|
118 |
);
|
119 |
|
120 |
$phrase_queries = array();
|
121 |
|
122 |
foreach ( $queries as $phrase => $p_queries ) {
|
123 |
+
$pq_array = array();
|
124 |
+
foreach ( $p_queries as $query ) {
|
125 |
+
$pq_array[] = "relevanssi.{$query['target']} IN {$query['query']}";
|
126 |
+
}
|
127 |
+
$p_queries = implode( ' OR ', $pq_array );
|
128 |
+
$all_queries[] = "($p_queries)";
|
129 |
|
130 |
$phrase_queries[ $phrase ] = $p_queries;
|
131 |
}
|
151 |
* Takes in phrases and a bunch of parameters and generates the MySQL queries
|
152 |
* that restrict the main search query to only posts that have the phrase.
|
153 |
*
|
154 |
+
* @param array $phrases A list of phrases to handle.
|
155 |
+
* @param array $taxonomies An array of taxonomy names to use.
|
156 |
+
* @param array|string $custom_fields A list of custom field names to use,
|
157 |
+
* "visible", or "all".
|
158 |
+
* @param string $excerpts If 'on', include excerpts.
|
159 |
*
|
160 |
* @global object $wpdb The WordPress database interface.
|
161 |
*
|
162 |
* @return array An array of queries sorted by phrase.
|
163 |
*/
|
164 |
+
function relevanssi_generate_phrase_queries( array $phrases, array $taxonomies,
|
165 |
+
$custom_fields, string $excerpts ) : array {
|
166 |
global $wpdb;
|
167 |
|
168 |
$status = relevanssi_valid_status_array();
|
191 |
OR post_title LIKE '%$phrase%' $excerpt)
|
192 |
AND post_status IN ($status))";
|
193 |
|
194 |
+
$queries[] = array(
|
195 |
+
'query' => $query,
|
196 |
+
'target' => 'doc',
|
197 |
+
);
|
198 |
|
199 |
if ( $taxonomies ) {
|
200 |
$taxonomies_escaped = implode( "','", array_map( 'esc_sql', $taxonomies ) );
|
209 |
$taxonomies_sql
|
210 |
AND t.name LIKE '%$phrase%' AND p.post_status IN ($status))";
|
211 |
|
212 |
+
$queries[] = array(
|
213 |
+
'query' => $query,
|
214 |
+
'target' => 'doc',
|
215 |
+
);
|
216 |
}
|
217 |
|
218 |
if ( $custom_fields ) {
|
250 |
AND m.meta_value LIKE '%$phrase%'
|
251 |
AND p.post_status IN ($status))";
|
252 |
|
253 |
+
$queries[] = array(
|
254 |
+
'query' => $query,
|
255 |
+
'target' => 'doc',
|
256 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
}
|
258 |
|
259 |
+
/**
|
260 |
+
* Filters the phrase queries.
|
261 |
+
*
|
262 |
+
* Relevanssi Premium uses this filter hook to add Premium-specific
|
263 |
+
* phrase queries.
|
264 |
+
*
|
265 |
+
* @param array $queries The MySQL queries for phrase matching.
|
266 |
+
* @param string $phrase The current phrase.
|
267 |
+
* @param string $status A string containing post statuses.
|
268 |
+
*
|
269 |
+
* @return array An array of phrase queries, where each query is an
|
270 |
+
* array that has the actual MySQL query in 'query' and the target
|
271 |
+
* column ('doc' or 'item') in the Relevanssi index table in 'target'.
|
272 |
+
*/
|
273 |
+
$queries = apply_filters( 'relevanssi_phrase_queries', $queries, $phrase, $status );
|
274 |
|
275 |
$phrase_queries[ $phrase ] = $queries;
|
276 |
}
|
lib/search-tax-query.php
CHANGED
@@ -13,8 +13,6 @@
|
|
13 |
/**
|
14 |
* Processes the tax query to formulate a query restriction to the MySQL query.
|
15 |
*
|
16 |
-
* Tested.
|
17 |
-
*
|
18 |
* @uses relevanssi_process_tax_query_row()
|
19 |
*
|
20 |
* @param string $tax_query_relation The base tax query relation. Default 'and'.
|
@@ -22,9 +20,9 @@
|
|
22 |
*
|
23 |
* @return string The query restrictions for the MySQL query.
|
24 |
*/
|
25 |
-
function relevanssi_process_tax_query( $tax_query_relation, $tax_query ) {
|
26 |
$query_restrictions = '';
|
27 |
-
if (
|
28 |
$tax_query_relation = 'and';
|
29 |
}
|
30 |
$tax_query_relation = relevanssi_strtolower( $tax_query_relation );
|
@@ -78,8 +76,6 @@ function relevanssi_process_tax_query( $tax_query_relation, $tax_query ) {
|
|
78 |
/**
|
79 |
* Processes one tax_query row.
|
80 |
*
|
81 |
-
* Tested.
|
82 |
-
*
|
83 |
* @global object $wpdb The WordPress database interface.
|
84 |
*
|
85 |
* @param array $row The tax_query row array.
|
@@ -96,7 +92,10 @@ function relevanssi_process_tax_query( $tax_query_relation, $tax_query ) {
|
|
96 |
* $query_restrictions, then $term_tax_ids, $not_term_tax_ids, $and_term_tax_ids
|
97 |
* and $exist_queries.
|
98 |
*/
|
99 |
-
function relevanssi_process_tax_query_row( $row, $is_sub_row,
|
|
|
|
|
|
|
100 |
global $wpdb;
|
101 |
|
102 |
$local_term_tax_ids = array();
|
@@ -167,11 +166,15 @@ function relevanssi_process_tax_query_row( $row, $is_sub_row, $global_relation,
|
|
167 |
)";
|
168 |
// Clean: $term_tax_id and $n are Relevanssi-generated.
|
169 |
} else {
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
|
|
|
|
|
|
|
|
175 |
}
|
176 |
} else {
|
177 |
if ( 'IN' === $tq_operator ) {
|
@@ -220,14 +223,20 @@ function relevanssi_process_tax_query_row( $row, $is_sub_row, $global_relation,
|
|
220 |
}
|
221 |
}
|
222 |
|
223 |
-
return array(
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
}
|
225 |
|
226 |
/**
|
227 |
* Generates query restrictions from the term taxonomy ids.
|
228 |
*
|
229 |
-
* Combines different term tax ID arrays into a set of query restrictions that
|
230 |
-
* used in an OR query.
|
231 |
*
|
232 |
* @global object $wpdb The WP database interface.
|
233 |
*
|
@@ -238,7 +247,8 @@ function relevanssi_process_tax_query_row( $row, $is_sub_row, $global_relation,
|
|
238 |
*
|
239 |
* @return string The MySQL query restrictions.
|
240 |
*/
|
241 |
-
function relevanssi_process_term_tax_ids( $term_tax_ids, $not_term_tax_ids,
|
|
|
242 |
global $wpdb;
|
243 |
|
244 |
$query_restriction_parts = array();
|
@@ -299,17 +309,19 @@ function relevanssi_process_term_tax_ids( $term_tax_ids, $not_term_tax_ids, $and
|
|
299 |
/**
|
300 |
* Gets and sanitizes the taxonomy name and slug parameters.
|
301 |
*
|
302 |
-
* Checks parameters: if they're numeric, pass them for term_id filtering,
|
303 |
-
* sanitize and create a comma-separated list.
|
304 |
*
|
305 |
-
* @param string $terms_parameter The 'terms' field from the tax_query
|
306 |
-
*
|
307 |
-
* @param string
|
|
|
308 |
*
|
309 |
-
* @return array An array containing numeric terms and the list of sanitized
|
310 |
-
* names.
|
311 |
*/
|
312 |
-
function relevanssi_get_term_in( $terms_parameter, $taxonomy,
|
|
|
313 |
$numeric_terms = array();
|
314 |
$names = array();
|
315 |
|
@@ -340,14 +352,14 @@ function relevanssi_get_term_in( $terms_parameter, $taxonomy, $field_name ) {
|
|
340 |
/**
|
341 |
* Gets the term_tax_id from a row with 'field' set to 'slug' or 'name'.
|
342 |
*
|
343 |
-
* If the slugs or names are all numeric values, will switch the 'field'
|
344 |
-
* to 'term_id'.
|
345 |
*
|
346 |
* @param array $row The taxonomy query row.
|
347 |
*
|
348 |
* @return array An array of term taxonomy IDs.
|
349 |
*/
|
350 |
-
function relevanssi_term_tax_id_from_row( $row ) {
|
351 |
global $wpdb;
|
352 |
|
353 |
$type = $row['field'];
|
13 |
/**
|
14 |
* Processes the tax query to formulate a query restriction to the MySQL query.
|
15 |
*
|
|
|
|
|
16 |
* @uses relevanssi_process_tax_query_row()
|
17 |
*
|
18 |
* @param string $tax_query_relation The base tax query relation. Default 'and'.
|
20 |
*
|
21 |
* @return string The query restrictions for the MySQL query.
|
22 |
*/
|
23 |
+
function relevanssi_process_tax_query( string $tax_query_relation, array $tax_query ) : string {
|
24 |
$query_restrictions = '';
|
25 |
+
if ( empty( $tax_query_relation ) ) {
|
26 |
$tax_query_relation = 'and';
|
27 |
}
|
28 |
$tax_query_relation = relevanssi_strtolower( $tax_query_relation );
|
76 |
/**
|
77 |
* Processes one tax_query row.
|
78 |
*
|
|
|
|
|
79 |
* @global object $wpdb The WordPress database interface.
|
80 |
*
|
81 |
* @param array $row The tax_query row array.
|
92 |
* $query_restrictions, then $term_tax_ids, $not_term_tax_ids, $and_term_tax_ids
|
93 |
* and $exist_queries.
|
94 |
*/
|
95 |
+
function relevanssi_process_tax_query_row( array $row, bool $is_sub_row,
|
96 |
+
string $global_relation, string $query_restrictions, string $tax_query_relation,
|
97 |
+
array $term_tax_ids, array $not_term_tax_ids, array $and_term_tax_ids,
|
98 |
+
array $exist_queries ) : array {
|
99 |
global $wpdb;
|
100 |
|
101 |
$local_term_tax_ids = array();
|
166 |
)";
|
167 |
// Clean: $term_tax_id and $n are Relevanssi-generated.
|
168 |
} else {
|
169 |
+
if ( 'or' === $global_relation ) {
|
170 |
+
$local_and_term_tax_ids[] = $term_tax_id;
|
171 |
+
} else {
|
172 |
+
$query_restrictions .= " AND relevanssi.doc $tq_operator (
|
173 |
+
SELECT DISTINCT(tr.object_id)
|
174 |
+
FROM $wpdb->term_relationships AS tr
|
175 |
+
WHERE tr.term_taxonomy_id IN ($term_tax_id))";
|
176 |
+
// Clean: all variables are Relevanssi-generated.
|
177 |
+
}
|
178 |
}
|
179 |
} else {
|
180 |
if ( 'IN' === $tq_operator ) {
|
223 |
}
|
224 |
}
|
225 |
|
226 |
+
return array(
|
227 |
+
$query_restrictions,
|
228 |
+
$term_tax_ids,
|
229 |
+
$not_term_tax_ids,
|
230 |
+
$and_term_tax_ids,
|
231 |
+
$exist_queries,
|
232 |
+
);
|
233 |
}
|
234 |
|
235 |
/**
|
236 |
* Generates query restrictions from the term taxonomy ids.
|
237 |
*
|
238 |
+
* Combines different term tax ID arrays into a set of query restrictions that
|
239 |
+
* can be used in an OR query.
|
240 |
*
|
241 |
* @global object $wpdb The WP database interface.
|
242 |
*
|
247 |
*
|
248 |
* @return string The MySQL query restrictions.
|
249 |
*/
|
250 |
+
function relevanssi_process_term_tax_ids( array $term_tax_ids, array $not_term_tax_ids,
|
251 |
+
array $and_term_tax_ids, array $exist_queries ) : string {
|
252 |
global $wpdb;
|
253 |
|
254 |
$query_restriction_parts = array();
|
309 |
/**
|
310 |
* Gets and sanitizes the taxonomy name and slug parameters.
|
311 |
*
|
312 |
+
* Checks parameters: if they're numeric, pass them for term_id filtering,
|
313 |
+
* otherwise sanitize and create a comma-separated list.
|
314 |
*
|
315 |
+
* @param string|array $terms_parameter The 'terms' field from the tax_query
|
316 |
+
* row.
|
317 |
+
* @param string $taxonomy The taxonomy name.
|
318 |
+
* @param string $field_name The field name ('slug', 'name').
|
319 |
*
|
320 |
+
* @return array An array containing numeric terms and the list of sanitized
|
321 |
+
* term names.
|
322 |
*/
|
323 |
+
function relevanssi_get_term_in( $terms_parameter, string $taxonomy,
|
324 |
+
string $field_name ) : array {
|
325 |
$numeric_terms = array();
|
326 |
$names = array();
|
327 |
|
352 |
/**
|
353 |
* Gets the term_tax_id from a row with 'field' set to 'slug' or 'name'.
|
354 |
*
|
355 |
+
* If the slugs or names are all numeric values, will switch the 'field'
|
356 |
+
* parameter to 'term_id'.
|
357 |
*
|
358 |
* @param array $row The taxonomy query row.
|
359 |
*
|
360 |
* @return array An array of term taxonomy IDs.
|
361 |
*/
|
362 |
+
function relevanssi_term_tax_id_from_row( array $row ) : array {
|
363 |
global $wpdb;
|
364 |
|
365 |
$type = $row['field'];
|
lib/sorting.php
CHANGED
@@ -234,6 +234,9 @@ function relevanssi_get_compare_values( $key, $item_1, $item_2 ) {
|
|
234 |
$key2 = relevanssi_flatten_array( $key2 );
|
235 |
}
|
236 |
|
|
|
|
|
|
|
237 |
$keys = array(
|
238 |
'key1' => $key1,
|
239 |
'key2' => $key2,
|
234 |
$key2 = relevanssi_flatten_array( $key2 );
|
235 |
}
|
236 |
|
237 |
+
$key1 = $key1 ?? '';
|
238 |
+
$key2 = $key2 ?? '';
|
239 |
+
|
240 |
$keys = array(
|
241 |
'key1' => $key1,
|
242 |
'key2' => $key2,
|
lib/tabs/debugging-tab.php
CHANGED
@@ -49,5 +49,8 @@ function relevanssi_debugging_tab() {
|
|
49 |
class='button button-primary' />
|
50 |
</p>
|
51 |
<?php echo $how_relevanssi_sees; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
|
|
|
|
|
|
52 |
<?php
|
53 |
}
|
49 |
class='button button-primary' />
|
50 |
</p>
|
51 |
<?php echo $how_relevanssi_sees; // phpcs:ignore WordPress.Security.EscapeOutput ?>
|
52 |
+
|
53 |
+
<?php do_action( 'relevanssi_debugging_tab' ); ?>
|
54 |
+
|
55 |
<?php
|
56 |
}
|
lib/utils.php
CHANGED
@@ -219,11 +219,13 @@ function relevanssi_get_current_language( bool $locale = true ) {
|
|
219 |
$language_code = apply_filters( 'wpml_element_language_code', null, $element );
|
220 |
|
221 |
$language_details['language_code'] = $language_code;
|
222 |
-
} elseif ( ! isset( $post->user_id ) ) {
|
223 |
// Users don't have language details.
|
224 |
$language_details = apply_filters( 'wpml_post_language_details', null, $post->ID );
|
225 |
}
|
226 |
-
|
|
|
|
|
227 |
$current_language = $language_details[ $locale ? 'locale' : 'language_code' ];
|
228 |
} else {
|
229 |
if ( $locale ) {
|
@@ -514,7 +516,7 @@ function relevanssi_legal_value( array $request, string $option, array $values,
|
|
514 |
* @return int $val Returns < 0 if str1 is less than str2; > 0 if str1 is
|
515 |
* greater than str2, and 0 if they are equal.
|
516 |
*/
|
517 |
-
function relevanssi_mb_strcasecmp(
|
518 |
if ( ! function_exists( 'mb_internal_encoding' ) ) {
|
519 |
return strnatcasecmp( $str1, $str2 );
|
520 |
} else {
|
@@ -633,14 +635,14 @@ function relevanssi_return_off() {
|
|
633 |
/**
|
634 |
* Gets a post object, returns ID, ID=>parent or the post object.
|
635 |
*
|
636 |
-
* @param
|
637 |
-
* @param string
|
638 |
* for returning the ID and 'id=>parent' for returning the ID=>parent object,
|
639 |
* otherwise the post object is returned.
|
640 |
*
|
641 |
* @return int|object|WP_Post The post object in the desired format.
|
642 |
*/
|
643 |
-
function relevanssi_return_value(
|
644 |
if ( 'id' === $return_value ) {
|
645 |
return $post->ID;
|
646 |
} elseif ( 'id=>parent' === $return_value ) {
|
@@ -692,6 +694,20 @@ function relevanssi_select( string $option, string $value ) {
|
|
692 |
return $selected;
|
693 |
}
|
694 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
/**
|
696 |
* Strips invisible elements from text.
|
697 |
*
|
@@ -702,7 +718,10 @@ function relevanssi_select( string $option, string $value ) {
|
|
702 |
*
|
703 |
* @return string The processed text.
|
704 |
*/
|
705 |
-
function relevanssi_strip_invisibles(
|
|
|
|
|
|
|
706 |
$text = preg_replace(
|
707 |
array(
|
708 |
'@<style[^>]*?>.*?</style>@siu',
|
@@ -730,11 +749,14 @@ function relevanssi_strip_invisibles( string $text ) {
|
|
730 |
*
|
731 |
* @see relevanssi_strip_invisibles
|
732 |
*
|
733 |
-
* @param string $content The content.
|
734 |
*
|
735 |
* @return string The content without tags.
|
736 |
*/
|
737 |
-
function relevanssi_strip_tags(
|
|
|
|
|
|
|
738 |
$content = relevanssi_strip_invisibles( $content );
|
739 |
$content = preg_replace( '/(<\/[^>]+?>)(<[^>\/][^>]*?>)/', '$1 $2', $content );
|
740 |
return strip_tags(
|
@@ -757,7 +779,13 @@ function relevanssi_strip_tags( string $content ) {
|
|
757 |
* @return mixed False, if no result or $offset outside the length of $haystack,
|
758 |
* otherwise the position (which can be non-false 0!).
|
759 |
*/
|
760 |
-
function relevanssi_stripos(
|
|
|
|
|
|
|
|
|
|
|
|
|
761 |
if ( $offset > relevanssi_strlen( $haystack ) ) {
|
762 |
return false;
|
763 |
}
|
@@ -824,7 +852,10 @@ function relevanssi_stripos( string $haystack, string $needle, int $offset = 0 )
|
|
824 |
*
|
825 |
* @return int The length of the string.
|
826 |
*/
|
827 |
-
function relevanssi_strlen(
|
|
|
|
|
|
|
828 |
if ( function_exists( 'mb_strlen' ) ) {
|
829 |
return mb_strlen( $s );
|
830 |
}
|
@@ -841,7 +872,10 @@ function relevanssi_strlen( string $s ) {
|
|
841 |
*
|
842 |
* @return string $string The string in lowercase.
|
843 |
*/
|
844 |
-
function relevanssi_strtolower(
|
|
|
|
|
|
|
845 |
if ( ! function_exists( 'mb_strtolower' ) ) {
|
846 |
return strtolower( $string );
|
847 |
} else {
|
@@ -865,7 +899,10 @@ function relevanssi_strtolower( string $string ) {
|
|
865 |
*
|
866 |
* @return string $string The string in lowercase.
|
867 |
*/
|
868 |
-
function relevanssi_substr(
|
|
|
|
|
|
|
869 |
if ( ! function_exists( 'mb_substr' ) ) {
|
870 |
return substr( $string, $start, $length );
|
871 |
} else {
|
219 |
$language_code = apply_filters( 'wpml_element_language_code', null, $element );
|
220 |
|
221 |
$language_details['language_code'] = $language_code;
|
222 |
+
} elseif ( ! isset( $post->user_id ) && 'post_type' !== $post->post_type ) {
|
223 |
// Users don't have language details.
|
224 |
$language_details = apply_filters( 'wpml_post_language_details', null, $post->ID );
|
225 |
}
|
226 |
+
if ( is_wp_error( $language_details ) ) {
|
227 |
+
$current_language = apply_filters( 'wpml_current_language', null );
|
228 |
+
}
|
229 |
$current_language = $language_details[ $locale ? 'locale' : 'language_code' ];
|
230 |
} else {
|
231 |
if ( $locale ) {
|
516 |
* @return int $val Returns < 0 if str1 is less than str2; > 0 if str1 is
|
517 |
* greater than str2, and 0 if they are equal.
|
518 |
*/
|
519 |
+
function relevanssi_mb_strcasecmp( $str1, $str2, $encoding = '' ) : int {
|
520 |
if ( ! function_exists( 'mb_internal_encoding' ) ) {
|
521 |
return strnatcasecmp( $str1, $str2 );
|
522 |
} else {
|
635 |
/**
|
636 |
* Gets a post object, returns ID, ID=>parent or the post object.
|
637 |
*
|
638 |
+
* @param object $post The post object.
|
639 |
+
* @param string $return_value The value to return, possible values are 'id'
|
640 |
* for returning the ID and 'id=>parent' for returning the ID=>parent object,
|
641 |
* otherwise the post object is returned.
|
642 |
*
|
643 |
* @return int|object|WP_Post The post object in the desired format.
|
644 |
*/
|
645 |
+
function relevanssi_return_value( $post, string $return_value ) {
|
646 |
if ( 'id' === $return_value ) {
|
647 |
return $post->ID;
|
648 |
} elseif ( 'id=>parent' === $return_value ) {
|
694 |
return $selected;
|
695 |
}
|
696 |
|
697 |
+
/**
|
698 |
+
* Strips all tags from content, keeping non-tags that look like tags.
|
699 |
+
*
|
700 |
+
* Strips content that matches <[!a-zA-Z\/]*> to remove HTML tags and HTML
|
701 |
+
* comments, but not things like "<30 grams, 4>1".
|
702 |
+
*
|
703 |
+
* @param string $content The content.
|
704 |
+
*
|
705 |
+
* @return string The content with tags stripped.
|
706 |
+
*/
|
707 |
+
function relevanssi_strip_all_tags( string $content ) : string {
|
708 |
+
return preg_replace( '/<[!a-zA-Z\/][^>]*>/', ' ', $content );
|
709 |
+
}
|
710 |
+
|
711 |
/**
|
712 |
* Strips invisible elements from text.
|
713 |
*
|
718 |
*
|
719 |
* @return string The processed text.
|
720 |
*/
|
721 |
+
function relevanssi_strip_invisibles( $text ) {
|
722 |
+
if ( ! is_string( $text ) ) {
|
723 |
+
$text = strval( $text );
|
724 |
+
}
|
725 |
$text = preg_replace(
|
726 |
array(
|
727 |
'@<style[^>]*?>.*?</style>@siu',
|
749 |
*
|
750 |
* @see relevanssi_strip_invisibles
|
751 |
*
|
752 |
+
* @param string|null $content The content.
|
753 |
*
|
754 |
* @return string The content without tags.
|
755 |
*/
|
756 |
+
function relevanssi_strip_tags( $content ) {
|
757 |
+
if ( ! is_string( $content ) ) {
|
758 |
+
$content = strval( $content );
|
759 |
+
}
|
760 |
$content = relevanssi_strip_invisibles( $content );
|
761 |
$content = preg_replace( '/(<\/[^>]+?>)(<[^>\/][^>]*?>)/', '$1 $2', $content );
|
762 |
return strip_tags(
|
779 |
* @return mixed False, if no result or $offset outside the length of $haystack,
|
780 |
* otherwise the position (which can be non-false 0!).
|
781 |
*/
|
782 |
+
function relevanssi_stripos( $haystack, $needle, int $offset = 0 ) {
|
783 |
+
if ( ! is_string( $haystack ) ) {
|
784 |
+
$haystack = strval( $haystack );
|
785 |
+
}
|
786 |
+
if ( ! is_string( $needle ) ) {
|
787 |
+
$needle = strval( $needle );
|
788 |
+
}
|
789 |
if ( $offset > relevanssi_strlen( $haystack ) ) {
|
790 |
return false;
|
791 |
}
|
852 |
*
|
853 |
* @return int The length of the string.
|
854 |
*/
|
855 |
+
function relevanssi_strlen( $s ) {
|
856 |
+
if ( ! is_string( $s ) ) {
|
857 |
+
$s = strval( $s );
|
858 |
+
}
|
859 |
if ( function_exists( 'mb_strlen' ) ) {
|
860 |
return mb_strlen( $s );
|
861 |
}
|
872 |
*
|
873 |
* @return string $string The string in lowercase.
|
874 |
*/
|
875 |
+
function relevanssi_strtolower( $string ) {
|
876 |
+
if ( ! is_string( $string ) ) {
|
877 |
+
$string = strval( $string );
|
878 |
+
}
|
879 |
if ( ! function_exists( 'mb_strtolower' ) ) {
|
880 |
return strtolower( $string );
|
881 |
} else {
|
899 |
*
|
900 |
* @return string $string The string in lowercase.
|
901 |
*/
|
902 |
+
function relevanssi_substr( $string, int $start, $length = null ) {
|
903 |
+
if ( ! is_string( $string ) ) {
|
904 |
+
$string = strval( $string );
|
905 |
+
}
|
906 |
if ( ! function_exists( 'mb_substr' ) ) {
|
907 |
return substr( $string, $start, $length );
|
908 |
} else {
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@ Contributors: msaari
|
|
3 |
Donate link: https://www.relevanssi.com/buy-premium/
|
4 |
Tags: search, relevance, better search, product search, woocommerce search
|
5 |
Requires at least: 4.9
|
6 |
-
Tested up to: 5.6.
|
7 |
Requires PHP: 7.0
|
8 |
-
Stable tag: 4.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -123,8 +123,6 @@ Thus, the weight of the word for a document increases the more often it appears
|
|
123 |
|
124 |
Each document database is full of useless words. All the little words that appear in just about every document are completely useless for information retrieval purposes. Basically, their inverted document frequency is really low, so they never have much power in matching. Also, removing those words helps to make the index smaller and searching faster.
|
125 |
|
126 |
-
[](http://coderisk.com/wp/plugin/relevanssi/RIPS-XC1ekC4JKr)
|
127 |
-
|
128 |
== Thanks ==
|
129 |
* Cristian Damm for tag indexing, comment indexing, post/page exclusion and general helpfulness.
|
130 |
* Marcus Dalgren for UTF-8 fixing.
|
@@ -133,6 +131,22 @@ Each document database is full of useless words. All the little words that appea
|
|
133 |
* John Calahan for extensive 4.0 beta testing.
|
134 |
|
135 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
= 4.11.0 =
|
137 |
* New feature: New filter hook `relevanssi_rendered_block` filters Gutenberg block content after the block has been rendered with `render_block()`.
|
138 |
* New feature: New filter hook `relevanssi_log_query` can be used to filter the search query before it's logged. This can be used to log instead the query that includes synonyms (available as a parameter to the filter hook).
|
@@ -194,6 +208,12 @@ Each document database is full of useless words. All the little words that appea
|
|
194 |
* 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.
|
195 |
|
196 |
== Upgrade notice ==
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
= 4.11.0 =
|
198 |
* New filter hooks, bug fixes.
|
199 |
|
3 |
Donate link: https://www.relevanssi.com/buy-premium/
|
4 |
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.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
123 |
|
124 |
Each document database is full of useless words. All the little words that appear in just about every document are completely useless for information retrieval purposes. Basically, their inverted document frequency is really low, so they never have much power in matching. Also, removing those words helps to make the index smaller and searching faster.
|
125 |
|
|
|
|
|
126 |
== Thanks ==
|
127 |
* Cristian Damm for tag indexing, comment indexing, post/page exclusion and general helpfulness.
|
128 |
* Marcus Dalgren for UTF-8 fixing.
|
131 |
* John Calahan for extensive 4.0 beta testing.
|
132 |
|
133 |
== Changelog ==
|
134 |
+
= 4.12.0 =
|
135 |
+
* New feature: New filter hook `relevanssi_phrase_queries` can be used to add phrase matching queries to support more content types.
|
136 |
+
* New feature: New filter hook `relevanssi_excerpt_gap` lets you adjust the first line of excerpt optimization.
|
137 |
+
* Changed behaviour: The `relevanssi_admin_search_element` filter hook now gets the post object as the second parameter, rendering the filter hook more useful.
|
138 |
+
* Changed behaviour: Relevanssi now automatically optimizes excerpt creation in long posts. You can still use `relevanssi_optimize_excerpts` for further optimization, but it's probably not necessary.
|
139 |
+
* Changed behaviour: The `relevanssi_tag_before_tokenize` filter hook parameters were changed in order to be actually useful and to match what the filter hook is supposed to do.
|
140 |
+
* Minor fix: In some cases Relevanssi wouldn't highlight the last word of the title. This is more reliable now.
|
141 |
+
* Minor fix: Relevanssi will now add the `highlight` parameter only to search results, and not to other links on the search results page.
|
142 |
+
* Minor fix: Improved fringe cases in nested taxonomy queries.
|
143 |
+
* Minor fix: Taxonomy terms in WPML were not indexed correctly. Instead of the post language, the current language was used, so if your admin dashboard is in English, German posts would get English translations of the terms, not German. This is now fixed.
|
144 |
+
* Minor fix: Excerpt creation is now faster when multiple excerpts are not used.
|
145 |
+
* Minor fix: The SEO plugin noindex setting did not actually work. That has been fixed now.
|
146 |
+
|
147 |
+
= 4.11.1 =
|
148 |
+
* Major fix: The type hinting introduced for some functions turned out to be too strict, causing fatal errors. The type hinting has been relaxed (using nullable types would help, but that's a PHP 7.4 feature, and we don't want that).
|
149 |
+
|
150 |
= 4.11.0 =
|
151 |
* New feature: New filter hook `relevanssi_rendered_block` filters Gutenberg block content after the block has been rendered with `render_block()`.
|
152 |
* New feature: New filter hook `relevanssi_log_query` can be used to filter the search query before it's logged. This can be used to log instead the query that includes synonyms (available as a parameter to the filter hook).
|
208 |
* 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.
|
209 |
|
210 |
== Upgrade notice ==
|
211 |
+
= 4.12.0 =
|
212 |
+
* New features and bug fixes.
|
213 |
+
|
214 |
+
= 4.11.1 =
|
215 |
+
* Prevents surprising fatal errors.
|
216 |
+
|
217 |
= 4.11.0 =
|
218 |
* New filter hooks, bug fixes.
|
219 |
|
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.
|
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.
|
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.0
|
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.0';
|
71 |
|
72 |
require_once 'lib/admin-ajax.php';
|
73 |
require_once 'lib/common.php';
|
relevanssi.po
CHANGED
@@ -2,7 +2,7 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Relevanssi\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date:
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Mikko Saari <mikko@mikkosaari.fi>\n"
|
8 |
"Language-Team: \n"
|
@@ -12,62 +12,62 @@ msgstr ""
|
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"X-Poedit-KeywordsList: _e;__;esc_html__;esc_html_e;_n\n"
|
14 |
"X-Poedit-Basepath: .\n"
|
15 |
-
"X-Generator: Poedit 2.2
|
16 |
"X-Poedit-SearchPath-0: .\n"
|
17 |
"X-Poedit-SearchPath-1: lib\n"
|
18 |
|
19 |
-
#: lib/admin-ajax.php:
|
20 |
#, php-format
|
21 |
msgid "Indexed %1$d post (total %2$d), processed %3$d / %4$d."
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: lib/admin-ajax.php:
|
25 |
#: vendor/lib/admin-ajax.php:212 vendor/lib/tabs/indexing-tab.php:125
|
26 |
msgid "Results"
|
27 |
msgstr ""
|
28 |
|
29 |
-
#: lib/admin-ajax.php:
|
30 |
#, php-format
|
31 |
msgid "Found a total of %1$d posts, showing posts %2$d–%3$s."
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: lib/admin-ajax.php:
|
35 |
msgid "Previous page"
|
36 |
msgstr ""
|
37 |
|
38 |
-
#: lib/admin-ajax.php:
|
39 |
msgid "Next page"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: lib/admin-ajax.php:
|
43 |
msgid "Score:"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: lib/admin-ajax.php:
|
47 |
msgid "Edit"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: lib/admin-ajax.php:
|
51 |
msgid "Query variables"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: lib/admin-ajax.php:
|
55 |
msgid "Filters"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: lib/admin-ajax.php:
|
59 |
msgid "show"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: lib/admin-ajax.php:
|
63 |
msgid "hide"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: lib/common.php:
|
67 |
msgid "25 most common words in the index"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: lib/common.php:
|
71 |
msgid ""
|
72 |
"These words are excellent stopword material. A word that appears in most of "
|
73 |
"the posts in the database is quite pointless when searching. This is also an "
|
@@ -77,18 +77,143 @@ msgid ""
|
|
77 |
"necessary."
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: lib/common.php:
|
81 |
msgid "Stopword Candidates"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: lib/common.php:
|
85 |
msgid "Add to stopwords"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: lib/common.php:
|
89 |
msgid "Add to content stopwords"
|
90 |
msgstr ""
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
#: lib/contextual-help.php:24 vendor/lib/contextual-help.php:28
|
93 |
#, php-format
|
94 |
msgid ""
|
@@ -104,9 +229,8 @@ msgid ""
|
|
104 |
"effect of enabling the inside-word highlights."
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: lib/contextual-help.php:26 lib/
|
108 |
-
#: vendor/lib/
|
109 |
-
#: vendor/lib/tabs/excerpts-tab.php:387
|
110 |
msgid "Uncheck this if you use non-ASCII characters"
|
111 |
msgstr ""
|
112 |
|
@@ -115,7 +239,7 @@ msgstr ""
|
|
115 |
msgid "In order to adjust the throttle limit, you can use the %s filter hook."
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: lib/contextual-help.php:33 lib/interface.php:
|
119 |
#: lib/tabs/overview-tab.php:56 vendor/lib/contextual-help.php:25
|
120 |
#: vendor/lib/interface.php:831 vendor/lib/tabs/overview-tab.php:56
|
121 |
msgid "Searching"
|
@@ -236,7 +360,7 @@ msgid ""
|
|
236 |
"be less than perfect in quality, add a filter that returns true on hook %s."
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: lib/contextual-help.php:123 lib/tabs/indexing-tab.php:
|
240 |
#: vendor/lib/contextual-help.php:97 vendor/lib/tabs/indexing-tab.php:341
|
241 |
msgid "Excerpts"
|
242 |
msgstr ""
|
@@ -381,40 +505,44 @@ msgstr ""
|
|
381 |
msgid "WordPress.org forum"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: lib/
|
385 |
-
msgid "
|
|
|
|
|
|
|
|
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: lib/init.php:
|
389 |
msgid ""
|
390 |
"You do not have an index! Remember to build the index (click the \"Build the "
|
391 |
"index\" button), otherwise searching won't work."
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: lib/init.php:
|
395 |
msgid ""
|
396 |
"Multibyte string functions are not available. Relevanssi may not work well "
|
397 |
"without them. Please install (or ask your host to install) the mbstring "
|
398 |
"extension."
|
399 |
msgstr ""
|
400 |
|
401 |
-
#: lib/init.php:
|
402 |
#: lib/tabs/logging-tab.php:48 vendor/lib/init.php:237 vendor/lib/init.php:238
|
403 |
#: vendor/lib/interface.php:469 vendor/lib/tabs/logging-tab.php:48
|
404 |
msgid "User searches"
|
405 |
msgstr ""
|
406 |
|
407 |
-
#: lib/init.php:
|
408 |
#: vendor/lib/init.php:249 vendor/lib/init.php:250
|
409 |
#: vendor/lib/tabs/searching-tab.php:248
|
410 |
msgid "Admin search"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: lib/init.php:
|
414 |
msgid "Settings"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: lib/init.php:
|
418 |
msgid "Go Premium!"
|
419 |
msgstr ""
|
420 |
|
@@ -426,309 +554,309 @@ msgstr ""
|
|
426 |
msgid "Relevanssi Premium Search Options"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: lib/interface.php:
|
430 |
msgid "Relevanssi User Searches"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: lib/interface.php:
|
434 |
msgid "Enable query logging to see stats here."
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: lib/interface.php:
|
438 |
msgid "Admin Search"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: lib/interface.php:
|
442 |
msgid "Logs clear!"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: lib/interface.php:
|
446 |
msgid "Clearing the logs failed."
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: lib/interface.php:
|
450 |
msgid "Total Searches"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: lib/interface.php:
|
454 |
msgid "Totals"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: lib/interface.php:
|
458 |
msgid "Common Queries"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: lib/interface.php:
|
462 |
#, php-format
|
463 |
msgid ""
|
464 |
"Here you can see the %d most common user search queries, how many times "
|
465 |
"those queries were made and how many results were found for those queries."
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: lib/interface.php:
|
469 |
#: vendor/lib/interface.php:592 vendor/lib/interface.php:614
|
470 |
#: vendor/lib/interface.php:664
|
471 |
msgid "Today and yesterday"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: lib/interface.php:
|
475 |
-
#: lib/interface.php:
|
476 |
#: vendor/lib/interface.php:601 vendor/lib/interface.php:606
|
477 |
#: vendor/lib/interface.php:623
|
478 |
#, php-format
|
479 |
msgid "Last %d days"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: lib/interface.php:
|
483 |
msgid "Unsuccessful Queries"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: lib/interface.php:
|
487 |
#: vendor/lib/interface.php:665
|
488 |
msgid "Last 7 days"
|
489 |
msgstr ""
|
490 |
|
491 |
-
#: lib/interface.php:
|
492 |
msgid "Reset Logs"
|
493 |
msgstr ""
|
494 |
|
495 |
-
#: lib/interface.php:
|
496 |
msgid ""
|
497 |
"To reset the logs, type \"reset\" into the box here and click the Reset "
|
498 |
"button"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: lib/interface.php:
|
502 |
msgid "Reset"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: lib/interface.php:
|
506 |
msgid "Last 30 days"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: lib/interface.php:
|
510 |
msgid "Forever"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: lib/interface.php:
|
514 |
msgid "When"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: lib/interface.php:
|
518 |
msgid "Searches"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: lib/interface.php:
|
522 |
#: vendor/lib/log.php:178
|
523 |
msgid "Query"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: lib/interface.php:
|
527 |
msgid "Hits"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: lib/interface.php:
|
531 |
msgid "Overview"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: lib/interface.php:
|
535 |
#: vendor/lib/interface.php:829 vendor/lib/tabs/overview-tab.php:44
|
536 |
msgid "Indexing"
|
537 |
msgstr ""
|
538 |
|
539 |
-
#: lib/interface.php:
|
540 |
msgid "Attachments"
|
541 |
msgstr ""
|
542 |
|
543 |
-
#: lib/interface.php:
|
544 |
msgid "Logging"
|
545 |
msgstr ""
|
546 |
|
547 |
-
#: lib/interface.php:
|
548 |
#: vendor/lib/interface.php:833 vendor/lib/tabs/overview-tab.php:60
|
549 |
msgid "Excerpts and highlights"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: lib/interface.php:
|
553 |
-
#: lib/tabs/synonyms-tab.php:
|
554 |
#: vendor/lib/tabs/synonyms-tab.php:25 vendor/lib/tabs/synonyms-tab.php:30
|
555 |
msgid "Synonyms"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: lib/interface.php:
|
559 |
#: vendor/lib/interface.php:835 vendor/lib/tabs/stopwords-tab.php:18
|
560 |
msgid "Stopwords"
|
561 |
msgstr ""
|
562 |
|
563 |
-
#: lib/interface.php:
|
564 |
#: vendor/lib/interface.php:836 vendor/lib/tabs/redirects-tab.php:18
|
565 |
msgid "Redirects"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: lib/interface.php:
|
569 |
-
msgid "
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: lib/interface.php:
|
573 |
-
msgid "Import / Export options"
|
574 |
-
msgstr ""
|
575 |
-
|
576 |
-
#: lib/interface.php:975 vendor/lib/interface.php:958
|
577 |
msgid "Click OK to copy Relevanssi options to all subsites"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: lib/interface.php:
|
581 |
msgid "Are you sure you want to remove all stopwords?"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: lib/interface.php:
|
585 |
msgid "Wiping out the index..."
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: lib/interface.php:
|
589 |
msgid "Done."
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: lib/interface.php:
|
593 |
msgid "Indexing users..."
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: lib/interface.php:
|
597 |
msgid "Indexing the following taxonomies:"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: lib/interface.php:
|
601 |
msgid "Indexing attachments..."
|
602 |
msgstr ""
|
603 |
|
604 |
-
#: lib/interface.php:
|
605 |
msgid "Counting posts..."
|
606 |
msgstr ""
|
607 |
|
608 |
-
#: lib/interface.php:
|
609 |
msgid "Counting taxonomy terms..."
|
610 |
msgstr ""
|
611 |
|
612 |
-
#: lib/interface.php:
|
613 |
msgid "Counting users..."
|
614 |
msgstr ""
|
615 |
|
616 |
-
#: lib/interface.php:
|
617 |
msgid "Counting attachments..."
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: lib/interface.php:
|
621 |
msgid "posts found."
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: lib/interface.php:
|
625 |
msgid "taxonomy terms found."
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: lib/interface.php:
|
629 |
msgid "users found."
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: lib/interface.php:
|
633 |
msgid "attachments found."
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: lib/interface.php:
|
637 |
msgid "Taxonomy term indexing is disabled."
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: lib/interface.php:
|
641 |
msgid "User indexing is disabled."
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: lib/interface.php:
|
645 |
msgid "Indexing complete."
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: lib/interface.php:
|
649 |
msgid "posts excluded."
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: lib/interface.php:
|
653 |
msgid "Settings have changed, please save the options before indexing."
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: lib/interface.php:
|
657 |
msgid "Reload the page to refresh the state of the index."
|
658 |
msgstr ""
|
659 |
|
660 |
-
#: lib/interface.php:
|
661 |
msgid "Are you sure you want to delete all attachment content from the index?"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: lib/interface.php:
|
665 |
msgid "Relevanssi attachment data wiped clean."
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: lib/interface.php:
|
669 |
msgid "There were problems wiping the Relevanssi attachment data clean."
|
670 |
msgstr ""
|
671 |
|
672 |
-
#: lib/interface.php:
|
673 |
msgid "hour"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: lib/interface.php:
|
677 |
msgid "hours"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#: lib/interface.php:
|
681 |
msgid "about"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: lib/interface.php:
|
685 |
msgid "about an hour"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: lib/interface.php:
|
689 |
msgid "about an hour and a half"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: lib/interface.php:
|
693 |
msgid "minute"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: lib/interface.php:
|
697 |
msgid "minutes"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: lib/interface.php:
|
701 |
msgid "less than a minute"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: lib/interface.php:
|
705 |
msgid "we're done!"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: lib/interface.php:
|
709 |
msgid "Tag weight"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: lib/interface.php:
|
713 |
msgid "Category weight"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: lib/log.php:
|
717 |
-
msgid "Logged
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: lib/log.php:
|
721 |
msgid "Time"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: lib/log.php:
|
725 |
msgid "Hits found"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: lib/log.php:
|
729 |
msgid "IP address"
|
730 |
msgstr ""
|
731 |
|
|
|
|
|
|
|
|
|
732 |
#: lib/privacy.php:34 vendor/lib/privacy.php:34
|
733 |
msgid "What personal data we collect and why we collect it"
|
734 |
msgstr ""
|
@@ -771,7 +899,7 @@ msgstr ""
|
|
771 |
msgid "Relevanssi Search Logs"
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: lib/shortcodes.php:
|
775 |
msgid "None"
|
776 |
msgstr ""
|
777 |
|
@@ -792,35 +920,35 @@ msgstr ""
|
|
792 |
msgid "Added stopwords from the stopword file."
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: lib/stopwords.php:
|
796 |
#, php-format
|
797 |
msgid "Successfully added %1$d/%2$d terms to stopwords!"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: lib/stopwords.php:
|
801 |
#, php-format
|
802 |
msgid "Term '%s' added to stopwords!"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: lib/stopwords.php:
|
806 |
#, php-format
|
807 |
msgid "Couldn't add term '%s' to stopwords!"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: lib/stopwords.php:
|
811 |
msgid "All stopwords removed! Remember to re-index."
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: lib/stopwords.php:
|
815 |
msgid "There was a problem, and stopwords couldn't be removed."
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: lib/stopwords.php:
|
819 |
#, php-format
|
820 |
msgid "Term '%s' removed from stopwords! Re-index to get it back to index."
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: lib/stopwords.php:
|
824 |
#, php-format
|
825 |
msgid "Couldn't remove term '%s' from stopwords!"
|
826 |
msgstr ""
|
@@ -845,6 +973,23 @@ msgid ""
|
|
845 |
"Relevanssi Premium here%2$s."
|
846 |
msgstr ""
|
847 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
848 |
#: lib/tabs/excerpts-tab.php:84 vendor/lib/tabs/excerpts-tab.php:84
|
849 |
msgid "Custom excerpts/snippets"
|
850 |
msgstr ""
|
@@ -892,120 +1037,120 @@ msgid ""
|
|
892 |
"have a really good reason and your posts are short."
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: lib/tabs/excerpts-tab.php:
|
896 |
msgid "Allowable tags in excerpts"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: lib/tabs/excerpts-tab.php:
|
900 |
msgid ""
|
901 |
"List all tags you want to allow in excerpts. For example: <p><a>"
|
902 |
"<strong>."
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: lib/tabs/excerpts-tab.php:
|
906 |
msgid "Use custom fields for excerpts"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: lib/tabs/excerpts-tab.php:
|
910 |
#: vendor/lib/tabs/excerpts-tab.php:184
|
911 |
msgid "Use custom field content for building excerpts"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: lib/tabs/excerpts-tab.php:
|
915 |
msgid ""
|
916 |
"Use the custom fields setting for indexing for excerpt-making as well. "
|
917 |
"Enabling this option will show custom field content in Relevanssi-generated "
|
918 |
"excerpts."
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: lib/tabs/excerpts-tab.php:
|
922 |
msgid "Enable this option to use PDF content for excerpts."
|
923 |
msgstr ""
|
924 |
|
925 |
-
#: lib/tabs/excerpts-tab.php:
|
926 |
msgid "Current custom field setting"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: lib/tabs/excerpts-tab.php:
|
930 |
msgid "all visible custom fields"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: lib/tabs/excerpts-tab.php:
|
934 |
msgid "all custom fields"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: lib/tabs/excerpts-tab.php:
|
938 |
msgid "Just PDF content"
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: lib/tabs/excerpts-tab.php:
|
942 |
msgid "None selected"
|
943 |
msgstr ""
|
944 |
|
945 |
-
#: lib/tabs/excerpts-tab.php:
|
946 |
msgid "Search hit highlighting"
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: lib/tabs/excerpts-tab.php:
|
950 |
msgid "Highlight type"
|
951 |
msgstr ""
|
952 |
|
953 |
-
#: lib/tabs/excerpts-tab.php:
|
954 |
msgid "No highlighting"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: lib/tabs/excerpts-tab.php:
|
958 |
#: vendor/lib/tabs/excerpts-tab.php:239 vendor/lib/tabs/excerpts-tab.php:249
|
959 |
msgid "Text color"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: lib/tabs/excerpts-tab.php:
|
963 |
#: vendor/lib/tabs/excerpts-tab.php:240 vendor/lib/tabs/excerpts-tab.php:263
|
964 |
msgid "Background color"
|
965 |
msgstr ""
|
966 |
|
967 |
-
#: lib/tabs/excerpts-tab.php:
|
968 |
msgid "CSS Style"
|
969 |
msgstr ""
|
970 |
|
971 |
-
#: lib/tabs/excerpts-tab.php:
|
972 |
msgid "CSS Class"
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: lib/tabs/excerpts-tab.php:
|
976 |
#: vendor/lib/tabs/excerpts-tab.php:244 vendor/lib/tabs/excerpts-tab.php:422
|
977 |
msgid "Requires custom snippets to work."
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: lib/tabs/excerpts-tab.php:
|
981 |
msgid "CSS style for highlights"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: lib/tabs/excerpts-tab.php:
|
985 |
#, php-format
|
986 |
msgid ""
|
987 |
"The highlights will be wrapped in a %s with this CSS in the style parameter."
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: lib/tabs/excerpts-tab.php:
|
991 |
msgid "CSS class for highlights"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: lib/tabs/excerpts-tab.php:
|
995 |
#, php-format
|
996 |
msgid "The highlights will be wrapped in a %s with this class."
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: lib/tabs/excerpts-tab.php:
|
1000 |
msgid "Highlight in titles"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
-
#: lib/tabs/excerpts-tab.php:
|
1004 |
#: vendor/lib/tabs/excerpts-tab.php:322
|
1005 |
msgid "Highlight query terms in titles"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: lib/tabs/excerpts-tab.php:
|
1009 |
#, php-format
|
1010 |
msgid ""
|
1011 |
"Highlights in titles require changes to the search results template. You "
|
@@ -1013,16 +1158,16 @@ msgid ""
|
|
1013 |
"information, see the contextual help."
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: lib/tabs/excerpts-tab.php:
|
1017 |
msgid "Highlight in documents"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: lib/tabs/excerpts-tab.php:
|
1021 |
#: vendor/lib/tabs/excerpts-tab.php:344
|
1022 |
msgid "Highlight query terms in documents"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: lib/tabs/excerpts-tab.php:
|
1026 |
#, php-format
|
1027 |
msgid ""
|
1028 |
"Highlights hits when user opens the post from search results. This requires "
|
@@ -1030,47 +1175,51 @@ msgid ""
|
|
1030 |
"Relevanssi should add automatically."
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: lib/tabs/excerpts-tab.php:
|
1034 |
msgid "Highlight in comments"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: lib/tabs/excerpts-tab.php:
|
1038 |
#: vendor/lib/tabs/excerpts-tab.php:366
|
1039 |
msgid "Highlight query terms in comments"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
-
#: lib/tabs/excerpts-tab.php:
|
1043 |
msgid ""
|
1044 |
"Highlights hits in comments when user opens the post from search results."
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: lib/tabs/excerpts-tab.php:
|
1048 |
-
msgid "
|
|
|
|
|
|
|
|
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: lib/tabs/excerpts-tab.php:
|
1052 |
msgid ""
|
1053 |
-
"
|
1054 |
-
"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
-
#: lib/tabs/excerpts-tab.php:
|
1058 |
msgid "Breakdown of search results"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: lib/tabs/excerpts-tab.php:
|
1062 |
msgid "Breakdown of search hits in excerpts"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: lib/tabs/excerpts-tab.php:
|
1066 |
msgid "Show the breakdown of search hits in the excerpts."
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: lib/tabs/excerpts-tab.php:
|
1070 |
msgid "The breakdown format"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: lib/tabs/excerpts-tab.php:
|
1074 |
msgid ""
|
1075 |
"Use %body%, %title%, %categories%, %tags%, %taxonomies%, %comments%, "
|
1076 |
"%customfields%, %author%, %excerpt% and %mysqlcolumns% to display the number "
|
@@ -1079,43 +1228,43 @@ msgid ""
|
|
1079 |
"term got."
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#: lib/tabs/indexing-tab.php:
|
1083 |
#, php-format
|
1084 |
msgid "%s empties the existing index and rebuilds it from scratch."
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: lib/tabs/indexing-tab.php:
|
1088 |
msgid "Build the index"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
-
#: lib/tabs/indexing-tab.php:
|
1092 |
#, php-format
|
1093 |
msgid ""
|
1094 |
"%s doesn't empty the index and only indexes those posts that are not "
|
1095 |
"indexed. You can use it if you have to interrupt building the index."
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: lib/tabs/indexing-tab.php:
|
1099 |
msgid "Index unindexed posts"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: lib/tabs/indexing-tab.php:
|
1103 |
msgid "This doesn't index any taxonomy terms or users."
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: lib/tabs/indexing-tab.php:
|
1107 |
msgid "Time elapsed"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: lib/tabs/indexing-tab.php:
|
1111 |
msgid "Time remaining"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: lib/tabs/indexing-tab.php:
|
1115 |
msgid "some time"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
-
#: lib/tabs/indexing-tab.php:
|
1119 |
msgid ""
|
1120 |
"Indexing should respond quickly. If nothing happens in couple of minutes, "
|
1121 |
"it's probably stuck. The most common reasons for indexing issues are "
|
@@ -1125,358 +1274,357 @@ msgid ""
|
|
1125 |
"version of the Relevanssi scripts."
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#: lib/tabs/indexing-tab.php:
|
1129 |
msgid "State of the index"
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: lib/tabs/indexing-tab.php:
|
1133 |
msgid "document in the index."
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: lib/tabs/indexing-tab.php:
|
1137 |
msgid "user in the index."
|
1138 |
msgstr ""
|
1139 |
|
1140 |
-
#: lib/tabs/indexing-tab.php:
|
1141 |
msgid "taxonomy term in the index."
|
1142 |
msgstr ""
|
1143 |
|
1144 |
-
#: lib/tabs/indexing-tab.php:
|
1145 |
msgid "term in the index."
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: lib/tabs/indexing-tab.php:
|
1149 |
msgid "is the lowest post ID indexed."
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: lib/tabs/indexing-tab.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1153 |
msgid ""
|
1154 |
"WARNING: You've chosen no post types to index. Nothing will be indexed. "
|
1155 |
"Choose some post types to index."
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: lib/tabs/indexing-tab.php:
|
1159 |
msgid "Indexing options"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: lib/tabs/indexing-tab.php:
|
1163 |
msgid ""
|
1164 |
"Any changes to the settings on this page require reindexing before they take "
|
1165 |
"effect."
|
1166 |
msgstr ""
|
1167 |
|
1168 |
-
#: lib/tabs/indexing-tab.php:
|
1169 |
msgid "Post types"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: lib/tabs/indexing-tab.php:
|
1173 |
msgid "Post types to index"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
-
#: lib/tabs/indexing-tab.php:
|
1177 |
msgid "Type"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#: lib/tabs/indexing-tab.php:
|
1181 |
#: vendor/lib/tabs/indexing-tab.php:166 vendor/lib/tabs/indexing-tab.php:226
|
1182 |
msgid "Index"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: lib/tabs/indexing-tab.php:
|
1186 |
msgid "Excluded from search?"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: lib/tabs/indexing-tab.php:
|
1190 |
#, php-format
|
1191 |
msgid "Index post type %s"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: lib/tabs/indexing-tab.php:
|
1195 |
#: vendor/lib/tabs/indexing-tab.php:184 vendor/lib/tabs/indexing-tab.php:244
|
1196 |
msgid "yes"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
-
#: lib/tabs/indexing-tab.php:
|
1200 |
#, php-format
|
1201 |
msgid "Post type %s is excluded from search"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
-
#: lib/tabs/indexing-tab.php:
|
1205 |
#: vendor/lib/tabs/indexing-tab.php:186 vendor/lib/tabs/indexing-tab.php:242
|
1206 |
msgid "no"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: lib/tabs/indexing-tab.php:
|
1210 |
#, php-format
|
1211 |
msgid "Post type %s can be searched"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
-
#: lib/tabs/indexing-tab.php:
|
1215 |
msgid ""
|
1216 |
"If you want to index a post type that's marked 'Excluded from search', you "
|
1217 |
"can do that without worrying about it – but you need to uncheck the 'Respect "
|
1218 |
"exclude_from_search' setting from the Searching tab."
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: lib/tabs/indexing-tab.php:
|
1222 |
msgid "Index image files"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: lib/tabs/indexing-tab.php:
|
1226 |
msgid "Index image attachments"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: lib/tabs/indexing-tab.php:
|
1230 |
msgid ""
|
1231 |
"If this option is enabled, Relevanssi will include image attachments in the "
|
1232 |
"index. If the option is disabled, only other attachment types are included."
|
1233 |
msgstr ""
|
1234 |
|
1235 |
-
#: lib/tabs/indexing-tab.php:
|
1236 |
#, php-format
|
1237 |
msgid ""
|
1238 |
"For more detailed control over the attachment type indexing, see "
|
1239 |
"%1$sControlling attachment types in the Knowledge base%2$s."
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: lib/tabs/indexing-tab.php:
|
1243 |
msgid "Taxonomies"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: lib/tabs/indexing-tab.php:
|
1247 |
msgid "Taxonomy"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: lib/tabs/indexing-tab.php:
|
1251 |
msgid "Public?"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
-
#: lib/tabs/indexing-tab.php:
|
1255 |
#, php-format
|
1256 |
msgid "Index taxonomy %s"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
-
#: lib/tabs/indexing-tab.php:
|
1260 |
#, php-format
|
1261 |
msgid "Taxonomy %s is not public"
|
1262 |
msgstr ""
|
1263 |
|
1264 |
-
#: lib/tabs/indexing-tab.php:
|
1265 |
#, php-format
|
1266 |
msgid "Taxonomy %s is public"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: lib/tabs/indexing-tab.php:
|
1270 |
msgid ""
|
1271 |
"If you check a taxonomy here, the terms for that taxonomy are indexed with "
|
1272 |
"the posts. If you for example choose \"post_tag\", searching for a tag will "
|
1273 |
"find all posts that have the tag."
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: lib/tabs/indexing-tab.php:
|
1277 |
-
msgid "Comments"
|
1278 |
-
msgstr ""
|
1279 |
-
|
1280 |
-
#: lib/tabs/indexing-tab.php:319 lib/tabs/indexing-tab.php:333
|
1281 |
#: vendor/lib/tabs/indexing-tab.php:269 vendor/lib/tabs/indexing-tab.php:283
|
1282 |
msgid "none"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: lib/tabs/indexing-tab.php:
|
1286 |
msgid "comments"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
-
#: lib/tabs/indexing-tab.php:
|
1290 |
msgid "comments and pingbacks"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: lib/tabs/indexing-tab.php:
|
1294 |
msgid ""
|
1295 |
"If you choose to index comments, you can choose if you want to index just "
|
1296 |
"comments, or everything including comments and track- and pingbacks."
|
1297 |
msgstr ""
|
1298 |
|
1299 |
-
#: lib/tabs/indexing-tab.php:
|
1300 |
-
msgid "Custom fields"
|
1301 |
-
msgstr ""
|
1302 |
-
|
1303 |
-
#: lib/tabs/indexing-tab.php:334 vendor/lib/tabs/indexing-tab.php:284
|
1304 |
msgid "all"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
-
#: lib/tabs/indexing-tab.php:
|
1308 |
msgid "visible"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
-
#: lib/tabs/indexing-tab.php:
|
1312 |
#: vendor/lib/tabs/indexing-tab.php:286 vendor/lib/tabs/indexing-tab.php:318
|
1313 |
msgid "some"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: lib/tabs/indexing-tab.php:
|
1317 |
msgid "'All' indexes all custom fields for posts."
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: lib/tabs/indexing-tab.php:
|
1321 |
msgid ""
|
1322 |
"'Visible' only includes the custom fields that are visible in the user "
|
1323 |
"interface (with names that don't start with an underscore)."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: lib/tabs/indexing-tab.php:
|
1327 |
msgid "'Some' lets you choose individual custom fields to index."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: lib/tabs/indexing-tab.php:
|
1331 |
msgid ""
|
1332 |
"Advanced Custom Fields has lots of invisible custom fields with meta data. "
|
1333 |
"Selecting \"all\" will include lots of garbage in the index and excerpts. "
|
1334 |
"\"Visible\" is usually a better option with ACF."
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: lib/tabs/indexing-tab.php:
|
1338 |
msgid "Custom fields to index"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: lib/tabs/indexing-tab.php:
|
1342 |
msgid ""
|
1343 |
"Enter a comma-separated list of custom fields to include in the index. With "
|
1344 |
"Relevanssi Premium, you can also use 'fieldname_%_subfieldname' notation for "
|
1345 |
"ACF repeater fields."
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: lib/tabs/indexing-tab.php:
|
1349 |
msgid ""
|
1350 |
"You can use 'relevanssi_index_custom_fields' filter hook to adjust which "
|
1351 |
"custom fields are indexed."
|
1352 |
msgstr ""
|
1353 |
|
1354 |
-
#: lib/tabs/indexing-tab.php:
|
1355 |
#, php-format
|
1356 |
msgid ""
|
1357 |
"If you want the SKU included, choose %1$s and enter %2$s. Also see the "
|
1358 |
"contextual help for more details."
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: lib/tabs/indexing-tab.php:
|
1362 |
msgid "Author display names"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: lib/tabs/indexing-tab.php:
|
1366 |
#: vendor/lib/tabs/indexing-tab.php:332
|
1367 |
msgid "Index the post author display name"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
-
#: lib/tabs/indexing-tab.php:
|
1371 |
msgid ""
|
1372 |
"Searching for the post author display name will return posts by that author."
|
1373 |
msgstr ""
|
1374 |
|
1375 |
-
#: lib/tabs/indexing-tab.php:
|
1376 |
#: vendor/lib/tabs/indexing-tab.php:348 vendor/lib/tabs/indexing-tab.php:369
|
1377 |
msgid "Index the post excerpt"
|
1378 |
msgstr ""
|
1379 |
|
1380 |
-
#: lib/tabs/indexing-tab.php:
|
1381 |
msgid "Relevanssi will find posts by the content in the excerpt."
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: lib/tabs/indexing-tab.php:
|
1385 |
msgid ""
|
1386 |
"WooCommerce stores the product short description in the excerpt, so it's a "
|
1387 |
"good idea to index excerpts."
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: lib/tabs/indexing-tab.php:
|
1391 |
msgid "Shortcodes"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: lib/tabs/indexing-tab.php:
|
1395 |
msgid "Expand shortcodes"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
-
#: lib/tabs/indexing-tab.php:
|
1399 |
msgid "Expand shortcodes when indexing"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
-
#: lib/tabs/indexing-tab.php:
|
1403 |
msgid ""
|
1404 |
"WooCommerce has shortcodes that don't work well with Relevanssi. With "
|
1405 |
"WooCommerce, make sure the option is disabled."
|
1406 |
msgstr ""
|
1407 |
|
1408 |
-
#: lib/tabs/indexing-tab.php:
|
1409 |
msgid ""
|
1410 |
"If checked, Relevanssi will expand shortcodes in post content before "
|
1411 |
"indexing. Otherwise shortcodes will be stripped."
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: lib/tabs/indexing-tab.php:
|
1415 |
msgid ""
|
1416 |
"If you use shortcodes to include dynamic content, Relevanssi will not keep "
|
1417 |
"the index updated, the index will reflect the status of the shortcode "
|
1418 |
"content at the moment of indexing."
|
1419 |
msgstr ""
|
1420 |
|
1421 |
-
#: lib/tabs/indexing-tab.php:
|
1422 |
msgid "Advanced indexing settings"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#: lib/tabs/indexing-tab.php:
|
1426 |
msgid "Show advanced settings"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
-
#: lib/tabs/indexing-tab.php:
|
1430 |
msgid "Minimum word length"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: lib/tabs/indexing-tab.php:
|
1434 |
msgid "Words shorter than this many letters will not be indexed."
|
1435 |
msgstr ""
|
1436 |
|
1437 |
-
#: lib/tabs/indexing-tab.php:
|
1438 |
#, php-format
|
1439 |
msgid ""
|
1440 |
"To enable one-letter searches, you need to add a filter function on the "
|
1441 |
"filter hook %1$s that returns %2$s."
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: lib/tabs/indexing-tab.php:
|
1445 |
msgid "Punctuation control"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: lib/tabs/indexing-tab.php:
|
1449 |
msgid ""
|
1450 |
"Here you can adjust how the punctuation is controlled. For more information, "
|
1451 |
"see help. Remember that any changes here require reindexing, otherwise "
|
1452 |
"searches will fail to find posts they should."
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: lib/tabs/indexing-tab.php:
|
1456 |
msgid "Hyphens and dashes"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: lib/tabs/indexing-tab.php:
|
1460 |
-
#: lib/tabs/indexing-tab.php:
|
1461 |
#: vendor/lib/tabs/indexing-tab.php:462 vendor/lib/tabs/indexing-tab.php:476
|
1462 |
msgid "Keep"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
-
#: lib/tabs/indexing-tab.php:
|
1466 |
-
#: lib/tabs/indexing-tab.php:
|
1467 |
#: vendor/lib/tabs/indexing-tab.php:436 vendor/lib/tabs/indexing-tab.php:449
|
1468 |
#: vendor/lib/tabs/indexing-tab.php:463 vendor/lib/tabs/indexing-tab.php:477
|
1469 |
msgid "Replace with spaces"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
-
#: lib/tabs/indexing-tab.php:
|
1473 |
-
#: lib/tabs/indexing-tab.php:
|
1474 |
#: vendor/lib/tabs/indexing-tab.php:437 vendor/lib/tabs/indexing-tab.php:450
|
1475 |
#: vendor/lib/tabs/indexing-tab.php:464 vendor/lib/tabs/indexing-tab.php:478
|
1476 |
msgid "Remove"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: lib/tabs/indexing-tab.php:
|
1480 |
msgid ""
|
1481 |
"How Relevanssi should handle hyphens and dashes (en and em dashes)? "
|
1482 |
"Replacing with spaces is generally the best option, but in some cases "
|
@@ -1484,40 +1632,40 @@ msgid ""
|
|
1484 |
"option."
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: lib/tabs/indexing-tab.php:
|
1488 |
msgid "Apostrophes and quotes"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: lib/tabs/indexing-tab.php:
|
1492 |
msgid ""
|
1493 |
"How Relevanssi should handle apostrophes and quotes? It's not possible to "
|
1494 |
"keep them; that would lead to problems. Default behaviour is to replace with "
|
1495 |
"spaces, but sometimes removing makes sense."
|
1496 |
msgstr ""
|
1497 |
|
1498 |
-
#: lib/tabs/indexing-tab.php:
|
1499 |
msgid "Ampersands"
|
1500 |
msgstr ""
|
1501 |
|
1502 |
-
#: lib/tabs/indexing-tab.php:
|
1503 |
msgid ""
|
1504 |
"How Relevanssi should handle ampersands? Replacing with spaces is generally "
|
1505 |
"the best option, but if you talk a lot about D&D, for example, keeping "
|
1506 |
"the ampersands is useful."
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: lib/tabs/indexing-tab.php:
|
1510 |
msgid "Decimal separators"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: lib/tabs/indexing-tab.php:
|
1514 |
msgid ""
|
1515 |
"How Relevanssi should handle periods between decimals? Replacing with spaces "
|
1516 |
"is the default option, but that often leads to the numbers being removed "
|
1517 |
"completely. If you need to search decimal numbers a lot, keep the periods."
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: lib/tabs/indexing-tab.php:
|
1521 |
msgid "Hide advanced settings"
|
1522 |
msgstr ""
|
1523 |
|
@@ -2130,7 +2278,7 @@ msgstr ""
|
|
2130 |
msgid "Content stopwords"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
-
#: lib/tabs/stopwords-tab.php:
|
2134 |
msgid ""
|
2135 |
"Content stopwords are a premium feature where you can set stopwords that "
|
2136 |
"only apply to the post content. Those stopwords will still be indexed if "
|
@@ -2138,18 +2286,18 @@ msgid ""
|
|
2138 |
"of the post. To use content stopwords, you need Relevanssi Premium."
|
2139 |
msgstr ""
|
2140 |
|
2141 |
-
#: lib/tabs/stopwords-tab.php:
|
2142 |
msgid ""
|
2143 |
"Enter a word here to add it to the list of stopwords. The word will "
|
2144 |
"automatically be removed from the index, so re-indexing is not necessary. "
|
2145 |
"You can enter many words at the same time, separate words with commas."
|
2146 |
msgstr ""
|
2147 |
|
2148 |
-
#: lib/tabs/stopwords-tab.php:
|
2149 |
msgid "Stopword(s) to add"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
-
#: lib/tabs/stopwords-tab.php:
|
2153 |
msgid ""
|
2154 |
"Here's a list of stopwords in the database. Click a word to remove it from "
|
2155 |
"stopwords. Removing stopwords won't automatically return them to index, so "
|
@@ -2157,36 +2305,36 @@ msgid ""
|
|
2157 |
"back to index."
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: lib/tabs/stopwords-tab.php:
|
2161 |
msgid "Current stopwords"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: lib/tabs/stopwords-tab.php:
|
2165 |
#: vendor/lib/tabs/stopwords-tab.php:98 vendor/lib/tabs/stopwords-tab.php:101
|
2166 |
msgid "Exportable list of stopwords"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: lib/tabs/stopwords-tab.php:
|
2170 |
msgid ""
|
2171 |
"You can copy the list of stopwords here if you want to back up the list, "
|
2172 |
"copy it to a different blog or otherwise need the list."
|
2173 |
msgstr ""
|
2174 |
|
2175 |
-
#: lib/tabs/synonyms-tab.php:
|
2176 |
msgid ""
|
2177 |
"Add synonyms here to make the searches find better results. If you notice "
|
2178 |
"your users frequently misspelling a product name, or for other reasons use "
|
2179 |
"many names for one thing, adding synonyms will make the results better."
|
2180 |
msgstr ""
|
2181 |
|
2182 |
-
#: lib/tabs/synonyms-tab.php:
|
2183 |
msgid ""
|
2184 |
"Do not go overboard, though, as too many synonyms can make the search "
|
2185 |
"confusing: users understand if a search query doesn't match everything, but "
|
2186 |
"they get confused if the searches match to unexpected things."
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: lib/tabs/synonyms-tab.php:
|
2190 |
msgid ""
|
2191 |
"The format here is <code>key = value</code>. If you add <code>dog = hound</"
|
2192 |
"code> to the list of synonyms, searches for <code>dog</code> automatically "
|
@@ -2197,29 +2345,55 @@ msgid ""
|
|
2197 |
"and <code>hound</code>."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: lib/tabs/synonyms-tab.php:
|
2201 |
msgid ""
|
2202 |
"The synonyms are one direction only. If you want both directions, add the "
|
2203 |
"synonym again, reversed: <code>hound = dog</code>."
|
2204 |
msgstr ""
|
2205 |
|
2206 |
-
#: lib/tabs/synonyms-tab.php:
|
2207 |
msgid ""
|
2208 |
"It's possible to use phrases for the value, but not for the key. <code>dog = "
|
2209 |
"\"great dane\"</code> works, but <code>\"great dane\" = dog</code> doesn't."
|
2210 |
msgstr ""
|
2211 |
|
2212 |
-
#: lib/tabs/synonyms-tab.php:
|
2213 |
msgid ""
|
2214 |
"If you want to use synonyms in AND searches, enable synonym indexing on the "
|
2215 |
"Indexing tab."
|
2216 |
msgstr ""
|
2217 |
|
|
|
|
|
|
|
|
|
2218 |
#: vendor/lib/interface.php:637
|
2219 |
#, php-format
|
2220 |
msgid "To reset the logs, type \"reset\" into the box here %1$s and click %2$s"
|
2221 |
msgstr ""
|
2222 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2223 |
#: vendor/lib/tabs/excerpts-tab.php:410
|
2224 |
msgid "Show the breakdown of search hits in the excerpts"
|
2225 |
msgstr ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Relevanssi\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2021-02-25 10:14+0200\n"
|
6 |
"PO-Revision-Date: \n"
|
7 |
"Last-Translator: Mikko Saari <mikko@mikkosaari.fi>\n"
|
8 |
"Language-Team: \n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"X-Poedit-KeywordsList: _e;__;esc_html__;esc_html_e;_n\n"
|
14 |
"X-Poedit-Basepath: .\n"
|
15 |
+
"X-Generator: Poedit 2.4.2\n"
|
16 |
"X-Poedit-SearchPath-0: .\n"
|
17 |
"X-Poedit-SearchPath-1: lib\n"
|
18 |
|
19 |
+
#: lib/admin-ajax.php:91 vendor/lib/admin-ajax.php:89
|
20 |
#, php-format
|
21 |
msgid "Indexed %1$d post (total %2$d), processed %3$d / %4$d."
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: lib/admin-ajax.php:214 lib/tabs/indexing-tab.php:130
|
25 |
#: vendor/lib/admin-ajax.php:212 vendor/lib/tabs/indexing-tab.php:125
|
26 |
msgid "Results"
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: lib/admin-ajax.php:218 vendor/lib/admin-ajax.php:216
|
30 |
#, php-format
|
31 |
msgid "Found a total of %1$d posts, showing posts %2$d–%3$s."
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: lib/admin-ajax.php:220 vendor/lib/admin-ajax.php:218
|
35 |
msgid "Previous page"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: lib/admin-ajax.php:223 vendor/lib/admin-ajax.php:221
|
39 |
msgid "Next page"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: lib/admin-ajax.php:227 vendor/lib/admin-ajax.php:225
|
43 |
msgid "Score:"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: lib/admin-ajax.php:252 vendor/lib/admin-ajax.php:250
|
47 |
msgid "Edit"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: lib/admin-ajax.php:300 vendor/lib/admin-ajax.php:296
|
51 |
msgid "Query variables"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: lib/admin-ajax.php:369 vendor/lib/admin-ajax.php:365
|
55 |
msgid "Filters"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: lib/admin-ajax.php:370 vendor/lib/admin-ajax.php:366
|
59 |
msgid "show"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: lib/admin-ajax.php:371 vendor/lib/admin-ajax.php:367
|
63 |
msgid "hide"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: lib/common.php:999 vendor/lib/common.php:1601
|
67 |
msgid "25 most common words in the index"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: lib/common.php:1000 vendor/lib/common.php:1602
|
71 |
msgid ""
|
72 |
"These words are excellent stopword material. A word that appears in most of "
|
73 |
"the posts in the database is quite pointless when searching. This is also an "
|
77 |
"necessary."
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: lib/common.php:1006 vendor/lib/common.php:1608
|
81 |
msgid "Stopword Candidates"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: lib/common.php:1011 vendor/lib/common.php:1613
|
85 |
msgid "Add to stopwords"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: lib/common.php:1014 vendor/lib/common.php:1616
|
89 |
msgid "Add to content stopwords"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: lib/common.php:1334
|
93 |
+
#, php-format
|
94 |
+
msgid "Nothing found for post ID %d."
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: lib/common.php:1341
|
98 |
+
msgid "Possible reasons this post is not indexed"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: lib/common.php:1345
|
102 |
+
msgid "Post title"
|
103 |
+
msgstr ""
|
104 |
+
|
105 |
+
#: lib/common.php:1349
|
106 |
+
msgid "Post content"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: lib/common.php:1353 lib/tabs/indexing-tab.php:320
|
110 |
+
#: vendor/lib/tabs/indexing-tab.php:265
|
111 |
+
msgid "Comments"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: lib/common.php:1357
|
115 |
+
msgid "Tags"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: lib/common.php:1361
|
119 |
+
msgid "Categories"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: lib/common.php:1365
|
123 |
+
msgid "Other taxonomies"
|
124 |
+
msgstr ""
|
125 |
+
|
126 |
+
#: lib/common.php:1369
|
127 |
+
msgid "Links"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: lib/common.php:1373
|
131 |
+
msgid "Authors"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: lib/common.php:1377
|
135 |
+
msgid "Excerpt"
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: lib/common.php:1381 lib/tabs/indexing-tab.php:334
|
139 |
+
#: vendor/lib/tabs/indexing-tab.php:279
|
140 |
+
msgid "Custom fields"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: lib/common.php:1385
|
144 |
+
msgid "MySQL content"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: lib/compatibility/aioseo.php:88
|
148 |
+
msgid "Use All-in-One SEO noindex"
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: lib/compatibility/aioseo.php:93
|
152 |
+
msgid "Use All-in-One SEO noindex."
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: lib/compatibility/aioseo.php:95
|
156 |
+
msgid ""
|
157 |
+
"If checked, Relevanssi will not index posts marked as \"No index\" in All-in-"
|
158 |
+
"One SEO settings."
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: lib/compatibility/rankmath.php:80
|
162 |
+
msgid "Use Rank Math SEO noindex"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: lib/compatibility/rankmath.php:85
|
166 |
+
msgid "Use Rank Math SEO noindex."
|
167 |
+
msgstr ""
|
168 |
+
|
169 |
+
#: lib/compatibility/rankmath.php:87
|
170 |
+
msgid ""
|
171 |
+
"If checked, Relevanssi will not index posts marked as \"No index\" in Rank "
|
172 |
+
"Math SEO settings."
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: lib/compatibility/seoframework.php:76
|
176 |
+
msgid "Use SEO Framework noindex"
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: lib/compatibility/seoframework.php:81
|
180 |
+
msgid "Use SEO Framework noindex."
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: lib/compatibility/seoframework.php:83
|
184 |
+
msgid ""
|
185 |
+
"If checked, Relevanssi will not index posts marked as \"No index\" in SEO "
|
186 |
+
"Framework settings."
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: lib/compatibility/seopress.php:82
|
190 |
+
msgid "Use SEOPress noindex"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: lib/compatibility/seopress.php:87
|
194 |
+
msgid "Use SEOPress noindex."
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: lib/compatibility/seopress.php:89
|
198 |
+
msgid ""
|
199 |
+
"If checked, Relevanssi will not index posts marked as \"No index\" in "
|
200 |
+
"SEOPress settings."
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: lib/compatibility/yoast-seo.php:82
|
204 |
+
msgid "Use Yoast SEO noindex"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: lib/compatibility/yoast-seo.php:87
|
208 |
+
msgid "Use Yoast SEO noindex."
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: lib/compatibility/yoast-seo.php:89
|
212 |
+
msgid ""
|
213 |
+
"If checked, Relevanssi will not index posts marked as \"No index\" in Yoast "
|
214 |
+
"SEO settings."
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
#: lib/contextual-help.php:24 vendor/lib/contextual-help.php:28
|
218 |
#, php-format
|
219 |
msgid ""
|
229 |
"effect of enabling the inside-word highlights."
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: lib/contextual-help.php:26 vendor/lib/contextual-help.php:35
|
233 |
+
#: vendor/lib/tabs/excerpts-tab.php:378 vendor/lib/tabs/excerpts-tab.php:387
|
|
|
234 |
msgid "Uncheck this if you use non-ASCII characters"
|
235 |
msgstr ""
|
236 |
|
239 |
msgid "In order to adjust the throttle limit, you can use the %s filter hook."
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: lib/contextual-help.php:33 lib/interface.php:446
|
243 |
#: lib/tabs/overview-tab.php:56 vendor/lib/contextual-help.php:25
|
244 |
#: vendor/lib/interface.php:831 vendor/lib/tabs/overview-tab.php:56
|
245 |
msgid "Searching"
|
360 |
"be less than perfect in quality, add a filter that returns true on hook %s."
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: lib/contextual-help.php:123 lib/tabs/indexing-tab.php:393
|
364 |
#: vendor/lib/contextual-help.php:97 vendor/lib/tabs/indexing-tab.php:341
|
365 |
msgid "Excerpts"
|
366 |
msgstr ""
|
505 |
msgid "WordPress.org forum"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: lib/indexing.php:463
|
509 |
+
msgid "Relevanssi index exclude"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: lib/indexing.php:491
|
513 |
+
msgid "Blocked by a filter function"
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: lib/init.php:109 vendor/lib/init.php:88
|
517 |
msgid ""
|
518 |
"You do not have an index! Remember to build the index (click the \"Build the "
|
519 |
"index\" button), otherwise searching won't work."
|
520 |
msgstr ""
|
521 |
|
522 |
+
#: lib/init.php:121 vendor/lib/init.php:100
|
523 |
msgid ""
|
524 |
"Multibyte string functions are not available. Relevanssi may not work well "
|
525 |
"without them. Please install (or ask your host to install) the mbstring "
|
526 |
"extension."
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: lib/init.php:298 lib/init.php:299 lib/interface.php:109
|
530 |
#: lib/tabs/logging-tab.php:48 vendor/lib/init.php:237 vendor/lib/init.php:238
|
531 |
#: vendor/lib/interface.php:469 vendor/lib/tabs/logging-tab.php:48
|
532 |
msgid "User searches"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: lib/init.php:310 lib/init.php:311 lib/tabs/searching-tab.php:248
|
536 |
#: vendor/lib/init.php:249 vendor/lib/init.php:250
|
537 |
#: vendor/lib/tabs/searching-tab.php:248
|
538 |
msgid "Admin search"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: lib/init.php:523 vendor/lib/init.php:441
|
542 |
msgid "Settings"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: lib/init.php:526 vendor/lib/init.php:444
|
546 |
msgid "Go Premium!"
|
547 |
msgstr ""
|
548 |
|
554 |
msgid "Relevanssi Premium Search Options"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: lib/interface.php:111 vendor/lib/interface.php:471
|
558 |
msgid "Relevanssi User Searches"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: lib/interface.php:129 vendor/lib/interface.php:494
|
562 |
msgid "Enable query logging to see stats here."
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: lib/interface.php:141 vendor/lib/interface.php:506
|
566 |
msgid "Admin Search"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: lib/interface.php:166 vendor/lib/interface.php:536
|
570 |
msgid "Logs clear!"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: lib/interface.php:168 vendor/lib/interface.php:538
|
574 |
msgid "Clearing the logs failed."
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: lib/interface.php:202 vendor/lib/interface.php:572
|
578 |
msgid "Total Searches"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: lib/interface.php:204 vendor/lib/interface.php:574
|
582 |
msgid "Totals"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: lib/interface.php:208 vendor/lib/interface.php:578
|
586 |
msgid "Common Queries"
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: lib/interface.php:218 vendor/lib/interface.php:588
|
590 |
#, php-format
|
591 |
msgid ""
|
592 |
"Here you can see the %d most common user search queries, how many times "
|
593 |
"those queries were made and how many results were found for those queries."
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: lib/interface.php:222 lib/interface.php:244 lib/interface.php:293
|
597 |
#: vendor/lib/interface.php:592 vendor/lib/interface.php:614
|
598 |
#: vendor/lib/interface.php:664
|
599 |
msgid "Today and yesterday"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: lib/interface.php:225 lib/interface.php:231 lib/interface.php:236
|
603 |
+
#: lib/interface.php:253 vendor/lib/interface.php:595
|
604 |
#: vendor/lib/interface.php:601 vendor/lib/interface.php:606
|
605 |
#: vendor/lib/interface.php:623
|
606 |
#, php-format
|
607 |
msgid "Last %d days"
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: lib/interface.php:241 vendor/lib/interface.php:611
|
611 |
msgid "Unsuccessful Queries"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: lib/interface.php:248 lib/interface.php:294 vendor/lib/interface.php:618
|
615 |
#: vendor/lib/interface.php:665
|
616 |
msgid "Last 7 days"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: lib/interface.php:259 vendor/lib/interface.php:629
|
620 |
msgid "Reset Logs"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: lib/interface.php:268
|
624 |
msgid ""
|
625 |
"To reset the logs, type \"reset\" into the box here and click the Reset "
|
626 |
"button"
|
627 |
msgstr ""
|
628 |
|
629 |
+
#: lib/interface.php:271
|
630 |
msgid "Reset"
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: lib/interface.php:295 vendor/lib/interface.php:666
|
634 |
msgid "Last 30 days"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: lib/interface.php:296 vendor/lib/interface.php:667
|
638 |
msgid "Forever"
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: lib/interface.php:306 vendor/lib/interface.php:677
|
642 |
msgid "When"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: lib/interface.php:307 vendor/lib/interface.php:678
|
646 |
msgid "Searches"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: lib/interface.php:369 lib/log.php:195 vendor/lib/interface.php:740
|
650 |
#: vendor/lib/log.php:178
|
651 |
msgid "Query"
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: lib/interface.php:370 vendor/lib/interface.php:741
|
655 |
msgid "Hits"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: lib/interface.php:425 vendor/lib/interface.php:828
|
659 |
msgid "Overview"
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: lib/interface.php:432 lib/tabs/overview-tab.php:44
|
663 |
#: vendor/lib/interface.php:829 vendor/lib/tabs/overview-tab.php:44
|
664 |
msgid "Indexing"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: lib/interface.php:439 vendor/lib/interface.php:830
|
668 |
msgid "Attachments"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: lib/interface.php:453 vendor/lib/interface.php:832
|
672 |
msgid "Logging"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: lib/interface.php:460 lib/tabs/overview-tab.php:60
|
676 |
#: vendor/lib/interface.php:833 vendor/lib/tabs/overview-tab.php:60
|
677 |
msgid "Excerpts and highlights"
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: lib/interface.php:467 lib/tabs/synonyms-tab.php:27
|
681 |
+
#: lib/tabs/synonyms-tab.php:32 vendor/lib/interface.php:834
|
682 |
#: vendor/lib/tabs/synonyms-tab.php:25 vendor/lib/tabs/synonyms-tab.php:30
|
683 |
msgid "Synonyms"
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: lib/interface.php:474 lib/tabs/stopwords-tab.php:18
|
687 |
#: vendor/lib/interface.php:835 vendor/lib/tabs/stopwords-tab.php:18
|
688 |
msgid "Stopwords"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: lib/interface.php:481 lib/tabs/redirects-tab.php:18
|
692 |
#: vendor/lib/interface.php:836 vendor/lib/tabs/redirects-tab.php:18
|
693 |
msgid "Redirects"
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: lib/interface.php:488 lib/tabs/debugging-tab.php:28
|
697 |
+
msgid "Debugging"
|
698 |
msgstr ""
|
699 |
|
700 |
+
#: lib/interface.php:590 vendor/lib/interface.php:958
|
|
|
|
|
|
|
|
|
701 |
msgid "Click OK to copy Relevanssi options to all subsites"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: lib/interface.php:591 vendor/lib/interface.php:959
|
705 |
msgid "Are you sure you want to remove all stopwords?"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: lib/interface.php:592 vendor/lib/interface.php:960
|
709 |
msgid "Wiping out the index..."
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: lib/interface.php:593 vendor/lib/interface.php:961
|
713 |
msgid "Done."
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: lib/interface.php:594 vendor/lib/interface.php:962
|
717 |
msgid "Indexing users..."
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: lib/interface.php:595 vendor/lib/interface.php:963
|
721 |
msgid "Indexing the following taxonomies:"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: lib/interface.php:596 vendor/lib/interface.php:964
|
725 |
msgid "Indexing attachments..."
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: lib/interface.php:597 vendor/lib/interface.php:965
|
729 |
msgid "Counting posts..."
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: lib/interface.php:598 vendor/lib/interface.php:966
|
733 |
msgid "Counting taxonomy terms..."
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: lib/interface.php:599 vendor/lib/interface.php:967
|
737 |
msgid "Counting users..."
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: lib/interface.php:600 vendor/lib/interface.php:968
|
741 |
msgid "Counting attachments..."
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: lib/interface.php:601 vendor/lib/interface.php:969
|
745 |
msgid "posts found."
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: lib/interface.php:602 vendor/lib/interface.php:970
|
749 |
msgid "taxonomy terms found."
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: lib/interface.php:603 vendor/lib/interface.php:971
|
753 |
msgid "users found."
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: lib/interface.php:604 vendor/lib/interface.php:972
|
757 |
msgid "attachments found."
|
758 |
msgstr ""
|
759 |
|
760 |
+
#: lib/interface.php:605 vendor/lib/interface.php:973
|
761 |
msgid "Taxonomy term indexing is disabled."
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: lib/interface.php:606 vendor/lib/interface.php:974
|
765 |
msgid "User indexing is disabled."
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: lib/interface.php:607 vendor/lib/interface.php:975
|
769 |
msgid "Indexing complete."
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: lib/interface.php:608 vendor/lib/interface.php:976
|
773 |
msgid "posts excluded."
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: lib/interface.php:609 vendor/lib/interface.php:977
|
777 |
msgid "Settings have changed, please save the options before indexing."
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: lib/interface.php:610 vendor/lib/interface.php:978
|
781 |
msgid "Reload the page to refresh the state of the index."
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: lib/interface.php:611 vendor/lib/interface.php:979
|
785 |
msgid "Are you sure you want to delete all attachment content from the index?"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: lib/interface.php:612 vendor/lib/interface.php:980
|
789 |
msgid "Relevanssi attachment data wiped clean."
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: lib/interface.php:613
|
793 |
msgid "There were problems wiping the Relevanssi attachment data clean."
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: lib/interface.php:614 vendor/lib/interface.php:981
|
797 |
msgid "hour"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: lib/interface.php:615 vendor/lib/interface.php:982
|
801 |
msgid "hours"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: lib/interface.php:616 vendor/lib/interface.php:983
|
805 |
msgid "about"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: lib/interface.php:617 vendor/lib/interface.php:984
|
809 |
msgid "about an hour"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: lib/interface.php:618 vendor/lib/interface.php:985
|
813 |
msgid "about an hour and a half"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: lib/interface.php:619 vendor/lib/interface.php:986
|
817 |
msgid "minute"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: lib/interface.php:620 vendor/lib/interface.php:987
|
821 |
msgid "minutes"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: lib/interface.php:621 vendor/lib/interface.php:988
|
825 |
msgid "less than a minute"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: lib/interface.php:622 vendor/lib/interface.php:989
|
829 |
msgid "we're done!"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: lib/interface.php:689 vendor/lib/interface.php:1056
|
833 |
msgid "Tag weight"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: lib/interface.php:697 vendor/lib/interface.php:1064
|
837 |
msgid "Category weight"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: lib/log.php:188
|
841 |
+
msgid "Logged searches"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: lib/log.php:191 vendor/lib/log.php:174
|
845 |
msgid "Time"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: lib/log.php:199 vendor/lib/log.php:182
|
849 |
msgid "Hits found"
|
850 |
msgstr ""
|
851 |
|
852 |
+
#: lib/log.php:203 vendor/lib/log.php:186
|
853 |
msgid "IP address"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: lib/log.php:298
|
857 |
+
msgid "No search keywords logged."
|
858 |
+
msgstr ""
|
859 |
+
|
860 |
#: lib/privacy.php:34 vendor/lib/privacy.php:34
|
861 |
msgid "What personal data we collect and why we collect it"
|
862 |
msgstr ""
|
899 |
msgid "Relevanssi Search Logs"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: lib/shortcodes.php:126 vendor/lib/shortcodes.php:131
|
903 |
msgid "None"
|
904 |
msgstr ""
|
905 |
|
920 |
msgid "Added stopwords from the stopword file."
|
921 |
msgstr ""
|
922 |
|
923 |
+
#: lib/stopwords.php:138 vendor/lib/stopwords.php:96
|
924 |
#, php-format
|
925 |
msgid "Successfully added %1$d/%2$d terms to stopwords!"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: lib/stopwords.php:157 vendor/lib/stopwords.php:107
|
929 |
#, php-format
|
930 |
msgid "Term '%s' added to stopwords!"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: lib/stopwords.php:166 vendor/lib/stopwords.php:110
|
934 |
#, php-format
|
935 |
msgid "Couldn't add term '%s' to stopwords!"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: lib/stopwords.php:317 vendor/lib/stopwords.php:162
|
939 |
msgid "All stopwords removed! Remember to re-index."
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: lib/stopwords.php:325 vendor/lib/stopwords.php:164
|
943 |
msgid "There was a problem, and stopwords couldn't be removed."
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: lib/stopwords.php:362 vendor/lib/stopwords.php:187
|
947 |
#, php-format
|
948 |
msgid "Term '%s' removed from stopwords! Re-index to get it back to index."
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: lib/stopwords.php:375 vendor/lib/stopwords.php:193
|
952 |
#, php-format
|
953 |
msgid "Couldn't remove term '%s' from stopwords!"
|
954 |
msgstr ""
|
973 |
"Relevanssi Premium here%2$s."
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: lib/tabs/debugging-tab.php:30
|
977 |
+
msgid ""
|
978 |
+
"In order to figure out problems with indexing posts, you can test how "
|
979 |
+
"Relevanssi sees the post by entering the post ID number in the field below."
|
980 |
+
msgstr ""
|
981 |
+
|
982 |
+
#: lib/tabs/debugging-tab.php:34
|
983 |
+
#, php-format
|
984 |
+
msgid ""
|
985 |
+
"In Relevanssi Premium, you can find this feature for each post on the post "
|
986 |
+
"edit page. %1$sBuy Relevanssi Premium here%2$s."
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: lib/tabs/debugging-tab.php:37
|
990 |
+
msgid "The post ID"
|
991 |
+
msgstr ""
|
992 |
+
|
993 |
#: lib/tabs/excerpts-tab.php:84 vendor/lib/tabs/excerpts-tab.php:84
|
994 |
msgid "Custom excerpts/snippets"
|
995 |
msgstr ""
|
1037 |
"have a really good reason and your posts are short."
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: lib/tabs/excerpts-tab.php:152 vendor/lib/tabs/excerpts-tab.php:150
|
1041 |
msgid "Allowable tags in excerpts"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: lib/tabs/excerpts-tab.php:162 vendor/lib/tabs/excerpts-tab.php:160
|
1045 |
msgid ""
|
1046 |
"List all tags you want to allow in excerpts. For example: <p><a>"
|
1047 |
"<strong>."
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: lib/tabs/excerpts-tab.php:173 vendor/lib/tabs/excerpts-tab.php:171
|
1051 |
msgid "Use custom fields for excerpts"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: lib/tabs/excerpts-tab.php:184 vendor/lib/tabs/excerpts-tab.php:175
|
1055 |
#: vendor/lib/tabs/excerpts-tab.php:184
|
1056 |
msgid "Use custom field content for building excerpts"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: lib/tabs/excerpts-tab.php:186 vendor/lib/tabs/excerpts-tab.php:187
|
1060 |
msgid ""
|
1061 |
"Use the custom fields setting for indexing for excerpt-making as well. "
|
1062 |
"Enabling this option will show custom field content in Relevanssi-generated "
|
1063 |
"excerpts."
|
1064 |
msgstr ""
|
1065 |
|
1066 |
+
#: lib/tabs/excerpts-tab.php:189 vendor/lib/tabs/excerpts-tab.php:190
|
1067 |
msgid "Enable this option to use PDF content for excerpts."
|
1068 |
msgstr ""
|
1069 |
|
1070 |
+
#: lib/tabs/excerpts-tab.php:194 vendor/lib/tabs/excerpts-tab.php:195
|
1071 |
msgid "Current custom field setting"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: lib/tabs/excerpts-tab.php:197 vendor/lib/tabs/excerpts-tab.php:198
|
1075 |
msgid "all visible custom fields"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: lib/tabs/excerpts-tab.php:199 vendor/lib/tabs/excerpts-tab.php:200
|
1079 |
msgid "all custom fields"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: lib/tabs/excerpts-tab.php:203 vendor/lib/tabs/excerpts-tab.php:204
|
1083 |
msgid "Just PDF content"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: lib/tabs/excerpts-tab.php:205 vendor/lib/tabs/excerpts-tab.php:206
|
1087 |
msgid "None selected"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: lib/tabs/excerpts-tab.php:213 vendor/lib/tabs/excerpts-tab.php:214
|
1091 |
msgid "Search hit highlighting"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: lib/tabs/excerpts-tab.php:224 vendor/lib/tabs/excerpts-tab.php:225
|
1095 |
msgid "Highlight type"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: lib/tabs/excerpts-tab.php:234 vendor/lib/tabs/excerpts-tab.php:235
|
1099 |
msgid "No highlighting"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: lib/tabs/excerpts-tab.php:238 lib/tabs/excerpts-tab.php:248
|
1103 |
#: vendor/lib/tabs/excerpts-tab.php:239 vendor/lib/tabs/excerpts-tab.php:249
|
1104 |
msgid "Text color"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
+
#: lib/tabs/excerpts-tab.php:239 lib/tabs/excerpts-tab.php:262
|
1108 |
#: vendor/lib/tabs/excerpts-tab.php:240 vendor/lib/tabs/excerpts-tab.php:263
|
1109 |
msgid "Background color"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
+
#: lib/tabs/excerpts-tab.php:240 vendor/lib/tabs/excerpts-tab.php:241
|
1113 |
msgid "CSS Style"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
+
#: lib/tabs/excerpts-tab.php:241 vendor/lib/tabs/excerpts-tab.php:242
|
1117 |
msgid "CSS Class"
|
1118 |
msgstr ""
|
1119 |
|
1120 |
+
#: lib/tabs/excerpts-tab.php:243 lib/tabs/excerpts-tab.php:406
|
1121 |
#: vendor/lib/tabs/excerpts-tab.php:244 vendor/lib/tabs/excerpts-tab.php:422
|
1122 |
msgid "Requires custom snippets to work."
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: lib/tabs/excerpts-tab.php:276 vendor/lib/tabs/excerpts-tab.php:277
|
1126 |
msgid "CSS style for highlights"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
+
#: lib/tabs/excerpts-tab.php:287 vendor/lib/tabs/excerpts-tab.php:288
|
1130 |
#, php-format
|
1131 |
msgid ""
|
1132 |
"The highlights will be wrapped in a %s with this CSS in the style parameter."
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: lib/tabs/excerpts-tab.php:292 vendor/lib/tabs/excerpts-tab.php:293
|
1136 |
msgid "CSS class for highlights"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: lib/tabs/excerpts-tab.php:303 vendor/lib/tabs/excerpts-tab.php:304
|
1140 |
#, php-format
|
1141 |
msgid "The highlights will be wrapped in a %s with this class."
|
1142 |
msgstr ""
|
1143 |
|
1144 |
+
#: lib/tabs/excerpts-tab.php:308 vendor/lib/tabs/excerpts-tab.php:309
|
1145 |
msgid "Highlight in titles"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
+
#: lib/tabs/excerpts-tab.php:319 vendor/lib/tabs/excerpts-tab.php:313
|
1149 |
#: vendor/lib/tabs/excerpts-tab.php:322
|
1150 |
msgid "Highlight query terms in titles"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: lib/tabs/excerpts-tab.php:322 vendor/lib/tabs/excerpts-tab.php:326
|
1154 |
#, php-format
|
1155 |
msgid ""
|
1156 |
"Highlights in titles require changes to the search results template. You "
|
1158 |
"information, see the contextual help."
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: lib/tabs/excerpts-tab.php:327 vendor/lib/tabs/excerpts-tab.php:331
|
1162 |
msgid "Highlight in documents"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
+
#: lib/tabs/excerpts-tab.php:338 vendor/lib/tabs/excerpts-tab.php:335
|
1166 |
#: vendor/lib/tabs/excerpts-tab.php:344
|
1167 |
msgid "Highlight query terms in documents"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: lib/tabs/excerpts-tab.php:341 vendor/lib/tabs/excerpts-tab.php:348
|
1171 |
#, php-format
|
1172 |
msgid ""
|
1173 |
"Highlights hits when user opens the post from search results. This requires "
|
1175 |
"Relevanssi should add automatically."
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: lib/tabs/excerpts-tab.php:346 vendor/lib/tabs/excerpts-tab.php:353
|
1179 |
msgid "Highlight in comments"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: lib/tabs/excerpts-tab.php:357 vendor/lib/tabs/excerpts-tab.php:357
|
1183 |
#: vendor/lib/tabs/excerpts-tab.php:366
|
1184 |
msgid "Highlight query terms in comments"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: lib/tabs/excerpts-tab.php:359 vendor/lib/tabs/excerpts-tab.php:369
|
1188 |
msgid ""
|
1189 |
"Highlights hits in comments when user opens the post from search results."
|
1190 |
msgstr ""
|
1191 |
|
1192 |
+
#: lib/tabs/excerpts-tab.php:364
|
1193 |
+
msgid "Expand highlights"
|
1194 |
+
msgstr ""
|
1195 |
+
|
1196 |
+
#: lib/tabs/excerpts-tab.php:375
|
1197 |
+
msgid "Expand highlights to cover full words"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: lib/tabs/excerpts-tab.php:377
|
1201 |
msgid ""
|
1202 |
+
"When a highlight matches part of the word, if this option is enabled, the "
|
1203 |
+
"highlight will be expanded to highlight the whole word."
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: lib/tabs/excerpts-tab.php:382 vendor/lib/tabs/excerpts-tab.php:395
|
1207 |
msgid "Breakdown of search results"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: lib/tabs/excerpts-tab.php:393 vendor/lib/tabs/excerpts-tab.php:406
|
1211 |
msgid "Breakdown of search hits in excerpts"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: lib/tabs/excerpts-tab.php:404 vendor/lib/tabs/excerpts-tab.php:419
|
1215 |
msgid "Show the breakdown of search hits in the excerpts."
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: lib/tabs/excerpts-tab.php:411 vendor/lib/tabs/excerpts-tab.php:427
|
1219 |
msgid "The breakdown format"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: lib/tabs/excerpts-tab.php:421
|
1223 |
msgid ""
|
1224 |
"Use %body%, %title%, %categories%, %tags%, %taxonomies%, %comments%, "
|
1225 |
"%customfields%, %author%, %excerpt% and %mysqlcolumns% to display the number "
|
1228 |
"term got."
|
1229 |
msgstr ""
|
1230 |
|
1231 |
+
#: lib/tabs/indexing-tab.php:117 vendor/lib/tabs/indexing-tab.php:112
|
1232 |
#, php-format
|
1233 |
msgid "%s empties the existing index and rebuilds it from scratch."
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: lib/tabs/indexing-tab.php:117 vendor/lib/tabs/indexing-tab.php:112
|
1237 |
msgid "Build the index"
|
1238 |
msgstr ""
|
1239 |
|
1240 |
+
#: lib/tabs/indexing-tab.php:119 vendor/lib/tabs/indexing-tab.php:114
|
1241 |
#, php-format
|
1242 |
msgid ""
|
1243 |
"%s doesn't empty the index and only indexes those posts that are not "
|
1244 |
"indexed. You can use it if you have to interrupt building the index."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: lib/tabs/indexing-tab.php:119 vendor/lib/tabs/indexing-tab.php:114
|
1248 |
msgid "Index unindexed posts"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
+
#: lib/tabs/indexing-tab.php:122 vendor/lib/tabs/indexing-tab.php:117
|
1252 |
msgid "This doesn't index any taxonomy terms or users."
|
1253 |
msgstr ""
|
1254 |
|
1255 |
+
#: lib/tabs/indexing-tab.php:129 vendor/lib/tabs/indexing-tab.php:124
|
1256 |
msgid "Time elapsed"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: lib/tabs/indexing-tab.php:129 vendor/lib/tabs/indexing-tab.php:124
|
1260 |
msgid "Time remaining"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
+
#: lib/tabs/indexing-tab.php:129 vendor/lib/tabs/indexing-tab.php:124
|
1264 |
msgid "some time"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: lib/tabs/indexing-tab.php:131 vendor/lib/tabs/indexing-tab.php:126
|
1268 |
msgid ""
|
1269 |
"Indexing should respond quickly. If nothing happens in couple of minutes, "
|
1270 |
"it's probably stuck. The most common reasons for indexing issues are "
|
1274 |
"version of the Relevanssi scripts."
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: lib/tabs/indexing-tab.php:135 vendor/lib/tabs/indexing-tab.php:130
|
1278 |
msgid "State of the index"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: lib/tabs/indexing-tab.php:136 vendor/lib/tabs/indexing-tab.php:131
|
1282 |
msgid "document in the index."
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
#: lib/tabs/indexing-tab.php:138 vendor/lib/tabs/indexing-tab.php:133
|
1286 |
msgid "user in the index."
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: lib/tabs/indexing-tab.php:139 vendor/lib/tabs/indexing-tab.php:134
|
1290 |
msgid "taxonomy term in the index."
|
1291 |
msgstr ""
|
1292 |
|
1293 |
+
#: lib/tabs/indexing-tab.php:142 vendor/lib/tabs/indexing-tab.php:137
|
1294 |
msgid "term in the index."
|
1295 |
msgstr ""
|
1296 |
|
1297 |
+
#: lib/tabs/indexing-tab.php:143 vendor/lib/tabs/indexing-tab.php:138
|
1298 |
msgid "is the lowest post ID indexed."
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: lib/tabs/indexing-tab.php:145
|
1302 |
+
#, php-format
|
1303 |
+
msgid ""
|
1304 |
+
"These values may be inaccurate. If you need exact values, %1$supdate the "
|
1305 |
+
"counts%2$s"
|
1306 |
+
msgstr ""
|
1307 |
+
|
1308 |
+
#: lib/tabs/indexing-tab.php:155 vendor/lib/tabs/indexing-tab.php:148
|
1309 |
msgid ""
|
1310 |
"WARNING: You've chosen no post types to index. Nothing will be indexed. "
|
1311 |
"Choose some post types to index."
|
1312 |
msgstr ""
|
1313 |
|
1314 |
+
#: lib/tabs/indexing-tab.php:160 vendor/lib/tabs/indexing-tab.php:153
|
1315 |
msgid "Indexing options"
|
1316 |
msgstr ""
|
1317 |
|
1318 |
+
#: lib/tabs/indexing-tab.php:162 vendor/lib/tabs/indexing-tab.php:155
|
1319 |
msgid ""
|
1320 |
"Any changes to the settings on this page require reindexing before they take "
|
1321 |
"effect."
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: lib/tabs/indexing-tab.php:166 vendor/lib/tabs/indexing-tab.php:159
|
1325 |
msgid "Post types"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: lib/tabs/indexing-tab.php:170
|
1329 |
msgid "Post types to index"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: lib/tabs/indexing-tab.php:174 vendor/lib/tabs/indexing-tab.php:165
|
1333 |
msgid "Type"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: lib/tabs/indexing-tab.php:175 lib/tabs/indexing-tab.php:267
|
1337 |
#: vendor/lib/tabs/indexing-tab.php:166 vendor/lib/tabs/indexing-tab.php:226
|
1338 |
msgid "Index"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
#: lib/tabs/indexing-tab.php:176 vendor/lib/tabs/indexing-tab.php:167
|
1342 |
msgid "Excluded from search?"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: lib/tabs/indexing-tab.php:193
|
1346 |
#, php-format
|
1347 |
msgid "Index post type %s"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: lib/tabs/indexing-tab.php:195 lib/tabs/indexing-tab.php:289
|
1351 |
#: vendor/lib/tabs/indexing-tab.php:184 vendor/lib/tabs/indexing-tab.php:244
|
1352 |
msgid "yes"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: lib/tabs/indexing-tab.php:197
|
1356 |
#, php-format
|
1357 |
msgid "Post type %s is excluded from search"
|
1358 |
msgstr ""
|
1359 |
|
1360 |
+
#: lib/tabs/indexing-tab.php:199 lib/tabs/indexing-tab.php:285
|
1361 |
#: vendor/lib/tabs/indexing-tab.php:186 vendor/lib/tabs/indexing-tab.php:242
|
1362 |
msgid "no"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: lib/tabs/indexing-tab.php:201
|
1366 |
#, php-format
|
1367 |
msgid "Post type %s can be searched"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
+
#: lib/tabs/indexing-tab.php:232 vendor/lib/tabs/indexing-tab.php:212
|
1371 |
msgid ""
|
1372 |
"If you want to index a post type that's marked 'Excluded from search', you "
|
1373 |
"can do that without worrying about it – but you need to uncheck the 'Respect "
|
1374 |
"exclude_from_search' setting from the Searching tab."
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: lib/tabs/indexing-tab.php:244
|
1378 |
msgid "Index image files"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: lib/tabs/indexing-tab.php:249
|
1382 |
msgid "Index image attachments"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: lib/tabs/indexing-tab.php:251
|
1386 |
msgid ""
|
1387 |
"If this option is enabled, Relevanssi will include image attachments in the "
|
1388 |
"index. If the option is disabled, only other attachment types are included."
|
1389 |
msgstr ""
|
1390 |
|
1391 |
+
#: lib/tabs/indexing-tab.php:253
|
1392 |
#, php-format
|
1393 |
msgid ""
|
1394 |
"For more detailed control over the attachment type indexing, see "
|
1395 |
"%1$sControlling attachment types in the Knowledge base%2$s."
|
1396 |
msgstr ""
|
1397 |
|
1398 |
+
#: lib/tabs/indexing-tab.php:259 vendor/lib/tabs/indexing-tab.php:218
|
1399 |
msgid "Taxonomies"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
+
#: lib/tabs/indexing-tab.php:266 vendor/lib/tabs/indexing-tab.php:225
|
1403 |
msgid "Taxonomy"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
+
#: lib/tabs/indexing-tab.php:268 vendor/lib/tabs/indexing-tab.php:227
|
1407 |
msgid "Public?"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
+
#: lib/tabs/indexing-tab.php:284
|
1411 |
#, php-format
|
1412 |
msgid "Index taxonomy %s"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: lib/tabs/indexing-tab.php:287
|
1416 |
#, php-format
|
1417 |
msgid "Taxonomy %s is not public"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: lib/tabs/indexing-tab.php:291
|
1421 |
#, php-format
|
1422 |
msgid "Taxonomy %s is public"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: lib/tabs/indexing-tab.php:313 vendor/lib/tabs/indexing-tab.php:258
|
1426 |
msgid ""
|
1427 |
"If you check a taxonomy here, the terms for that taxonomy are indexed with "
|
1428 |
"the posts. If you for example choose \"post_tag\", searching for a tag will "
|
1429 |
"find all posts that have the tag."
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
#: lib/tabs/indexing-tab.php:324 lib/tabs/indexing-tab.php:338
|
|
|
|
|
|
|
|
|
1433 |
#: vendor/lib/tabs/indexing-tab.php:269 vendor/lib/tabs/indexing-tab.php:283
|
1434 |
msgid "none"
|
1435 |
msgstr ""
|
1436 |
|
1437 |
+
#: lib/tabs/indexing-tab.php:325 vendor/lib/tabs/indexing-tab.php:270
|
1438 |
msgid "comments"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
+
#: lib/tabs/indexing-tab.php:326 vendor/lib/tabs/indexing-tab.php:271
|
1442 |
msgid "comments and pingbacks"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
+
#: lib/tabs/indexing-tab.php:328 vendor/lib/tabs/indexing-tab.php:273
|
1446 |
msgid ""
|
1447 |
"If you choose to index comments, you can choose if you want to index just "
|
1448 |
"comments, or everything including comments and track- and pingbacks."
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: lib/tabs/indexing-tab.php:339 vendor/lib/tabs/indexing-tab.php:284
|
|
|
|
|
|
|
|
|
1452 |
msgid "all"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: lib/tabs/indexing-tab.php:340 vendor/lib/tabs/indexing-tab.php:285
|
1456 |
msgid "visible"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: lib/tabs/indexing-tab.php:341 lib/tabs/indexing-tab.php:373
|
1460 |
#: vendor/lib/tabs/indexing-tab.php:286 vendor/lib/tabs/indexing-tab.php:318
|
1461 |
msgid "some"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: lib/tabs/indexing-tab.php:345 vendor/lib/tabs/indexing-tab.php:290
|
1465 |
msgid "'All' indexes all custom fields for posts."
|
1466 |
msgstr ""
|
1467 |
|
1468 |
+
#: lib/tabs/indexing-tab.php:347 vendor/lib/tabs/indexing-tab.php:292
|
1469 |
msgid ""
|
1470 |
"'Visible' only includes the custom fields that are visible in the user "
|
1471 |
"interface (with names that don't start with an underscore)."
|
1472 |
msgstr ""
|
1473 |
|
1474 |
+
#: lib/tabs/indexing-tab.php:349 vendor/lib/tabs/indexing-tab.php:294
|
1475 |
msgid "'Some' lets you choose individual custom fields to index."
|
1476 |
msgstr ""
|
1477 |
|
1478 |
+
#: lib/tabs/indexing-tab.php:355 vendor/lib/tabs/indexing-tab.php:300
|
1479 |
msgid ""
|
1480 |
"Advanced Custom Fields has lots of invisible custom fields with meta data. "
|
1481 |
"Selecting \"all\" will include lots of garbage in the index and excerpts. "
|
1482 |
"\"Visible\" is usually a better option with ACF."
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: lib/tabs/indexing-tab.php:366 vendor/lib/tabs/indexing-tab.php:311
|
1486 |
msgid "Custom fields to index"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: lib/tabs/indexing-tab.php:368 vendor/lib/tabs/indexing-tab.php:313
|
1490 |
msgid ""
|
1491 |
"Enter a comma-separated list of custom fields to include in the index. With "
|
1492 |
"Relevanssi Premium, you can also use 'fieldname_%_subfieldname' notation for "
|
1493 |
"ACF repeater fields."
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: lib/tabs/indexing-tab.php:369 vendor/lib/tabs/indexing-tab.php:314
|
1497 |
msgid ""
|
1498 |
"You can use 'relevanssi_index_custom_fields' filter hook to adjust which "
|
1499 |
"custom fields are indexed."
|
1500 |
msgstr ""
|
1501 |
|
1502 |
+
#: lib/tabs/indexing-tab.php:373 vendor/lib/tabs/indexing-tab.php:318
|
1503 |
#, php-format
|
1504 |
msgid ""
|
1505 |
"If you want the SKU included, choose %1$s and enter %2$s. Also see the "
|
1506 |
"contextual help for more details."
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: lib/tabs/indexing-tab.php:380 vendor/lib/tabs/indexing-tab.php:325
|
1510 |
msgid "Author display names"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: lib/tabs/indexing-tab.php:385 vendor/lib/tabs/indexing-tab.php:329
|
1514 |
#: vendor/lib/tabs/indexing-tab.php:332
|
1515 |
msgid "Index the post author display name"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
+
#: lib/tabs/indexing-tab.php:387 vendor/lib/tabs/indexing-tab.php:334
|
1519 |
msgid ""
|
1520 |
"Searching for the post author display name will return posts by that author."
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: lib/tabs/indexing-tab.php:398 vendor/lib/tabs/indexing-tab.php:345
|
1524 |
#: vendor/lib/tabs/indexing-tab.php:348 vendor/lib/tabs/indexing-tab.php:369
|
1525 |
msgid "Index the post excerpt"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
+
#: lib/tabs/indexing-tab.php:400 vendor/lib/tabs/indexing-tab.php:350
|
1529 |
msgid "Relevanssi will find posts by the content in the excerpt."
|
1530 |
msgstr ""
|
1531 |
|
1532 |
+
#: lib/tabs/indexing-tab.php:402 vendor/lib/tabs/indexing-tab.php:352
|
1533 |
msgid ""
|
1534 |
"WooCommerce stores the product short description in the excerpt, so it's a "
|
1535 |
"good idea to index excerpts."
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: lib/tabs/indexing-tab.php:409 vendor/lib/tabs/indexing-tab.php:360
|
1539 |
msgid "Shortcodes"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
+
#: lib/tabs/indexing-tab.php:414 vendor/lib/tabs/indexing-tab.php:365
|
1543 |
msgid "Expand shortcodes"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
+
#: lib/tabs/indexing-tab.php:419 vendor/lib/tabs/indexing-tab.php:372
|
1547 |
msgid "Expand shortcodes when indexing"
|
1548 |
msgstr ""
|
1549 |
|
1550 |
+
#: lib/tabs/indexing-tab.php:422 vendor/lib/tabs/indexing-tab.php:375
|
1551 |
msgid ""
|
1552 |
"WooCommerce has shortcodes that don't work well with Relevanssi. With "
|
1553 |
"WooCommerce, make sure the option is disabled."
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: lib/tabs/indexing-tab.php:424 vendor/lib/tabs/indexing-tab.php:377
|
1557 |
msgid ""
|
1558 |
"If checked, Relevanssi will expand shortcodes in post content before "
|
1559 |
"indexing. Otherwise shortcodes will be stripped."
|
1560 |
msgstr ""
|
1561 |
|
1562 |
+
#: lib/tabs/indexing-tab.php:425 vendor/lib/tabs/indexing-tab.php:378
|
1563 |
msgid ""
|
1564 |
"If you use shortcodes to include dynamic content, Relevanssi will not keep "
|
1565 |
"the index updated, the index will reflect the status of the shortcode "
|
1566 |
"content at the moment of indexing."
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: lib/tabs/indexing-tab.php:439 vendor/lib/tabs/indexing-tab.php:409
|
1570 |
msgid "Advanced indexing settings"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: lib/tabs/indexing-tab.php:441 vendor/lib/tabs/indexing-tab.php:411
|
1574 |
msgid "Show advanced settings"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: lib/tabs/indexing-tab.php:446 vendor/lib/tabs/indexing-tab.php:416
|
1578 |
msgid "Minimum word length"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
+
#: lib/tabs/indexing-tab.php:450 vendor/lib/tabs/indexing-tab.php:420
|
1582 |
msgid "Words shorter than this many letters will not be indexed."
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: lib/tabs/indexing-tab.php:452 vendor/lib/tabs/indexing-tab.php:422
|
1586 |
#, php-format
|
1587 |
msgid ""
|
1588 |
"To enable one-letter searches, you need to add a filter function on the "
|
1589 |
"filter hook %1$s that returns %2$s."
|
1590 |
msgstr ""
|
1591 |
|
1592 |
+
#: lib/tabs/indexing-tab.php:456 vendor/lib/tabs/indexing-tab.php:426
|
1593 |
msgid "Punctuation control"
|
1594 |
msgstr ""
|
1595 |
|
1596 |
+
#: lib/tabs/indexing-tab.php:457 vendor/lib/tabs/indexing-tab.php:427
|
1597 |
msgid ""
|
1598 |
"Here you can adjust how the punctuation is controlled. For more information, "
|
1599 |
"see help. Remember that any changes here require reindexing, otherwise "
|
1600 |
"searches will fail to find posts they should."
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: lib/tabs/indexing-tab.php:461 vendor/lib/tabs/indexing-tab.php:431
|
1604 |
msgid "Hyphens and dashes"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: lib/tabs/indexing-tab.php:465 lib/tabs/indexing-tab.php:492
|
1608 |
+
#: lib/tabs/indexing-tab.php:506 vendor/lib/tabs/indexing-tab.php:435
|
1609 |
#: vendor/lib/tabs/indexing-tab.php:462 vendor/lib/tabs/indexing-tab.php:476
|
1610 |
msgid "Keep"
|
1611 |
msgstr ""
|
1612 |
|
1613 |
+
#: lib/tabs/indexing-tab.php:466 lib/tabs/indexing-tab.php:479
|
1614 |
+
#: lib/tabs/indexing-tab.php:493 lib/tabs/indexing-tab.php:507
|
1615 |
#: vendor/lib/tabs/indexing-tab.php:436 vendor/lib/tabs/indexing-tab.php:449
|
1616 |
#: vendor/lib/tabs/indexing-tab.php:463 vendor/lib/tabs/indexing-tab.php:477
|
1617 |
msgid "Replace with spaces"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: lib/tabs/indexing-tab.php:467 lib/tabs/indexing-tab.php:480
|
1621 |
+
#: lib/tabs/indexing-tab.php:494 lib/tabs/indexing-tab.php:508
|
1622 |
#: vendor/lib/tabs/indexing-tab.php:437 vendor/lib/tabs/indexing-tab.php:450
|
1623 |
#: vendor/lib/tabs/indexing-tab.php:464 vendor/lib/tabs/indexing-tab.php:478
|
1624 |
msgid "Remove"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
+
#: lib/tabs/indexing-tab.php:469 vendor/lib/tabs/indexing-tab.php:439
|
1628 |
msgid ""
|
1629 |
"How Relevanssi should handle hyphens and dashes (en and em dashes)? "
|
1630 |
"Replacing with spaces is generally the best option, but in some cases "
|
1632 |
"option."
|
1633 |
msgstr ""
|
1634 |
|
1635 |
+
#: lib/tabs/indexing-tab.php:475 vendor/lib/tabs/indexing-tab.php:445
|
1636 |
msgid "Apostrophes and quotes"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: lib/tabs/indexing-tab.php:482 vendor/lib/tabs/indexing-tab.php:452
|
1640 |
msgid ""
|
1641 |
"How Relevanssi should handle apostrophes and quotes? It's not possible to "
|
1642 |
"keep them; that would lead to problems. Default behaviour is to replace with "
|
1643 |
"spaces, but sometimes removing makes sense."
|
1644 |
msgstr ""
|
1645 |
|
1646 |
+
#: lib/tabs/indexing-tab.php:488 vendor/lib/tabs/indexing-tab.php:458
|
1647 |
msgid "Ampersands"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
+
#: lib/tabs/indexing-tab.php:496 vendor/lib/tabs/indexing-tab.php:466
|
1651 |
msgid ""
|
1652 |
"How Relevanssi should handle ampersands? Replacing with spaces is generally "
|
1653 |
"the best option, but if you talk a lot about D&D, for example, keeping "
|
1654 |
"the ampersands is useful."
|
1655 |
msgstr ""
|
1656 |
|
1657 |
+
#: lib/tabs/indexing-tab.php:502 vendor/lib/tabs/indexing-tab.php:472
|
1658 |
msgid "Decimal separators"
|
1659 |
msgstr ""
|
1660 |
|
1661 |
+
#: lib/tabs/indexing-tab.php:510 vendor/lib/tabs/indexing-tab.php:480
|
1662 |
msgid ""
|
1663 |
"How Relevanssi should handle periods between decimals? Replacing with spaces "
|
1664 |
"is the default option, but that often leads to the numbers being removed "
|
1665 |
"completely. If you need to search decimal numbers a lot, keep the periods."
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: lib/tabs/indexing-tab.php:520 vendor/lib/tabs/indexing-tab.php:498
|
1669 |
msgid "Hide advanced settings"
|
1670 |
msgstr ""
|
1671 |
|
2278 |
msgid "Content stopwords"
|
2279 |
msgstr ""
|
2280 |
|
2281 |
+
#: lib/tabs/stopwords-tab.php:34 vendor/lib/tabs/stopwords-tab.php:31
|
2282 |
msgid ""
|
2283 |
"Content stopwords are a premium feature where you can set stopwords that "
|
2284 |
"only apply to the post content. Those stopwords will still be indexed if "
|
2286 |
"of the post. To use content stopwords, you need Relevanssi Premium."
|
2287 |
msgstr ""
|
2288 |
|
2289 |
+
#: lib/tabs/stopwords-tab.php:64 vendor/lib/tabs/stopwords-tab.php:59
|
2290 |
msgid ""
|
2291 |
"Enter a word here to add it to the list of stopwords. The word will "
|
2292 |
"automatically be removed from the index, so re-indexing is not necessary. "
|
2293 |
"You can enter many words at the same time, separate words with commas."
|
2294 |
msgstr ""
|
2295 |
|
2296 |
+
#: lib/tabs/stopwords-tab.php:72 vendor/lib/tabs/stopwords-tab.php:64
|
2297 |
msgid "Stopword(s) to add"
|
2298 |
msgstr ""
|
2299 |
|
2300 |
+
#: lib/tabs/stopwords-tab.php:80 vendor/lib/tabs/stopwords-tab.php:72
|
2301 |
msgid ""
|
2302 |
"Here's a list of stopwords in the database. Click a word to remove it from "
|
2303 |
"stopwords. Removing stopwords won't automatically return them to index, so "
|
2305 |
"back to index."
|
2306 |
msgstr ""
|
2307 |
|
2308 |
+
#: lib/tabs/stopwords-tab.php:85 vendor/lib/tabs/stopwords-tab.php:77
|
2309 |
msgid "Current stopwords"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
+
#: lib/tabs/stopwords-tab.php:122 lib/tabs/stopwords-tab.php:125
|
2313 |
#: vendor/lib/tabs/stopwords-tab.php:98 vendor/lib/tabs/stopwords-tab.php:101
|
2314 |
msgid "Exportable list of stopwords"
|
2315 |
msgstr ""
|
2316 |
|
2317 |
+
#: lib/tabs/stopwords-tab.php:127 vendor/lib/tabs/stopwords-tab.php:103
|
2318 |
msgid ""
|
2319 |
"You can copy the list of stopwords here if you want to back up the list, "
|
2320 |
"copy it to a different blog or otherwise need the list."
|
2321 |
msgstr ""
|
2322 |
|
2323 |
+
#: lib/tabs/synonyms-tab.php:35 vendor/lib/tabs/synonyms-tab.php:33
|
2324 |
msgid ""
|
2325 |
"Add synonyms here to make the searches find better results. If you notice "
|
2326 |
"your users frequently misspelling a product name, or for other reasons use "
|
2327 |
"many names for one thing, adding synonyms will make the results better."
|
2328 |
msgstr ""
|
2329 |
|
2330 |
+
#: lib/tabs/synonyms-tab.php:37 vendor/lib/tabs/synonyms-tab.php:35
|
2331 |
msgid ""
|
2332 |
"Do not go overboard, though, as too many synonyms can make the search "
|
2333 |
"confusing: users understand if a search query doesn't match everything, but "
|
2334 |
"they get confused if the searches match to unexpected things."
|
2335 |
msgstr ""
|
2336 |
|
2337 |
+
#: lib/tabs/synonyms-tab.php:41 vendor/lib/tabs/synonyms-tab.php:39
|
2338 |
msgid ""
|
2339 |
"The format here is <code>key = value</code>. If you add <code>dog = hound</"
|
2340 |
"code> to the list of synonyms, searches for <code>dog</code> automatically "
|
2345 |
"and <code>hound</code>."
|
2346 |
msgstr ""
|
2347 |
|
2348 |
+
#: lib/tabs/synonyms-tab.php:43 vendor/lib/tabs/synonyms-tab.php:41
|
2349 |
msgid ""
|
2350 |
"The synonyms are one direction only. If you want both directions, add the "
|
2351 |
"synonym again, reversed: <code>hound = dog</code>."
|
2352 |
msgstr ""
|
2353 |
|
2354 |
+
#: lib/tabs/synonyms-tab.php:45 vendor/lib/tabs/synonyms-tab.php:43
|
2355 |
msgid ""
|
2356 |
"It's possible to use phrases for the value, but not for the key. <code>dog = "
|
2357 |
"\"great dane\"</code> works, but <code>\"great dane\" = dog</code> doesn't."
|
2358 |
msgstr ""
|
2359 |
|
2360 |
+
#: lib/tabs/synonyms-tab.php:48 vendor/lib/tabs/synonyms-tab.php:46
|
2361 |
msgid ""
|
2362 |
"If you want to use synonyms in AND searches, enable synonym indexing on the "
|
2363 |
"Indexing tab."
|
2364 |
msgstr ""
|
2365 |
|
2366 |
+
#: lib/utils.php:926 vendor/lib/excerpts-highlights.php:24
|
2367 |
+
msgid "There is no excerpt because this is a protected post."
|
2368 |
+
msgstr ""
|
2369 |
+
|
2370 |
#: vendor/lib/interface.php:637
|
2371 |
#, php-format
|
2372 |
msgid "To reset the logs, type \"reset\" into the box here %1$s and click %2$s"
|
2373 |
msgstr ""
|
2374 |
|
2375 |
+
#: vendor/lib/interface.php:838
|
2376 |
+
msgid "Related"
|
2377 |
+
msgstr ""
|
2378 |
+
|
2379 |
+
#: vendor/lib/interface.php:839
|
2380 |
+
msgid "Import / Export options"
|
2381 |
+
msgstr ""
|
2382 |
+
|
2383 |
+
#: vendor/lib/log.php:171
|
2384 |
+
msgid "Logged seaches"
|
2385 |
+
msgstr ""
|
2386 |
+
|
2387 |
+
#: vendor/lib/tabs/excerpts-tab.php:374
|
2388 |
+
msgid "Highlighting problems with non-ASCII alphabet?"
|
2389 |
+
msgstr ""
|
2390 |
+
|
2391 |
+
#: vendor/lib/tabs/excerpts-tab.php:390
|
2392 |
+
msgid ""
|
2393 |
+
"If you use non-ASCII characters (like Cyrillic alphabet) and the highlights "
|
2394 |
+
"don't work, unchecking this option may make the highlights work."
|
2395 |
+
msgstr ""
|
2396 |
+
|
2397 |
#: vendor/lib/tabs/excerpts-tab.php:410
|
2398 |
msgid "Show the breakdown of search hits in the excerpts"
|
2399 |
msgstr ""
|