GetOne("select keywords)"."/> GetOne("select keywords)".">
Maison > Article > Tutoriel CMS > Comment résoudre les problèmes liés au mot-clé dede:arclist
Comment résoudre {dede:arclist keyword='dynamically obtenir des mots-clés'} ?
Résoudre {dede:arclist keyword='Acquisition dynamique de mots-clés'>
Apprentissage recommandé : Dreamweaver cms
Le modèle a été modifié récemment. Afin de rendre les articles connexes plus pertinents, je prévois de l'optimiser. Cependant, cela augmentera le temps de génération de la page. Ce serait bien s'il n'était pas mis à jour fréquemment.
J'y travaille récemment. Pour un site web, je souhaite avoir une fonction, qui est d'avoir un bloc div qui affiche le titre d'un article avec les mêmes mots-clés que l'article en cours. Au début, c'était écrit comme ceci {dede:arclist keyword='{dede:field name='keyword'}'}Le résultat n'est définitivement pas autorisé. . . . Je ne l'ai pas trouvé en ligne. J'ai donc lu le code moi-même et écrit moi-même une solution simple. Dans la ligne 149 de arclist.lib.php Le code est le suivant ://关键字条件 if($keyword!='')Changez le contenu au milieu de {} en
{ $rowGetKeyword = $dsql->GetOne("select keywords From `dede_archives` where id='$arcid'"); $keyword=$rowGetKeyword['keywords']; $keyword = str_replace(',', '|', $keyword); $orwheres[] = " CONCAT(arc.title,arc.keywords) REGEXP '$keyword' "; }De cette façon, appelez { directement dede:arclist keyword='Écrivez ici ce que vous voulez tant qu'il n'est pas vide'} De cette façon, le mot-clé ici est obtenu dynamiquement. Sinon, cela ne peut être que réparé. Juste avant de poster, j'ai vu une balise dans dede5.6
{dede:likeart titlelen='' row=''} {/dede:likeart}Cette balise n'a pas encore été testée, mais ce devrait être cette fonction. Sinon, utilisez simplement la méthode que j'ai mentionnée ci-dessus. Il a été testé et peut être utilisé. Comment modifier les articles liés à DEDECMS en fonction de mots-clés Les articles liés à DEDE ne sont absolument pas pertinents. Un de mes amis a officiellement publié des articles connexes basés sur TAG sur DEDE, ce qui est également très bon. . Malheureusement, je ne suis pas basé sur L'article là-bas échoue toujours après avoir modifié le code DEDE, ou bien sûr il peut y avoir un problème avec le code Maintenant, j'ai enfin un. solution : 1 À la fin de inc_functions.php?> Ajoutez avant ; et le code est le suivant :
//查询指定栏目里包含相应关键字的文章,并列出 //参数说明:$showImg 是否显示缩略图,0表示不显示,1表示显示 // $titleLen 标题长度,0表示无限 // $rowCount 输出行数,0表示无限 // $typeid 栏目ID,0表示所有栏目 // $keyWord 关键字,字符串 function ShowKeyWordArc($showImg,$titleLen,$rowCount,$typeid,$keyWord){ $dsql = new DedeSql(false); $sql = TypeGetSunID($typeid,$dsql); </p> <p>//关键字分词技术 $ks = explode(" ",$keyWord); foreach($ks as $k){ $k = trim($k); if ($k!="") { $kwsqlarr[] = " (xkzzz_archives.title like '%$k%')"; //$kwsqlarr[] = " (xkzzz_archives.keywords like '%$k%') "; //如果需要相关到其它文章的关键字,解除此行注释 } } $where = implode(' OR ',$kwsqlarr); </p> <p>$sql="Select tp.namerule,tp.typedir,xkzzz_full_search.aid,xkzzz_full_search.url,xkzzz_archives.* From xkzzz_full_search left join xkzzz_archives on xkzzz_full_search.aid=xkzzz_archives.ID left join xkzzz_arctype tp on xkzzz_archives.typeid=tp.ID where {$sql} and ((xkzzz_archives.title like '%".$keyWord."%') or $where) order by xkzzz_full_search.aid desc"; $dsql->SetQuery($sql); $dsql->Execute(); $ss=""; $i=0; while($row=$dsql->GetObject()){ $url=GetFileUrl($row->ID,$row->typeid,$row->senddate,$row->title,$row->ismake,$row->arcrank,$row->namerule,$row->typedir,$row->money); if ($showImg==0){ $ss=$ss."<LI><a href='".$url."' target=_blank>"; if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); else $ss=$ss.$row->title; $ss=$ss."</A></LI>"; }else{ $ss=$ss."<LI><span class='sjdqimggl'><a href='".$url."' target=_blank>"; </p> <p>if ($row->litpic!="") $ss=$ss."<img src='".$row->litpic."' alt='".$row->title."' />"; else $ss=$ss."<img src='/images/titl.gif'/>"; $ss=$ss."</a></span><span class='sjdqtxttl'><a href='".$url."' target=_blank>"; if ($titleLen!=0) $ss=$ss.cn_substr($row->title,$titleLen); else $ss=$ss.$row->title; $ss=$ss."</A></span></LI>"; } $i++; if (($rowCount!=0)&&($i>=$rowCount)) return $ss; } return $ss; }2. > dans la page du modèle d'article pour obtenir les articles associés dans toutes les colonnes (clé des mots associés en cours), la longueur maximale du titre est de 32 et un maximum de 10 éléments peuvent être affichés ou.
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}ne sont pas affichés. Par exemple, ce paragraphe :
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三 语文”)’/} 可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章doit être remplacé par :
相关文章 {dede:likeart titlelen=’24′ row=’10′} [field:textlink/]< > {/dede:likeart}Déclaration : Cette fonction n'a pas été écrite par moi Articles connexes basés sur des mots-clés, ce qui est très bien en termes d'expérience utilisateur et de référencement Mais le seul inconvénient C'est juste que ce sera beaucoup plus lent lors de la génération de statique, haha, le serveur devra travailler dur encore
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!