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!='')
{ $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' "; }
{dede:likeart titlelen='' row=''} {/dede:likeart}
//查询指定栏目里包含相应关键字的文章,并列出 //参数说明:$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; }
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三 语文”)’/} 可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章
相关文章 {dede:likeart titlelen=’24′ row=’10′} [field:textlink/]< > {/dede:likeart}
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!