Relevanssi – A Better Search - Version 4.12.4

Version Description

  • New feature: New action hooks relevanssi_pre_the_content and relevanssi_post_the_content fire before and after Relevanssi applies the_content filter to the post excerpts. Some Relevanssi default behaviour has been moved to these hooks so it can be modified.
  • Changed behaviour: The relevanssi_do_not_index gets the post object as a third parameter.
  • Minor fix: Remove errors from relevanssi_strip_all_tags() getting a null parameter.
Download this release

Release Info

Developer msaari
Plugin Icon 128x128 Relevanssi – A Better Search
Version 4.12.4
Comparing to
See all releases

Code changes from version 4.12.3 to 4.12.4

lib/excerpts-highlights.php CHANGED
@@ -110,21 +110,18 @@ function relevanssi_do_excerpt( $t_post, $query, $excerpt_length = null, $excerp
110
  $content .= relevanssi_get_custom_field_content( $post->ID );
111
  }
112
 
113
- // Autoembed discovery can really slow down excerpt-building.
114
- relevanssi_kill_autoembed();
115
-
116
- // This will print out the attachment file name in front of the excerpt, and we
117
- // don't want that.
118
- remove_filter( 'the_content', 'prepend_attachment' );
119
-
120
- remove_shortcode( 'noindex' );
121
- add_shortcode( 'noindex', 'relevanssi_noindex_shortcode_indexing' );
122
 
123
  /** This filter is documented in wp-includes/post-template.php */
124
  $content = apply_filters( 'the_content', $content );
125
 
126
- remove_shortcode( 'noindex' );
127
- add_shortcode( 'noindex', 'relevanssi_noindex_shortcode' );
 
 
128
 
129
  /**
130
  * Filters the post content after 'the_content'.
@@ -1404,3 +1401,31 @@ function relevanssi_kill_autoembed() {
1404
  }
1405
  }
1406
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  $content .= relevanssi_get_custom_field_content( $post->ID );
111
  }
112
 
113
+ /**
114
+ * Runs before Relevanssi excerpt building applies `the_content`.
115
+ */
116
+ do_action( 'relevanssi_pre_the_content' );
 
 
 
 
 
117
 
118
  /** This filter is documented in wp-includes/post-template.php */
119
  $content = apply_filters( 'the_content', $content );
120
 
121
+ /**
122
+ * Runs after Relevanssi excerpt building applies `the_content`.
123
+ */
124
+ do_action( 'relevanssi_post_the_content' );
125
 
126
  /**
127
  * Filters the post content after 'the_content'.
1401
  }
1402
  }
1403
  }
1404
+
1405
+ /**
1406
+ * Adjusts things before `the_content` is applied in excerpt-building.
1407
+ *
1408
+ * Removes the `prepend_attachment` filter hook and enables the `noindex`
1409
+ * shortcode.
1410
+ */
1411
+ function relevanssi_excerpt_pre_the_content() {
1412
+ // This will print out the attachment file name in front of the excerpt, and we
1413
+ // don't want that.
1414
+ remove_filter( 'the_content', 'prepend_attachment' );
1415
+
1416
+ remove_shortcode( 'noindex' );
1417
+ add_shortcode( 'noindex', 'relevanssi_noindex_shortcode_indexing' );
1418
+ }
1419
+
1420
+ /**
1421
+ * Adjusts things after `the_content` is applied in excerpt-building.
1422
+ *
1423
+ * Reapplies the `prepend_attachment` filter hook and disables the `noindex`
1424
+ * shortcode.
1425
+ */
1426
+ function relevanssi_excerpt_post_the_content() {
1427
+ add_filter( 'the_content', 'prepend_attachment' );
1428
+
1429
+ remove_shortcode( 'noindex' );
1430
+ add_shortcode( 'noindex', 'relevanssi_noindex_shortcode' );
1431
+ }
lib/indexing.php CHANGED
@@ -483,8 +483,9 @@ function relevanssi_index_doc( $index_post, $remove_first = false, $custom_field
483
  * can be a boolean, or a string containing an explanation for the
484
  * exclusion. Default false.
485
  * @param int The post ID.
 
486
  */
487
- $do_not_index = apply_filters( 'relevanssi_do_not_index', false, $post->ID );
488
  if ( $do_not_index ) {
489
  // Filter says no.
490
  if ( true === $do_not_index ) {
483
  * can be a boolean, or a string containing an explanation for the
484
  * exclusion. Default false.
485
  * @param int The post ID.
486
+ * @param WP_Post The post object.
487
  */
488
+ $do_not_index = apply_filters( 'relevanssi_do_not_index', false, $post->ID, $post );
489
  if ( $do_not_index ) {
490
  // Filter says no.
491
  if ( true === $do_not_index ) {
lib/init.php CHANGED
@@ -49,6 +49,11 @@ add_action( 'relevanssi_trim_logs', 'relevanssi_trim_logs' );
49
  add_action( 'relevanssi_update_counts', 'relevanssi_update_counts' );
50
  add_action( 'relevanssi_custom_field_value', 'relevanssi_filter_custom_fields', 10, 2 );
51
 
 
 
 
 
 
52
  // Page builder shortcodes.
53
  add_filter( 'relevanssi_pre_excerpt_content', 'relevanssi_remove_page_builder_shortcodes', 9 );
54
  add_filter( 'relevanssi_post_content', 'relevanssi_remove_page_builder_shortcodes', 9 );
49
  add_action( 'relevanssi_update_counts', 'relevanssi_update_counts' );
50
  add_action( 'relevanssi_custom_field_value', 'relevanssi_filter_custom_fields', 10, 2 );
51
 
52
+ // Excerpts and highlights.
53
+ add_action( 'relevanssi_pre_the_content', 'relevanssi_kill_autoembed' );
54
+ add_action( 'relevanssi_pre_the_content', 'relevanssi_excerpt_pre_the_content' );
55
+ add_action( 'relevanssi_post_the_content', 'relevanssi_excerpt_post_the_content' );
56
+
57
  // Page builder shortcodes.
58
  add_filter( 'relevanssi_pre_excerpt_content', 'relevanssi_remove_page_builder_shortcodes', 9 );
59
  add_filter( 'relevanssi_post_content', 'relevanssi_remove_page_builder_shortcodes', 9 );
lib/utils.php CHANGED
@@ -704,7 +704,10 @@ function relevanssi_select( string $option, string $value ) {
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
 
704
  *
705
  * @return string The content with tags stripped.
706
  */
707
+ function relevanssi_strip_all_tags( $content ) : string {
708
+ if ( ! is_string( $content ) ) {
709
+ $content = '';
710
+ }
711
  return preg_replace( '/<[!a-zA-Z\/][^>]*>/', ' ', $content );
712
  }
713
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: search, relevance, better search, product search, woocommerce search
5
  Requires at least: 4.9
6
  Tested up to: 5.7
7
  Requires PHP: 7.0
8
- Stable tag: 4.12.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -131,6 +131,11 @@ Each document database is full of useless words. All the little words that appea
131
  * John Calahan for extensive 4.0 beta testing.
132
 
133
  == Changelog ==
 
 
 
 
 
134
  = 4.12.3 =
135
  * Major fix: Post type weights did not work; improving the caching had broken them.
136
  * Minor fix: Relevanssi works better with soft hyphens now, removing them in indexing and excerpt-building.
@@ -220,6 +225,9 @@ Each document database is full of useless words. All the little words that appea
220
  * 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.
221
 
222
  == Upgrade notice ==
 
 
 
223
  = 4.12.3 =
224
  * Fixes post type weights and WPML indexing problems.
225
 
5
  Requires at least: 4.9
6
  Tested up to: 5.7
7
  Requires PHP: 7.0
8
+ Stable tag: 4.12.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
131
  * John Calahan for extensive 4.0 beta testing.
132
 
133
  == Changelog ==
134
+ = 4.12.4 =
135
+ * New feature: New action hooks `relevanssi_pre_the_content` and `relevanssi_post_the_content` fire before and after Relevanssi applies `the_content` filter to the post excerpts. Some Relevanssi default behaviour has been moved to these hooks so it can be modified.
136
+ * Changed behaviour: The `relevanssi_do_not_index` gets the post object as a third parameter.
137
+ * Minor fix: Remove errors from `relevanssi_strip_all_tags()` getting a `null` parameter.
138
+
139
  = 4.12.3 =
140
  * Major fix: Post type weights did not work; improving the caching had broken them.
141
  * Minor fix: Relevanssi works better with soft hyphens now, removing them in indexing and excerpt-building.
225
  * 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.
226
 
227
  == Upgrade notice ==
228
+ = 4.12.4 =
229
+ * Fixes minor bugs.
230
+
231
  = 4.12.3 =
232
  * Fixes post type weights and WPML indexing problems.
233
 
relevanssi.php CHANGED
@@ -13,7 +13,7 @@
13
  * Plugin Name: Relevanssi
14
  * Plugin URI: https://www.relevanssi.com/
15
  * Description: This plugin replaces WordPress search with a relevance-sorting search.
16
- * Version: 4.12.3
17
  * Author: Mikko Saari
18
  * Author URI: http://www.mikkosaari.fi/
19
  * Text Domain: relevanssi
@@ -67,7 +67,7 @@ $relevanssi_variables['database_version'] = 6;
67
  $relevanssi_variables['file'] = __FILE__;
68
  $relevanssi_variables['plugin_dir'] = plugin_dir_path( __FILE__ );
69
  $relevanssi_variables['plugin_basename'] = plugin_basename( __FILE__ );
70
- $relevanssi_variables['plugin_version'] = '4.12.3';
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.4
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.4';
71
 
72
  require_once 'lib/admin-ajax.php';
73
  require_once 'lib/common.php';