Home » Headline, php, plug ins, technik, widgets

WordPress in Tiefe mit dem Zirona Advanced PlugIn

2 Oktober 2008 994 views Kein Kommentar
Wordpress mit Advanced Search

Wordpress mit Advanced Search

Vor kurzem installierte ich das wirklich hervorragende Advanced Search Plugin von Zirona, welches man als Lite-Widget in erfolgreich-bloggen.de in der rechten Spalte sehen kann oder über eine besondere Seite aufrufen kann.

Das PlugIn legt u.a. zur schnellen Suche in Artikeln und Seiten Indexe für die WordPress-Tabellen an. Und hier fängt bereits das Problem an, wenn man in der Datei wp-config.php einen technischen Datenbankuser nutzt, der beispielsweise nur Rechte für normale SQL-Queries hat. Aus Sicherheitsgründen macht dies zwar Sinn, die Installation des Advanced Search PlugIn scheitert mit dem Nebeneffekt, dass der QueryFilter auf posts_requests scheitert, bzw. nicht ausgeführt wird. Über das reinhängen in die posts_requests Handler-Methode erreicht das Plugin, das umfangreichere Datenbankabfragen auf Seiten, Artikel und Kommentare abgefragt werden.

Beim ersten Aktivieren des Plugins versucht es die diversen Indexe anzulegen, gelingt dies, schreibt das Plugin eine WordPress-Option mit dem Namen “as_prepared” und dem Wert “yes”. Gelingt es nicht, wird die Option mit dem Wert “failed” gespeichert. Wenn man nun vorübergehend einen technischen Datenbank-User mir Rootrechten vergibt, sodass die Indexe nachträglich anlegt werden können, hat man das Problem, das die Option “as_prepared” auf “failed” stehen bleibt. In dem PHP-Script mit dem namen queryfilter.php des Advanced Search Plugins, welche die im posts_requests Filter eingehängte Funktion as_queryfilter enthält, wird die Option “as_prepared” überprüft und der Query-String nicht manipluiert, wenn “as_prepared” auf “failed” steht.

Dies hat zur Folge, dass im Advanced-Query-Plugin die Parametrisierung der Suche nicht richtig funktioniert, so unterscheidet die Suche z.B. nicht zwischen der suche in Seiten und Artikeln, obwohl es angehakt wurde. Deshalb muss man wohl der übel auf Datenbankebene die Option von “failed” auf “yes” setzten, insofern man die Indexe richtig angelegt hat. Eine andere Möglichkeit ist, die php-Funktion update_option() zu nutzen, um den Wert zu überschreiben.

Ihr Kommentar!

Fügen Sie hier Ihr Kommentar oder Trackback ihrer Seite hinzu. Diese Kommenatare auch via RSS lesen.

Sie können folgende tags verwenden:
<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Dieser Weblog benutzt Gravatare. Ihr eigenes global gültiges und eindeutiges Web-Avatar erhalten Sie unter Gravatar.