Skip to content

Instantly share code, notes, and snippets.

View msaari's full-sized avatar

Mikko Saari msaari

View GitHub Profile
@msaari
msaari / functions.php
Created October 28, 2022 08:19
Indexing attached image titles for the parent post
<?php
// Add this to theme functions.php or in a code snippet. Then rebuild the index.
add_filter( 'relevanssi_content_to_index', 'rlv_add_image_titles', 10, 2 );
function rlv_add_image_titles( $content, $post ) {
global $wpdb;
$results = $wpdb->get_col(
$wpdb->prepare(
"SELECT post_title FROM $wpdb->posts WHERE post_parent = %d",
@msaari
msaari / jetsmartfilters.php
Created June 18, 2022 01:53
JetSmartFilters Relevanssi fix
<?php
add_action( 'pre_get_posts', 'rlv_jetsmartfilters', 9999 );
/**
* Makes JetSmartFilters use posts from Relevanssi.
*
* @param WP_Query $wp_query The wp_query object.
*/
function rlv_jetsmartfilters( $wp_query ) {
@msaari
msaari / relevanssi-woocommerce.php
Last active June 23, 2022 02:01
Relevanssi WooCommerce filter
<?php
// Add this to theme functions.php or in a code snippet:
add_filter( 'relevanssi_modify_wp_query', 'rlv_woocommerce_filters' );
function rlv_woocommerce_filters( $query ) {
// phpcs:disable WordPress.Security.NonceVerification.Recommended
$min_price = isset( $_REQUEST['min_price'] ) ? intval( $_REQUEST['min_price'] ) : false;
$max_price = isset( $_REQUEST['max_price'] ) ? intval( $_REQUEST['max_price'] ) : false;
@msaari
msaari / functions.php
Created February 10, 2022 06:23
Increases the weight for headings
<?php
add_filter( 'relevanssi_post_content', 'rlv_heading_boost' );
function rlv_heading_boost( $content ) {
if ( preg_match_all( '/<h1.*?>(.*?)<\/h1>/', $content, $h1_headings ) ) {
foreach ( $h1_headings[1] as $heading ) {
$content .= " $heading $heading $heading $heading $heading $heading $heading $heading";
}
}
if ( preg_match_all( '/<h2.*?>(.*?)<\/h2>/', $content, $h2_headings ) ) {
@msaari
msaari / base64_decode.php
Created April 9, 2021 12:36
Base64 decoding code block content
<?php
add_filter( 'relevanssi_oxygen_section_content', function( $content ) {
if ( preg_match_all( '/\[ct_code_block.*?ct_code_block\]/', $content, $matches ) ) {
foreach ( $matches[0] as $match ) {
if ( preg_match_all( '/"code-php":"(.*?)"/', $match, $block_matches ) ) {
foreach ( $block_matches[1] as $encoded_text ) {
$content .= base64_decode( $encoded_text );
}
}
@msaari
msaari / relevanssilight.sql
Created April 9, 2021 04:41
Relevanssi Light database alterations
ALTER TABLE xx_posts ADD COLUMN `relevanssi_light_data` LONGTEXT
ALTER TABLE xx_posts ADD FULLTEXT `relevanssi_light_fulltext` (`post_title`,`post_content`,`post_excerpt`,`relevanssi_light_data`)
@msaari
msaari / functions.php
Created December 29, 2020 03:33
Excluding posts from the Relevanssi index
<?php
// Put this in your theme functions.php
add_filter( 'relevanssi_do_not_index', 'rlv_skip_page', 10, 2 );
function rlv_skip_page( $skip, $page ) {
$excluded_pages = array( 123, 234 ); // List all the ID numbers of the excluded pages here.
if ( in_array( $page, $excluded_pages, true ) ) {
$skip = true;
}
return $skip;
@msaari
msaari / oxygen.php
Created November 14, 2020 05:02
Improved Oxygen compatibility
<?php
/**
* /lib/compatibility/oxygen.php
*
* Oxygen Builder compatibility features.
*
* @package Relevanssi
* @author Mikko Saari
* @license https://wordpress.org/about/gpl/ GNU General Public License
* @see https://www.relevanssi.com/
@msaari
msaari / paidmembershippro.php
Created October 27, 2020 03:58
/lib/compatibility/paidmembershippro.php
<?php
/**
* /lib/compatibility/paidmembershippro.php
*
* Paid Membership Pro compatibility features.
*
* @package Relevanssi
* @author Mikko Saari
* @license https://wordpress.org/about/gpl/ GNU General Public License
* @see https://www.relevanssi.com/
@msaari
msaari / functions.php
Created October 15, 2020 04:29
Block Formidable Forms entries
<?php
// Add this to theme functions.php and rebuild the index to remove Formidable Forms entries from index
add_filter( 'relevanssi_indexing_restriction', 'rlv_no_formidable' );
function rlv_no_formidable( $restriction ) {
global $wpdb;
$restriction['mysql'] .= " AND post.ID NOT IN (SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value LIKE 'formidable%' ) ";
$restriction['reason'] .= ' No Formidable Forms entries';
return $restriction;
}