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 les problèmes liés au mot-clé dede:arclist

藏色散人
藏色散人original
2020-01-13 09:46:462139parcourir

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 &#39;%$k%&#39;)"; 
//$kwsqlarr[] = " (xkzzz_archives.keywords like &#39;%$k%&#39;) "; //如果需要相关到其它文章的关键字,解除此行注释 
} 
} 
$where = implode(&#39; OR &#39;,$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 &#39;%".$keyWord."%&#39;) 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=&#39;".$url."&#39; 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=&#39;sjdqimggl&#39;><a href=&#39;".$url."&#39; target=_blank>"; </p> <p>if ($row->litpic!="") $ss=$ss."<img src=&#39;".$row->litpic."&#39; alt=&#39;".$row->title."&#39; />"; 
else $ss=$ss."<img src=&#39;/images/titl.gif&#39;/>"; 
$ss=$ss."</a></span><span class=&#39;sjdqtxttl&#39;><a href=&#39;".$url."&#39; 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn