News Ticker

Exact Match Suche für WordPress

Vor kurzem habe ich beschrieben wie man ein Custom Menu einfach in ein WordPress Theme einfügen kann. Heute möchte ich euch ein kleines Code Snipped zeigen mit welchem ihr eine Exact Match Suche mit WordPress nutzen könnt. Damit ist gemeint das wenn ein User nach einem Begriff sucht zu welchem ein genau passender Artikel vorhanden ist der Benutzer direkt zu diesem weiter geleitet wird und nicht zu der Suchauflistung mit mehreren Beiträgen. Sagen wir z.B. ihr habt einen Artikel mit der Überschrift „Neue Android Apps“ geschrieben und genau danach sucht ein Benutzer, so wird dieser direkt auf den Artikel geleitet.

Folgendes Code Snipped fügt ihr in die Datei eures Themes ein welche für die Suche zuständig ist. Meistens ist das die search.php

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$searchkey = $s;
$keyfiltered = str_replace(" ", "-", $searchkey);
$searchurl = home_url()."/".$keyfiltered;
$postid = url_to_postid($searchurl);
$searchtitel = get_the_title($postid);
	if($searchtitel == $searchkey ){
		header("HTTP/1.1 301 Moved Permanently");
		header("Location: ".$searchurl);
		header('Connection: close');
		exit();
	}
?>

Das Ganze ist eigentlich sehr einfach aufgebaut. Zunächst wird der Suchbegriff in der searchkey Variablen gespeichert. In der nächsten Zeile werden dann die Leerzeichen durch einen Bindestrich ersetzt. Anschließend wird eine URL aus der Adresse eures Blogs und dem Suchbergriff welcher jetzt die Bindestriche enthält erstellt. Fall zu der URL ein Artikel vorhanden ist wird die ID von diesem in der Variablen postid gespeichert. Anschließend wird der Titel des Artikels ermittelt und in searchtitel gesichert.

Danach wird noch mit einer If Abfrage geprüft ob der Titel aus der Variablen searchtitel gleich wie der Suchbegriff ist. Wenn dem so ist wird der User über eine 301 zu dem jeweiligen Artikel weitergeleitet.

Falls ihr noch Fragen habt stellt diese einfach in den Kommentaren.