wake-up-neo.net

Benutzerdefinierte Suchseite und Suche nach Titel, Inhalt und Tag

Kann jemand meinen Code überprüfen, muss ich bessere Lösungen oder einen Fehler kennen.

Okey! Ich habe eine PHP -Datei erstellt, um Suchergebnisse nach Parametern zu erhalten und nach Titel, Inhalt und Tag zu suchen

PHPs Kopf sieht so aus:

include('../../../../wp-config.php');
header('Content-type:text/html;charset=utf-8');
$keyword = $_GET['k'];

Dass ich Suchergebnisse von jQuery nach bringe.

Meine Hauptsuchfunktion zum Anzeigen der Ergebnisse aus der Datenbank:

function search($keyword,$mark){
    while($data=mysql_fetch_array($keyword)){
        if($data['post_status']=='publish'){
            echo '<li>#'.$data['ID'].' '.htmlentities($data['post_title']).' ('.$mark.')</li>';
        }
    }
} 

Suche nach Titelfunktion: Vollständiges Schlüsselwort (Beispiel: "jack daniels")

$sql_full_keyword       = "SELECT * from wp_posts WHERE post_title LIKE '$keyword%'";
$search_full_keyword    = mysql_query($sql_full_keyword) or die(mysql_error());
search($search_full_keyword,"Full keyword(s) = '$keyword'");

So teilte ich Schlüsselwort für folgende Schritte wie:

$keywords_split         = explode(" ",$keyword);

Suche nach Titelfunktion: mehrere Schlüsselwörter (zB: jack + daniels)

for($i=0;$i<count($keywords_split);$i++){
    $sql_split_keyword      = "SELECT * from wp_posts WHERE post_title LIKE '$keywords_split[$i]%'";
    $search_split_keyword   = mysql_query($sql_split_keyword) or die(mysql_error());
    search($search_split_keyword,"Split keyword = '$keywords_split[$i]'");
}

Suche nach Inhalt Funktion: (wie oben, aber Suche nach Inhalt)

for($i=0;$i<count($keywords_split);$i++){
    $sql_split_keyword      = "SELECT * from wp_posts WHERE post_content LIKE '$keywords_split[$i]%'";
    $search_split_keyword   = mysql_query($sql_split_keyword) or die(mysql_error());
    search($search_split_keyword,"Split keyword = '$keywords_split[$i]' (Content)");
}

Dann schließe mysql

mysql_close();

Suche nach Tag-Funktion: (mit normaler WordPress-Abfrage)

    $tags = str_replace(" ","-",$keyword).",".str_replace(" ",",",$keyword);
    query_posts(array('post_type'=>array('one','two','three') ,'tag' => $tags,'posts_per_page'=>-1));

    while (have_posts()):the_post();
    echo '<li>#'.get_the_ID().' '.get_the_title().'</li>';
    endwhile;

Alles funktioniert jetzt und ich brauche jemanden, der meinen Code überprüft, mir bessere Dinge sagt oder Zunge ...

Vollständiger Code hier: http://snipt.org/zpz0

Vielen Dank

1
l2aelba

Suchen in WordPress ist eine komplizierte Angelegenheit, weil:

  1. WP macht es nicht besonders gut
  2. Menschen haben unterschiedliche Erwartungen, wie genau die Suche funktionieren soll
  3. Sogar leichte (aus menschlicher Sicht) Anforderungen für die Suche lassen sich in der Regel in komplizierten und komplizierten Code übersetzen

Das Erstellen einer Suche von Grund auf neu ist ein Problem (ich weiß, weil ich genau das eine Weile für Kunden getan habe), und Sie sollten zuerst nach Such-Plug-ins oder anderen Kompromissen (wie der Suche als Dienst) suchen.

So führen Sie bestimmte Probleme mit Ihrem Code kurz auf:

3
Rarst