GVKun编程网logo

织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目(织梦的标签调用怎么学)

8

本文将带您了解关于织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目的新内容,同时我们还将为您解释织梦的标签调用怎么学的相关知识,另外,我们还将为您提供关于dede:lik

本文将带您了解关于织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目的新内容,同时我们还将为您解释织梦的标签调用怎么学的相关知识,另外,我们还将为您提供关于dede:likearticle文章标签和tag标签关联错误怎么办、dedecms嵌套循环调用顶级栏目和子栏目、DedeCMS标签likearticle调用全站相关文章支持排序、DedeCMS标签likearticle调用全站相关新闻支持排序的实用信息。

本文目录一览:

织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目(织梦的标签调用怎么学)

织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目(织梦的标签调用怎么学)

 
在使用织梦dede:likearticle时,如果你想获取多个指定栏目下的相关文章,而刚好这个多个栏目下还有子栏目时,官方的程序不能满足你的需求,你需要改一下
 
打开 \include\taglib\likearticle.lib.php 找到
 
 
if( !empty($typeid) && !preg_match('#,#', $typeid) ) {
         $typeid = GetSonIds($typeid);
}
在它下面加入
 
 
else{
    $typeids = explode(',', $typeid);
    foreach($typeids as $ttid) {
        $typeidss[] = GetSonIds($ttid);
    }
    $typeidStr = join(',', $typeidss);
    $typeidss = explode(',', $typeidStr);
    $typeidssok = array_unique($typeidss);
    $typeid = join(',', $typeidssok);}
本文章网址:http://www.ppssdd.com/code/1276.html。转载请保留出处,谢谢合作!

dede:likearticle文章标签和tag标签关联错误怎么办

dede:likearticle文章标签和tag标签关联错误怎么办

dede:likearticle文章标签和tag标签关联错误怎么办

dede:likearticle文章标签和tag标签关联错误怎么办?

织梦5.7有个dede:likearticle标记是用来文章的关联,但是在使用的过程中,我们却发现这个关联实在是鸡肋,作者却发现,大家在使用织梦5.7搜索的时候是不是还能勉强接受呢?作者就把dede的搜索功能给替换到这个likearticle上,看样子的确是好多了。

推荐学习:织梦cms

代码简介

likearticle和tag标签关联解决方法/步骤

第1步:使用记事本或一些工具打开“根目录\include\taglib\likearticle.lib.php”此文件。

第2步:搜索“[''keywords'']”,全部替换成[''tags'']并保存。

电脑互助网注;:

原代码55行:$keyword = ( !empty($refObj->Fields[''keywords'']) ? $refObj->Fields[''keywords''] : '''' );

原代码75行:if(!empty($refObj->Fields[''keywords'']))

原代码77行:$keywords = explode('','' , trim($refObj->Fields[''keywords'']));

第3步:在87行下添加“$keyword .= $keyword=='''' ? " CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP ''($k)''": " OR CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP ''($k)''";”

源代码87行注销://$keyword .= ($keyword=='''' ? " CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' " : " OR CONCAT(arc.keywords,'' '',arc.title) LIKE ''%$k%'' ");

9ccc15fe2c9c3bc6a6bb2a780c1cc4b.png

电脑互助网添加代码意思:原来的模糊查询语句,作者在这里多加了一个短标题也要查询,不过我不喜欢用linke这个模糊查询,所以在这里换成REGEXP查询。

第4步:在第107行下面添加以下代码并保存。

代码如下:

/**
按tag标签关联文章内容 query2为备用,如果query为空的话,第二个就直接显示出来
*/
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row";
$typeids=$refObj->Fields[&#39;typeid&#39;];//取出当前栏目ID
$query2 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET(&#39;c&#39;, arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( &#39;,&#39;, arc.typeid2, &#39;,&#39; ) LIKE &#39;%,$typeids,%&#39; ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row";
/*query3是判断是否为空用的*/
$query3 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM dede_archives arc LEFT JOIN dede_arctype tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row";//这里的SQL具体按自己的数据库的表字段写吧,我这是直接写死了,哎没办法,能力有限。
/*
这里是判断tags标签查询的是否为空值,如果是空值,就全部使用推荐返回值,如果有值,就直接显示tags关联。
*/
$result =mysql_query($query3);//query36判断专用的,主要是作者不会用SetQuery呀,郁闷。我是直接拼的SQL
if(mysql_num_rows($result)<1){
$dsql->SetQuery($query2);
}else{
$dsql->SetQuery($query);
}
登录后复制

以下是源代码101行到107全部注销的图,单击图片查看大图:

7e260f8b36c3d43cafe12be10fb659a.png

以上代码意思:按tag标签关联文章内容 query2为备用,如果按tags标记查询的数据为空的话,第二个就可以用到了。

第5步:在第原代码117行下添加以下代码并保存。

代码如下:

$typeids=$refObj->Fields[&#39;typeid&#39;];//取出当前栏目ID
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET(&#39;c&#39;, arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( &#39;,&#39;, arc.typeid2, &#39;,&#39; ) LIKE &#39;%,$typeids,%&#39; ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row";
$dsql->SetQuery($query);
登录后复制

以下是源代码111行到117全部注销的图,单击图片查看大图:

e44cb1064e0b1cfbfe76576a4274921.png

以上代码意思:第5步查的是当tags标签有内容时查的,第5步就是当tags标签不为空时执行的SQL。

第6步:完成之后并上传到空间,即可,作者就不演示代码后的效果了,如果非想看效果的话,看本文右侧的相关文章就明白了。

筌于一些网友对SQL不敏感,可能会认为本文写的一点都看不懂,自己也改不了,没关系,这是下载地址:likearticle.lib.rar

以上就是dede:likearticle文章标签和tag标签关联错误怎么办的详细内容,更多请关注php中文网其它相关文章!

dedecms嵌套循环调用顶级栏目和子栏目

dedecms嵌套循环调用顶级栏目和子栏目

《Dedecms嵌套循环调用顶级栏目和子栏目》要点:
本文介绍了Dedecms嵌套循环调用顶级栏目和子栏目,希望对您有用。如果有疑问,可以联系我们。

一段代码搞定多个顶级栏目和子级栏目的同时输出.在有的带有下拉菜单的导航中很实用.
<div>
    <ul>
   {dede:channelartlist row=6}只能首页用,子页要用改成{dede:channelartlist row=6 typeid='top'}
    <li>
    <h3><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a>></h3>
         <ul>
             {dede:channel type='son' noself='true'}
             <li><a href='[field:typelink/]'>[field:typename/]</a></li>
             {/dede:channel}
         </ul>
     </li>
   {/dede:channelartlist}
   </ul>
</div>
备注:如果你想控制顶级栏目的个数,请变动上面第一行红色的row参数
这样循环,如果栏目属性是外部链接就不会输出,如果必要显示外部链接,5.7可以找include/taglib/channelartlist.lib.PHP第67行左右去掉红色代码
$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
改成
$tpsql = " reid=0 AND ishidden<>1 AND channeltype>0 ";



去掉 {cmspath} 可以使用如下办法:

1、执行sql: update dede_arctype set typedir=replace(typeidr,'{cmspath}','');

2、改动文件 catalog_add.PHP 找到 $true_typedir = str_replace("{cmspath}",$cfg_cmspath,$typedir); 改为 $true_typedir = str_replace("",$typedir);

《Dedecms嵌套循环调用顶级栏目和子栏目》是否对您有启发,欢迎查看更多与《Dedecms嵌套循环调用顶级栏目和子栏目》相关教程,学精学透。小编PHP学院为您提供精彩教程。

DedeCMS标签likearticle调用全站相关文章支持排序

DedeCMS标签likearticle调用全站相关文章支持排序

Dedecms一个SEO优化重要标签likearticle,根据标题、关键字调用本栏目下的相似文章。这意味着为某文章增加了许多带“长尾关键词”的文章,内容相关度增强,为网站增加PV。缺点是不能调用全站相似文章,不支持order by排序属性,做如下修改:

likearticle全站调用相似文章

       打开/include/taglib/likearticle.lib.PHP,找到

$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";

       修改为

$typeid = " And arc.id<>$arcid ";

likearticle支持order by排序

       继续找到

extract($ctag->CAttribute->Items,EXTR_SKIP);
$revalue = ";

       下面添加

$orderby=$ctag->GetAtt('orderby');

       找到

if( empty($arcid) || $byabs==0 ) {
$orderquery = " order by arc.id desc ";
}
else {
$orderquery = " order by ABS(arc.id – ".$arcid.") ";
}

       修改为

$orderquery = ";
if($orderby=='hot' || $orderby=='click') $orderquery = " order by arc.click $orderWay";
else if($orderby == 'sortrank' || $orderby=='pubdate') $orderquery = " order by arc.sortrank $orderWay";
else if($orderby == 'id') $orderquery = " order by arc.id $orderWay";
else if($orderby == 'near') $orderquery = " order by ABS(arc.id – ".$arcid.")";
else if($orderby == 'lastpost') $orderquery = " order by arc.lastpost $orderWay";
else if($orderby == 'scores') $orderquery = " order by arc.scores $orderWay";
else if($orderby == 'rand') $orderquery = " order by rand()";
else if($orderby == 'weight') $orderquery = " order by arc.weight asc";//如果没有特定设置排序则按照权重先排序
else $orderquery = " order by arc.sortrank $orderWay";

上一篇:DedeCMS附加表自定义字段关联主表文章

下一篇:DedeCMS实现百度搜索下拉菜单提示信息功能

DedeCMS标签likearticle调用全站相关新闻支持排序

DedeCMS标签likearticle调用全站相关新闻支持排序

 

DedeCMS一个网站优化优化重要标签likearticle,根据标题、关键词调用本栏目下的相似新闻。这意味着为某新闻增加了许多带“长尾Keywords”的新闻,内容相关度增强,为网站增加PV。缺点是不能调用全站相似新闻,不支持order by排序属性,做如下修改:

likearticle全站调用相似新闻

打开/include/taglib/likearticle.lib.php,找到

$typeid = " And arc.typeid in($typeid) And arc.id<>$arcid ";  

修改为

$typeid = " And arc.id<>$arcid ";  
likearticle支持order by排序

继续找到

extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ";  

下面添加

$orderby=$ctag->GetAtt('orderby');  

找到

if( empty($arcid) || $byabs==0 ) { $orderquery = " order by arc.id desc "; } else { $orderquery = " order by ABS(arc.id – ".$arcid.") "; }  

修改为

$orderquery = "; if($orderby=='hot' || $orderby=='click') $orderquery = " order by arc.click $orderWay"; else if($orderby == 'sortrank' || $orderby=='pubdate') $orderquery = " order by arc.sortrank $orderWay"; else if($orderby == 'id') $orderquery = " order by arc.id $orderWay"; else if($orderby == 'near') $orderquery = " order by ABS(arc.id – ".$arcid.")"; else if($orderby == 'lastpost') $orderquery = " order by arc.lastpost $orderWay"; else if($orderby == 'scores') $orderquery = " order by arc.scores $orderWay"; else if($orderby == 'rand') $orderquery = " order by rand()"; else if($orderby == 'weight') $orderquery = " order by arc.weight asc";//如果没有特定设置排序则按照权重先排序 else $orderquery = " order by arc.sortrank $orderWay";  

本文章网址:http://www.ppssdd.com/code/14871.html。转载请保留出处,谢谢合作!

关于织梦让相关文章标签likearticle的mytypeid支持多个栏目和子栏目织梦的标签调用怎么学的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于dede:likearticle文章标签和tag标签关联错误怎么办、dedecms嵌套循环调用顶级栏目和子栏目、DedeCMS标签likearticle调用全站相关文章支持排序、DedeCMS标签likearticle调用全站相关新闻支持排序等相关内容,可以在本站寻找。

本文标签: