Heim  >  Artikel  >  CMS-Tutorial  >  So lösen Sie Probleme im Zusammenhang mit dem Schlüsselwort dede:arclist

So lösen Sie Probleme im Zusammenhang mit dem Schlüsselwort dede:arclist

藏色散人
藏色散人Original
2020-01-13 09:46:462214Durchsuche

So lösen Sie Probleme im Zusammenhang mit dem Schlüsselwort dede:arclist

Wie löse ich {dede:arclist keyword='dynamisch erhaltene Schlüsselwörter'}?

Lösen Sie {dede:arclist keyword='Dynamische Erfassung von Schlüsselwörtern'🎜>

Empfohlenes Lernen:

Dreamweaver cms

Um relevante Artikel relevanter zu machen, habe ich vor, sie zu optimieren, aber es würde die Zeit zum Generieren der Seite verlängern. Es wäre gut, wenn sie nicht häufig aktualisiert würde >

Kürzlich daran gearbeitet Für eine Website möchte ich eine Funktion haben, nämlich einen div-Block, der den Titel eines Artikels mit denselben Schlüsselwörtern wie der aktuelle Artikel anzeigt. Am Anfang wurde es so geschrieben:

{dede:arclist keyword='{dede:field name='keyword'}'}Das Ergebnis ist definitiv nicht zulässig. . . . Ich konnte es online nicht finden. Also habe ich den Code selbst gelesen und selbst eine einfache Lösung geschrieben.

In Zeile 149 von arclist.lib.php

Der Code lautet wie folgt:

//关键字条件 
if($keyword!='')

Ändern Sie den Inhalt in der Mitte von {} in

{ 
$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' "; 
}

Auf diese Weise rufen Sie { direkt auf dede:arclist keyword='Schreiben Sie hier, was Sie wollen, solange es nicht leer ist'} Auf diese Weise wird das Schlüsselwort hier dynamisch erhalten. Ansonsten kann es nur behoben werden.

Kurz bevor ich gepostet habe, habe ich ein Tag in dede5.6 gesehen

{dede:likeart titlelen='' row=''}
{/dede:likeart}

Dieses Tag wurde noch nicht getestet, aber es sollte diese Funktion sein. Wenn nicht, verwenden Sie einfach die oben erwähnte Methode. Es wurde getestet und kann verwendet werden.

So ändern Sie DEDECMS-bezogene Artikel basierend auf Schlüsselwörtern

DEDE-bezogene Artikel sind völlig irrelevant. Ein Freund hat offiziell verwandte Artikel basierend auf TAG auf DEDE veröffentlicht, was leider auch sehr gut ist , ich verlasse mich nicht auf Der Artikel dort schlägt immer fehl, nachdem der DEDE-Code geändert wurde. Es kann an eingeschränkten Funktionen liegen, oder es liegt natürlich ein Problem mit dem Code vor

Jetzt habe ich endlich eine Lösung:

1 Fügen Sie am Ende von inc_functions.php?>

vor ; hinzu und der Code lautet wie folgt:

//查询指定栏目里包含相应关键字的文章,并列出 
//参数说明:$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; 
}

die Artikelvorlagenseite, um verwandte Artikel in allen Spalten zu erhalten (Schlüssel zum aktuellen Artikel), die maximale Titellänge beträgt 32 und es können maximal 10 Miniaturansichten angezeigt werden

oder

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”@me”)’/}

werden beispielsweise nicht angezeigt:

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,”高三 语文”)’/} 
可以找到标题里,含有“高三 语文”,或者含有“高三”或“语文”的文章

sollte geändert werden in:

相关文章 
{dede:likeart titlelen=’24′ row=’10′}
[field:textlink/]< > 
{/dede:likeart}

Anweisung: Diese Funktion wurde nicht von mir geschrieben

Verwandt Artikel basierend auf Schlüsselwörtern, was in Bezug auf Benutzererfahrung und SEO sehr gut ist

Aber das einzig schlechte ist nur, dass es beim Generieren von statischen Aufladungen viel langsamer sein wird, haha, der Server muss wieder hart arbeiten

Das obige ist der detaillierte Inhalt vonSo lösen Sie Probleme im Zusammenhang mit dem Schlüsselwort dede:arclist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn