חיפוש ]

הוקים ופילטרים נפוצים של התוסף Relevanssi Better Search

Relevanssi הוא אחד מתוספי החיפוש החזקים ביותר עבור וורדפרס. הוא מחליף את מנוע החיפוש הבסיסי של וורדפרס במנוע מתקדם וגמיש שתומך בהתאמה מטושטשת (fuzzy matching), הדגשות, סוגי פוסטים מותאמים אישית ועוד.

אם אתם רק מתחילים לעבוד עם התוסף, כדאי לקרוא את המדריך המלא להגדרת Relevanssi לשיפור החיפוש בוורדפרס.

בפוסט הזה נסקור את ההוקים והפילטרים הנפוצים והשימושיים ביותר של Relevanssi, כולל דוגמאות קוד שיעזרו לכם ליישם אותם באתר שלכם.

בין אם אתם רוצים לקבוע אילו תכנים ייכללו באינדקס, לשנות את אופן הדירוג של תוצאות או לעצב את הפלט – Relevanssi מאפשר את כל זה באמצעות פילטרים.

1. relevanssi_indexing_restriction

הפילטר הזה מאפשר לקבוע אילו פוסטים או סוגי תוכן ייכללו באינדקס.

add_filter( 'relevanssi_indexing_restriction', function( $restriction ) {
    global $wpdb;
    return "post_type = 'post' OR post_type = 'page'";
});

השתמשו בו אם ברצונכם לאנדקס רק פוסטים ועמודים, תוך החרגת מוצרים, קבצים או פוסטים מותאמים אחרים.

2. relevanssi_do_not_index

דרך נוספת להחריג תכנים מהאינדקס לפי לוגיקה דינמית.

add_filter( 'relevanssi_do_not_index', function( $do_not_index, $post_id ) {
    if ( get_post_meta( $post_id, '_exclude_from_search', true ) === '1' ) {
        return true;
    }
    return $do_not_index;
}, 10, 2 );

אפשר לשלב את זה עם שדה מותאם אישית או טוגל של ACF, כדי לאפשר לעורכים להחריג פוסטים מהחיפוש בקלות.

3. relevanssi_hits_filter

שינוי תוצאות החיפוש לפני שהן מוצגות – אידאלי לסינון, הגבלה או שינוי סדר התוצאות.

add_filter( 'relevanssi_hits_filter', function( $hits ) {
    // הסרת פוסטים מקטגוריה מסוימת
    $hits[0] = array_filter( $hits[0], function( $hit ) {
        return !has_category( 10, $hit->ID );
    });
    return $hits;
});

4. relevanssi_excerpt

התאמה אישית של התקציר המוצג בתוצאות החיפוש.

add_filter( 'relevanssi_excerpt', function( $excerpt, $post, $query ) {
    return wp_trim_words( $excerpt, 20, '...' );
}, 10, 3 );

שימושי במיוחד לקיצור התצוגה או הוספת עיצוב ייחודי.

5. relevanssi_content_to_index

שליטה על התוכן שמתווסף לאינדקס עבור כל פוסט – כולל אפשרות להוסיף או להסיר שדות מותאמים.

add_filter( 'relevanssi_content_to_index', function( $content, $post ) {
    $custom_field = get_post_meta( $post->ID, 'custom_field_name', true );
    return $content . ' ' . $custom_field;
}, 10, 2 );

כך ניתן לאנדקס גם שדות מותאמים, שדות חוזרים ונתוני ACF שלא נכללים בדרך כלל.

6. relevanssi_match

פילטר מתקדם שמאפשר לשנות את אופן ההתאמה של המילים בזמן החיפוש.

add_filter( 'relevanssi_match', function( $match ) {
    if ( $match['term'] === 'free' ) {
        $match['weight'] = 0; // הפחתת חשיבות של מונחים מסוימים
    }
    return $match;
});

7. הגנה על מנוע החיפוש של Relevanssi מפני שימוש לרעה

באתרים גדולים במיוחד, מנוע החיפוש עלול למשוך בוטים ומונחים חשודים. ניתן למנוע גישה לתוצאות חיפוש לא רלוונטיות או מזיקות על ידי חסימת בוטים ומילים בעייתיות.

חסימת בוטים בקובץ robots.txt

הקוד הבא מוסיף הגבלות לקובץ robots.txt הווירטואלי של האתר ומונע מבוטים לסרוק עמודי חיפוש:

add_action( 'do_robots', 'rlv_block_bots_robots_txt' );
function rlv_block_bots_robots_txt() {
	?>
User-agent: *
Disallow: /search/
Disallow: /?s=
	<?php
}

חסימת מונחי חיפוש מסוימים

באמצעות הקוד הבא, ניתן לזהות מונחים בעייתיים ולחסום את הבקשה באמצעות קוד 410 Gone:

add_filter( 'pre_get_posts', 'rlv_block_search' );
function rlv_block_search( $query ) {
    if ( ! empty( $query->query_vars['s'] ) ) {
        $blacklist = array( '大奖', 'q82' ); // מונחים שיש לחסום
        foreach ( $blacklist as $term ) {
            if ( mb_stripos( $query->query_vars['s'], $term ) !== false ) {
                http_response_code( 410 );
                exit();
            }
        }
     }
}

שני הפילטרים הפשוטים האלה יכולים לצמצם משמעותית את כמות הסריקות המזיקות והתעבורה הלא רצויה על מנוע החיפוש הפנימי של האתר.

סיכום

Relevanssi מציע רמת התאמה אישית שקשה להתחרות בה. בין אם אתם מפתחים ממשק חיפוש מותאם אישית או בעלי אתרים המעוניינים לשפר את חוויית המשתמש, הפילטרים שראינו כאן הם הכלים שלכם.

המפתח לשליטה במנוע החיפוש הוא שילוב חכם של פילטרים – סינון תוכן לאינדקס, התאמת משקלים, ושיפור התוצאה המוצגת.

עם מספר פעולות פשוטות וקצת ניסוי וטעייה, ניתן להתאים את Relevanssi לצרכים המדויקים של האתר והקהל שלכם. מאינדוקס חכם ועד חסימת מונחים לא רצויים – הגמישות היא אינסופית.

0 תגובות...

תגובה חדשה

הוסיפו קוד באמצעות הכפתורים מטה. למשל, בכדי להוסיף PHP לחצו על הכפתור PHP והוסיפו את הקוד בתוך השורטקוד. מצאתם שגיאה בפוסט? עדכנו אותנו...

Savvy WordPress Development