GetKeywordSql .." et enregistrez-le."/> GetKeywordSql .." et enregistrez-le.">
Maison >Tutoriel CMS >DEDECMS >Que dois-je faire si la liste gratuite dede5.7 ne parvient pas à obtenir plusieurs mots-clés ?
La liste gratuite Dede5.7 ne peut pas obtenir plusieurs mots-clés ?
Cet article a compilé une solution complète au problème de la liste gratuite dede5.7 qui ne permet pas d'obtenir plusieurs mots-clés, ainsi que des techniques d'utilisation alternatives.
Apprentissage recommandé : Dreamweaver cms
Jetons d'abord un coup d'œil à l'interface permettant d'ajouter une liste gratuite dans DEDE5.7.
Comme on peut le voir sur l'image, dans des circonstances normales DEDE écrit officiellement que plusieurs mots-clés peuvent être utilisés : mot-clé 1, mot-clé 2, mot-clé 3... , mais je Je ne sais pas s'il s'agit d'une erreur officielle ou pour d'autres raisons. Après avoir ajouté plusieurs mots-clés, cela n'a aucun effet. Au lieu de cela, aucun contenu ne peut être récupéré. Sur la base des problèmes signalés par tout le monde, nous avons compilé une solution complète à ce problème. . méthode.
Fichiers impliqués : remplacez includearc.freelist.class.php
Nous pouvons voir que le code impliqué est tel qu'indiqué dans l'image ci-dessus.
Masquons d’abord les deux codes !
Écrivons nous-mêmes une déclaration connexe :
$orwhere .= "AND (".$this->GetKeywordSql($keyword)." )";
Enfin, nous trouverons l'emplacement ci-dessous et ajouterons les conditions et règles de recherche pertinentes que nous avons écrites
function GetKeywordSql($keyword) { $ks = explode(',',$keyword); $kwsql = ''; $kwsqls = array(); foreach($ks as $k) { $k = trim($k); if(strlen($k)<1) { continue; } if(ord($k[0])>0x80 && strlen($k)<2) { continue; } $k = addslashes($k); $kwsqls[] = " arc.title LIKE '%$k%' "; } if(!isset($kwsqls[0])) { return ''; } else { $kwsql = join(' OR ',$kwsqls); return $kwsql; } } /** * 获得关键字SQL,统计记录使用 * * @access private * @return string */ function GetRowSql($keyword) { $ks = explode(',',$keyword); $kwsql = ''; $kwsqls = array(); foreach($ks as $k) { $k = trim($k); if(strlen($k)<1) { continue; } if(ord($k[0])>0x80 && strlen($k)<2) { continue; } $k = addslashes($k); $kwsqls[] = " title LIKE '%$k%' "; } if(!isset($kwsqls[0])) { return ''; } else { $kwsql = join(' OR ',$kwsqls); return $kwsql; }
Ajoutez le code ci-dessus au bas de la page, et maintenant la fonction de mots-clés multiples de la liste gratuite de DEDE peut être utilisée !
Ce n’est pas encore fini ! L'éditeur a rencontré un problème lors du processus de test proprement dit. Nous avons ajouté deux mots-clés pour permettre un filtrage plus poussé ou pour ajouter des mots-clés plus larges ? Ce problème me préoccupe depuis longtemps. A travers le code ci-dessus, j'ai testé les solutions pertinentes :
On peut voir ça à cet endroit, si on utilise "OR" signifie OU, ce qui signifie que nous élargissons la portée de la recherche afin que les articles avec les mots-clés qui apparaissent apparaissent. Si nous changeons en « ET », cela signifie restreindre la portée de la recherche, indiquant que les deux mots-clés sont inclus dans l'article. Le mot 1 doit également avoir le mot-clé 2.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!