kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

Benutzerdefinierte Felder (Custom Fields) in die Suche von WordPress integrieren

Mit Hilfe der sog. Benutzerdefinierten Felder (Custom Fields) kann der WordPress-Editor um zusätzliche Eingabefelder erweitert werden. Leider werden die Inhalte der Custom Fields bei der WordPress-Suche ignoriert und eventuell relevante Ergebnisse folglich nicht in den Suchergebnissen angezeigt. In diesem Beitrag archivieren wir ein Snippet das Custom Fields zur WordPress-Suche hinzufügt.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, Sketch, Adobe XD …

Jetzt Frühbucher-Rabatte sichern!

Custom Fields in die Suche integrieren

Mit folgendem Snippet könnt ihr Benutzerdefinierte Felder der WordPress-Suche hinzufügen. Fügt folgenden PHP-Code in eure functions.php ein:

<?php

// Verknüpfe Beiträge mit der »postmeta«-Tabelle
function kb_search_join( $join ) {
  global $wpdb;
  if ( is_search() ) { 
    $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id ';
  }
  return $join;
}
add_filter('posts_join', 'kb_search_join' );


// Ändere den »Search Query« mit »posts_where«
function kb_search_where( $where ) {
  global $pagenow, $wpdb;
  if ( is_search() ) {
    $where = preg_replace(
 "/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
    "(".$wpdb->posts.".post_title LIKE $1) OR (".$wpdb->postmeta.".meta_value LIKE $1)", $where );
  }
  return $where;
}
add_filter( 'posts_where', 'kb_search_where' );


// Verhindere doppelte Ausgabe
function kb_search_distinct( $where ) {
  global $wpdb;
  if ( is_search() ) {
    return "DISTINCT";
  }
  return $where;
}
add_filter( 'posts_distinct', 'kb_search_distinct' );

?>

Quellen / Links

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

2 Kommentare

  1. hans

    Verfasst am 8. Februar 2016 um 13:38 Uhr.

    auch neulich gefunden, schön wenn man ein plugin über bord werfen kann :)

  2. Armin

    Verfasst am 16. März 2018 um 12:32 Uhr.

    Das hat meinen Tag gerettet, Vielen Dank.

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.