Relevanzgewichtung f\"ur ACF True/False-Checkbox-Felder hinzuf\"ugen
Advanced Custom Fields ist ein hervorragendes Plugin, das die Anpassung Ihrer Website sehr einfach macht. Es erleichtert nicht nur die Inhaltseingabe, sondern kann Ihnen auch helfen, die Verwaltung anderer Details für Content Manager zu vereinfachen. Die Nutzung von ACF und SearchWP wird von vielen Kunden genutzt!
Eine Sache, die Sie tun können, ist, ACF mit einem Kontrollkästchenfeld einzurichten, das steuert, ob ein bestimmtes Attribut des aktuellen Beitrags wahr oder falsch ist. Zum Beispiel sind vielleicht einige Ihrer Beiträge als proprietär eingestuft und Sie möchten sicherstellen, dass diese Beiträge bei Suchvorgängen mehr Gewicht erhalten.
Siehe auch: Advanced Custom Fields und SearchWP
Mithilfe einiger Hooks von SearchWP ist das leicht zu erreichen!
All hooks should be added to your custom SearchWP Customizations Plugin.
Wenn Ihr ACF-Kontrollkästchenfeld den Namen proprietary hat, wird jedem Beitrag, der dieses Advanced Custom Field Wahr/Falsch-Kontrollkästchen aktiviert hat, ein Bonungewicht von 1000 hinzugefügt:
| <?php | |
| // Add Relevance Weight to ACF True/False Checkbox Fields in SearchWP. | |
| // @link https://searchwp.com/documentation/knowledge-base/add-relevance-acf-checkbox/ | |
| add_filter( 'searchwp\query\mods', function( $mods ) { | |
| global $wpdb; | |
| $my_meta_key = 'proprietary'; // ACF True/False name. | |
| $bonus_weight = 1000; // Extra weight to add when checkbox is ticked. | |
| $mod = new \SearchWP\Mod(); | |
| $mod->set_local_table( $wpdb->postmeta ); | |
| $mod->on( 'post_id', [ 'column' => 'id' ] ); | |
| $mod->on( 'meta_key', [ 'value' => $my_meta_key ] ); | |
| $mod->weight( function( $runtime_mod ) use ( $bonus_weight ) { | |
| $local_alias = $runtime_mod->get_local_table_alias(); | |
| return "IF({$local_alias}.meta_value+0 = 1, {$bonus_weight}, 0)"; | |
| } ); | |
| $mods[] = $mod; | |
| return $mods; | |
| } ); |
Sie können die Hooks anpassen, um jeden ACF-Feldnamen zu verwenden, indem Sie Zeile 9 mit dem entsprechenden Feldnamen bearbeiten. Wenn Sie das verwendete Bonungewicht anpassen möchten, können Sie Zeile 10 bearbeiten.

