织梦dedecms在调用文章的时候可以根据自己的条件来调用不同的文章,可以调用最新的文章,也可以调用出一段时间内的文章,但是想要根据自己的关键词来调用文章还不是默认的标签就可以调用出来的,想要调用这样的相关文章还要注意做一些修改。

在织梦dedecms模板中调用的时候就可以添加关键词调用的条件

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/} 0,32,10,0的意思是提取所有栏目中的相关文章,标题长度最大32,最多显示10条,不显示缩略图

如果是查找初三语文这个关键词,这句代码在时候的时候就会变成

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,初三 语文)’/}

可以找到标题里,含有初三 语文,或者含有初三或语文的文章展现在用户面前。

在织梦dedecms模板中具体使用的时候可以使用以下代码:

{dede:likeart titlelen=’24′ row=’10′}

[field:textlink/]<{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/}>

{/dede:likeart} 

(责任编辑:最模板)

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

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,初三 语文)’/}            

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  {dede:arclist row=5 titlelen=36 orderby=pubdate keyword=’织梦技术,笨牛网’ typeid=’栏目id’}

 

  <li>[field:textlink/]</li>

 

  {/dede:arclist}

 

如果在栏目中用调用全站的  修改一下

  {dede:arclist row=5 titlelen=36 orderby=pubdate keyword=’织梦技术,笨牛网’ typeid=’top’}

 

  <li>[field:textlink/]</li>

 

  {/dede:arclist}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

{dede:arclist row='4' titlelen='24' imgwidth='150' imgheight='110' orderby='pubdate' typeid='38' idlist='' col='2' type='image.' keyword='dedecms模板网'}

<li>[field:imglink/]<br />

[field:textlink/]</li>

{/dede:arclist}

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

调用相关文章范例

  

  {dede:likeart titlelen=’36′ row=’10′}

  

  <li><a href=[field:arcurl /]>[field:title /]</a></li>

  

  {/dede:likeart}

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

{dede:arclist row=1 idlist='6'} 

<li><a href="[field:arcurl/]">[field:description/]</a></li> 

{/dede:arclist} 

一、指定文章的id来调用特定文档: 

{dede:arclist idlist='373,387,277' titlelen=100}<a href='[field:arcurl/]'>[field:title/]</a>{/dede:arclist} 

所有只需在arclist里加入idlist='373,387,277',表示调用id号为373,387,277的文档。 

二、指定keyword来调用特定文档: 

{dede:arclist keyword='织梦侠' titlelen=100}<a href='[field:arcurl/]'>[field:title/]</a>{/dede:arclist} 

所有只需在arclist里加入keyword='织梦侠',表示调用keyword设置为织梦侠的文档。同样idlist和keyword的值里可以有多个值,当需要设置多个值时,只需要用英文状态下的逗号,分开即可。 

{dede:global runphp="yes"} 

global $dsql; 

$row=$dsql->getOne("select title from dede_archives where id=xxx"); 

@me=$row["title"]; 

{/dede:global} 

得到文章的内容 

{dede:global runphp="yes"} 

global $dsql; 

$row=$dsql->getOne("select body from dede_addonarticle where aid=xxx"); 

@me=$row["body"]; 

{/dede:global}

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

织梦dedecms在调用文章的时候可以根据自己的条件来调用不同的文章,可以调用最新的文章,也可以调用出一段时间内的文章,但是想要根据自己的关键词来调用文章还不是默认的标签就可以调用出来的,想要调用这样的相关文章还要注意做一些修改。

在织梦dedecms模板中调用的时候就可以添加关键词调用的条件

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/} 0,32,10,0的意思是提取所有栏目中的相关文章,标题长度最大32,最多显示10条,不显示缩略图

如果是查找初三语文这个关键词,这句代码在时候的时候就会变成

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,初三 语文)’/}

可以找到标题里,含有初三 语文,或者含有初三或语文的文章展现在用户面前。

在织梦dedecms模板中具体使用的时候可以使用以下代码:

{dede:likeart titlelen=’24′ row=’10′}

[field:textlink/]<{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/}>

{/dede:likeart} 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

织梦DEDECMS根据当前文章的关键字调用相关文章

 

发布:2019-02-08 浏览:105 TAG标签:

打开 /include/taglib/arclist.lib.php 搜索

 

$keyword = trim($keyword);

在它下面加上

 

preg_match("/~([A-Za-z0-9_]+)~/s", $keyword, $conditions);

if(isset($refObj->Fields[$conditions[1]]))

{

$keyword = addslashes($refObj->Fields[$conditions[1]]);

}

模板里调用代码:

 

{dede:arclist row='10' titlelen='250' keyword='~keywords~'}

<li><a href="[field:arcurl/]">[field:title/]</a></li>

{/dede:arclist}

说明:keyword=’~keywords~’ 是调用当前页面关键词,如果你要调用标题用~title~,其他的根据自己当前页面的标签填字段

 

保存后在后台更新系统缓存。

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 

织梦列表页面调用文章关键词

 

织梦文章列表页最常见的是读取文章的标题和描述,不过最近做的网站显示读取文章的关键字。那么代码如何实现这个呢?

 

下面就让我们来看看代码如何去写:

 

 

 

[field:id runphp=yes]

 

global $dsql;

 

$tags = '';

 

$query = "SELECT keywords FROM `dede_archives` WHERE id='@me' ";

 

$dsql->Execute('keywords',$query);

 

while($row = $dsql->GetArray('keywords'))

 

{

 

$keywords1=$row['keywords'];

 

}

 

@me=$keywords1;

 

[/field:id]

 

那们文章的描述如何去控制他的字数的多少呢?使用cn_substr这个函数。

 

  [field:description function="cn_substr(@me,182)"/]

 

这样写,其中数字是显示的文章的字符。

 

显示列表页的文章缩略图图示:

 

 [field:array runphp='yes']@me = (strpos(@me['litpic'],'defaultpic') ? "" : "<a href='{@me['arcurl']}' class='preview'><img src='{@me['litpic']}'   alt='[field:title function='html2text(@me)'/]' width='125' height='124' /></a>"); [/field:array]

 

宽和高可以自定义。织梦教程其他的问题  

 

 

  

  DEDE在正文页面显示关键词标签

  

  {dede:field name=’keywords’ runphp=’yes’ }

  

  if(!empty(@me)){

  

  $kws = explode(’ ‘,@me);

  

  @me = ;

  

  foreach($kws as $k){

  

  @me .= <a href=’/plus/search.php?keyword=.urlencode($k).‘ target=_blank >$k</a> ;

  

  }

  

  @me= str_replace(’ ', ‘ ‘,trim(@me));

  

  }

  

  {/dede:field}               

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

1、织梦dedecms在正文页面显示关键词标签的方法如下:{dede:field name=’keywords’ runphp=’yes’ }if(!empty(@me)){$kws = explode(’ ‘,@me);@me = ;foreach($kws as $k){@me .= <a href=’/plus/search.php?keyword=.urlencode($k).‘ target=_blank >$k</a> ;}@me= str_replace(’ ', ‘ ‘,trim(@me));}        

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

DEDECMS列表页按照栏目名称为关键词调用整站文章

在栏目页,如果栏目名称为智能手机,那么如果整站其他栏目里面含有智能手机这个关键词的文章都给调出来。

将以下代码 复制到  include文件夹下的 common.func.php 里

 

function list_keyword($typename)  

 {  

     $tsql = new DedeSql(false);  

     $typename = '';  

  

     $tsql->SetQuery("Select id,title From cn_archives  where keywords like '%$typename%'");  

  

     $tsql->Execute('t');  

  

     while($row = $tsql->GetArray('t',MYSQL_ASSOC)){ 

  $g=GetOneArchive($row['id']); 

  $typename .= "<a href=".$g['arcurl'].">".$g['arctitle']."</a> "; 

  

     }  

  

     retu $typename;  

然后再栏目页模板里使用 {dede:field.typename function="list_keyword(@me)"/} 就可以了

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

 

二、DeDeCMS文章页调用标签关键词

 

在模板文件中插入的代码如下:

 

 

引用

{dede:field name='keywords' runphp='yes' }

    if(!empty(@me))

    {

        $kws = explode(' ',@me);

        @me = "";

        foreach($kws as $k)

        {

            @me .= "<a href='/plus/search.php?keyword=".urlencode($k)."' target=_blank >$k</a> ";

        }

         @me= str_replace(' ', ' ',trim(@me));

    }

{/dede:field}

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

 

 

 

dede(织梦)用栏目名称做关键词调用文章列表

 

【想要的结果】

在栏目页的文章列表调用的文章是与该栏目关键词相关的文章

【相关说明】

栏目页关键词标签:{dede:field.keywords/}

调用文章列表的代码:

{dede:arclist row='15' titlelen='30' typeid='75,76,77' keyword='我就是想在这里调用'}

<a href="[field:arcurl/]" title="[field:fulltitle /]" >[field:title/]</a>

{/dede:arclist}

当调用文章列表的标签dede:arclist的属性keyword值等于{dede:field.keywords/}就可以实现我想要的结果了,但是直接这样写{dede:arclist row='15' titlelen='30' typeid='75,76,77' keyword='{dede:field.keywords/}'}是无法调出的,所以需要想办法搞定。

【我想过的办法】

先通过JS来输出栏目关键词

<script type="text/javascript"> 

function get_keywords(){ 

document.write("{dede:field.keywords/}"); 

</script>

然后再用JS来调用输出的栏目关键词

<script type="text/javascript">get_keywords();</script>

但是JS在织梦标签代码中是无法运行的,所以也导致失败,失败代码如下:

{dede:arclist row='15' titlelen='30' typeid='75,76,77' keyword='<script type="text/javascript">get_keywords();</script>'}

我的想法大概就是这样,看您有没有办法解决,谢谢!

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

织梦DedeCMS通过文章关键词调用相关文章

 580 阅读  暂无评论  0 点赞

通过文章关键词调用相关文章(相同关键词文章会显示在同一个页面)是 SEO 站内优化非常重要的一环,下面为大家带来织梦DedeCMS通过文章关键词调用相关文章的方法。

 

以下代码放到织梦文章模板你想显示的位置

 

{dede:field.keywords runphp=yes}

global $dsql,$id,$aid;

$aid = isset($id) ? $id : $aid;

$keyword = '';

if(!empty(@me))

{

    $keywords = explode(',' , trim(@me));

    $keyword = '';

    $n = 1;

    foreach($keywords as $k)

    {

        if($n > 3)  break;

        

        if(trim($k)=='') continue;

        else $k = addslashes($k);

        

        $keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");

        $n++;

    }

}

if($keyword != '')

{

    $sql = "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 arc.arcrank>-1 AND ($keyword) AND arc.id<>'$aid' ORDER BY arc.id desc limit 0, 10";

}

 

$dsql->SetQuery($sql);

$dsql->Execute('t');

$result = '';

while($row = $dsql->GetArray('t'))

{

    $arcrow = GetOneArchive($row['id']);

    $row['arcurl'] = $arcrow['arcurl'];

    $row['pubdate'] = MyDate('Y-m-d',$row['pubdate']);

    $row['litpic'] = $row['litpic'] = $row['litpic']=='' ? '/images/defaultpic.gif' : $row['litpic'];

    $result .= "<li><a href=\"{$row['arcurl']}\"><img src=\"{$row['litpic']}\">{$row['title']}</a></li>";

}

@me = $result;

{/dede:field.keywords}

请跟据自己的需求修改CSS样式。

 

 

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

 

织梦实现全站按TAG和关键字调用相关文章教程

 

 

织梦DedeCms5.7全站按TAG和关键字调用相关文章方法,可单用tag来调用相关文章,也可用tag+keyword来调用相关文章(默认tag优先于keyword,可以自己排序),非常适合SEO,经测试效果极佳。

 

 

 

1.把下边代码保存到文章模版的适当位置

 

<div class="xgwz"> 

<dl class="tbox"> 

<dt><strong>相关文章</strong></dt> 

<dd> 

<ul class="c1 ico2"> 

{dede:likearticle col='2' row='10' titlelen='42' eregtype=all|tag|keyword} 

<li><a href="[field:arcurl/]">[field:title/]</a></li> 

{/dede:likearticle} 

</ul> 

</dd> 

</dl> 

</div>

 

 

2.把下边的php代码替换掉include/taglib/likearticle.lib里的代码

 

 

 

<?php   

if(!defined('DEDEINC')) exit('Request Error!');   

/*--------------------------------------   

按关键词关连文章的标签   

eregtype属性   

eregtype = keyword 只匹配关键字   

eregtype = tag 只匹配tag   

eregtype = all tag优先,不存在tag则匹配关键字   

mytypeid='' 栏目ID,多个栏目用,隔开   

---------------------------------------*/

function lib_likearticle(&$ctag,&$refObj)   

{   

global $dsql;   

      

//属性处理   来源:http://www.dede58.com

$attlist="row|12,titlelen|28,infolen|150,col|1,tablewidth|100,mytypeid|0,byabs|0,imgwidth|120,imgheight|90";   

FillAttsDefault($ctag->CAttribute->Items,$attlist);   

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

$revalue = '';   

      

if(empty($tablewidth)) $tablewidth = 100;   

if(empty($col)) $col = 1;   

$colWidth = ceil(100/$col);   

$tablewidth = $tablewidth."%";   

$colWidth = $colWidth."%";   

      

$ids = array();   

$tids = array();   

      

      

      

$typeid = ( !empty($mytypeid) ? $mytypeid : 0 );   

if(empty($typeid))   

{   

   if(!empty($refObj->Typelink->TypeInfos['reid'])) {   

     $typeid = $refObj->Typelink->TypeInfos['reid'];   

   }   

   else {   

     if(!empty($refObj->Fields['typeid'])) $typeid = $refObj->Fields['typeid'];   

   }   

}   

      

if( !empty($typeid) && !ereg(',', $typeid) ) {   

   $typeid = GetSonIds($typeid);   

}   

if(!empty($refObj->Fields['tags']) && $eregtype != 'keyword' )   

{   

  $tags = explode(',', addslashes($refObj->Fields['tags']));   

                     

  $getsql = " tag like '".join("' OR tag like '", $tags)."' ";   

                     

  $dsql->Execute('me', "Select * From zmb_tagindex where $getsql ");   

  while($arow = $dsql->GetArray('me')) {   

   $tids[] = $arow['id'];   

  }   

  $tid = join(',', $tids);   

  if($tid!='')   

  {   

$dsql->Execute("me", "Select aid From zmb_taglist where tid in($tid) And arcrank > -1 group by aid order by aid desc limit 0, $row");   

   while($arow = $dsql->GetArray("me"))   

   {   

    $ids[] = $arow['aid'];   

                                $arcid =  $refObj->Fields['aid'];   

   }   

  }   

}   

      

if($eregtype == 'tag' && count($ids) == 0 )   

{   

  return '';   

}   

else

{   

  if(count($ids) > 0)   

      

      

  {   

                 if(!empty($typeid)) {   

     // $typeid = " And arc.typeid in($typeid) And arc.id<>$arcid "; 调用整站相关文章  

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

    }   

   $idsStr = join(',', $ids);   

   $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 zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id   

            where arc.id in($idsStr) $typeid order by arc.id desc";   

  }   

  else

  {   

$limitRow = $row - count($ids);   

$keyword = '';   

if(!empty($refObj->Fields['keywords']))   

{   

   $keywords = explode(',' , trim($refObj->Fields['keywords']));   

   $keyword = '';   

   $n = 1;   

   foreach($keywords as $k)   

   {   

      if($n > 3)  break;   

            

      if(trim($k)=='') continue;   

      else $k = addslashes($k);   

            

      $keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) like '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) like '%$k%' ");   

       $n++;   

   }   

}   

$arcid = (!empty($refObj->Fields['id']) ? $refObj->Fields['aid'] : 0);   

if( empty($arcid) || $byabs==0 ) {   

  $orderquery = " order by arc.id desc ";     

}   

else {   

  $orderquery = " order by ABS(arc.id - ".$arcid.") ";   

  }   

if($keyword != '')   

{   

    if(!empty($typeid)) {   

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

    }   

    $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 zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id   

            where arc.arcrank>-1 and ($keyword)  $typeid $orderquery limit 0, $row";   

}   

//http://www.dede58.com

else

{   

   if(!empty($typeid)) {   

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

   }   

   $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 zmb_archives arc left join zmb_arctype tp on arc.typeid=tp.id   

           where arc.arcrank>-1 and  $typeid $orderquery limit 0, $row";   

                   }   

              }   

           }   

$innertext = trim( $ctag->GetInnerText() );   

if($innertext=='') $innertext = GetSysTemplets('part_arclist.htm');   

$dsql->SetQuery($query);   

$dsql->Execute('al');   

  $artlist = '';   

if($col > 1) {   

  $artlist = "<table width='$tablewidth' border='0' cellspacing='0' cellpadding='0'>\r\n";   

}   

$dtp2 = new DedeTagParse();   

$dtp2->SetNameSpace('field', '[', ']');   

$dtp2->LoadString($innertext);   

$GLOBALS['autoindex'] = 0;   

$line = $row;   

for($i=0; $i < $line; $i++)   

{   

  if($col>1) $artlist .= "<tr>\r\n";   

  for($j=0; $j < $col; $j++)   

  {   

   if($col>1) $artlist .= " <td width='$colWidth'>\r\n";   

   if($row = $dsql->GetArray("al"))   

   {   

    $ids[] = $row['id'];   

    //处理一些特殊字段   

    $row['info'] = $row['infos'] = cn_substr($row['description'],$infolen);   

    $row['id'] =  $row['id'];   

    if($row['corank'] > 0 && $row['arcrank']==0)   

    {   

      $row['arcrank'] = $row['corank'];   

    }   

    $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],   

    $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);   

    $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],$row['isdefault'],$row['defaultname'],$row['ispart'],   

    $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);   

    if($row['litpic'] == '-' || $row['litpic'] == '')   

    {   

     $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';   

    }   

    if(!eregi("^http://",$row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y')   

    {   

     $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];   

    }   

    $row['picname'] = $row['litpic'];   

    $row['stime'] = GetDateMK($row['pubdate']);   

    $row['typelink'] = "<a href='".$row['typeurl']."'>".$row['typename']."</a>";   

    $row['image'] = "<img src='".$row['picname']."' border='0' width='$imgwidth' height='$imgheight' alt='".ereg_replace("['><]","",$row['title'])."'>";   

    $row['imglink'] = "<a href='".$row['filename']."'>".$row['image']."</a>";   

    $row['fulltitle'] = $row['title'];   

    $row['title'] = cn_substr($row['title'],$titlelen);   

    if($row['color']!='') $row['title'] = "<font color='".$row['color']."'>".$row['title']."</font>";   

    if(ereg('b',$row['flag'])) $row['title'] = "<strong>".$row['title']."</strong>";   

    $row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";   

    $row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];   

    $row['memberurl'] = $GLOBALS['cfg_memberurl'];   

    $row['templeturl'] = $GLOBALS['cfg_templeturl'];   

         

    if(is_array($dtp2->CTags))   

    {   

     foreach($dtp2->CTags as $k=>$ctag)   

     {   

      if($ctag->GetName()=='array') {   

       $dtp2->Assign($k,$row);   

      }   

      else {   

       if(isset($row[$ctag->GetName()])) $dtp2->Assign($k,$row[$ctag->GetName()]);   

       else $dtp2->Assign($k,'');   

      }   

     }   

     $GLOBALS['autoindex']++;   

    }   

    $artlist .= $dtp2->GetResult()."\r\n";   

   }   

   //if hasRow   

   else

   {   

    $artlist .= '';   

   }   

   if($col>1) $artlist .= " </td>\r\n";   

  }   

  //Loop Col   

  if($col>1) $i += $col - 1;   

  if($col>1) $artlist .= " </tr>\r\n";   

}   

//loop line   

if($col>1) $artlist .= " </table>\r\n";   

$dsql->FreeResult("al");   

return $artlist;   

}   

?>

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

dede调用指定栏目下相关文章的实现方法

首先明确要达到两个要求:

1、要调用指定栏目

2、调用的文章要包含指定关键字

相关文档调用

{dede:likeart titlelen=’24′ row=’10′}

<li><a title=[field:title function='htmlspecialchars(@me)'/] href=[field:arcurl /]>[field:title /]</a></li>

{/dede:likeart}

注:此为dede官方的调用模板,但至今不清楚调用依据!

指定栏目调用

{dede:arclist typeid='栏目ID' row='10' titlelen='20'}
[field:textlink/]
{/dede:arclist}

下面是我自己要达到的效果:

指定栏目(ID=4)相关新闻(keyword要调用关键字或title)的调用

{dede:arclist typeid='4' row='10' titlelen='20' keyword=''}
[field:textlink/]
{/dede:arclist}

代码1



效果1:


 

代码2:



效果2:



到这里你如果是只是单一关键词的话那就可以了。下面的关键是我的关键词要去调用:即keyword='{dede:field name='keywords’/}'  或者我调用标题

keyword='{dede:field name='title'/}' 

不过这种很少用,因为是调用模板。没人愿意所有的文章都调用同一个关键字吧!

博主推荐方法:

--------------------------------------------------------------------------------------

放在文章模板页内
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/}
就表示是取所有栏目内的相关文章(与当前文章的关键字相关),标题长度最大32,最多显示10条,不显示缩略图

{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,高三语文)’/}
可以找到标题里,含有高三 语文,或者含有高三或语文的文章
例如,这一段:
相关文章
{dede:likeart titlelen=’24′ row=’10′}
[field:textlink/]< >
{/dede:likeart}
就改成:
相关文章
{dede:field name=’keywords’ function=’ShowKeyWordArc(0,32,10,0,@me)’/}

根据关键字来相关文章,就用户体验以及SEO来说都是非常好的
唯一不好的地方就是生成静态的时候会慢很多
 

--------------------------------------------------------------------------------------------------

附1:arclist 中 keyword 怎样调用当前文档的关键字(dedecms织梦技术论坛)

附2: {dede:arclist}的学习心得,调用文章或者软件任何字段

附3、dedecms实现{dede:arclist keyword='[field:title/]'}效果

【Arclist 标记】   这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。 功能说明:获取指定的文档列表 适用范围:封面模板、列表模板、文档模板 基本语法:
{dede:arclist typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
底层模板(InnerText)
{/dede:arclist} 属性说明:
[1] typeid='' 表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
[2] row='' 表示返回文档列表总数;
[3] col='' 表示分多少列显示(默认为单列);
[4] titlelen='' 表示标题长度;
[5] infolen='' 表示内容简介长度;
[6] imgwidth='' 表示缩略图宽度;
[7] imgheight='' 表示缩略图高度;
[8] type='' 表示档案类型,其中空值、不使用这个属性或type='all'时为普通文档
§ type='commend'时,表示推荐文档,等同于 {dede:coolart}{/dede:coolart}
§ type='image'时,表示必须含有缩略图片的文档,等同于{dede:imglist}{/dede:imglist}、{dede:imginfolist}{/dede:imginfolist}
§ type='spec'时,表示专题,等同于标记{dede:specart}{/dede:specart}
以上属性值可以联合使用,如: type='commend image' 表示推荐的图片文档
[9] orderby='' 表示排序方式,默认值是 senddate 按发布时间排列。
§ orderby='hot' 或 orderby='click' 表示按点击数排列
§ orderby='pubdate' 按出版时间排列(即是前台允许更改的时间值)
§ orderby='sortrank' 按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性)
§ orderby='id' 按文章ID排序
§ orderby='postnum' 按文章评论次数排序
§ orderby='rand' 随机获得指定条件的文档列表
[10] orderway='' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序。
[11] keyword='' 表示含有指定关键字的文档列表,多个关键字用","分开
[12] channelid='' 表示特定的频道模型ID,内置的频道:专题(-1)、文章(1)、图集(2)、Flash(4)、软件(3)
[13] limit='起始,结束' 表示限定的记录范围,row属性必须等于"结束 - 起始",mysql的limit语句是由0起始的,如 limit 0,5表示的是取前五笔记录,limit 5,5表示由第五笔记录起,取下五笔记录,使用了本属性后,row属性将无效。
[14] att='数值' 表示自定义属性值
[15] subday='天数' 表示在多少天以内的文档,通常用于获取指定天数的热门文档、推荐文档、热门评论文档等
[16] partsort='排列位数' 表示自动获得父栏目的所有子数中排列在第几位的栏目ID,标记为 {dede:autolist}{/dede:autolist} 时,使用本属性才有效。

底层模板字段:
ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),writer,shorttitle,memberid
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
其中:
textlink = <a href='arcurl'>title</a>
typelink = <a href='typeurl'>typename</a>
imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>
image = <img src='picname' border='0' width='imgwidth' height='imgheight'>
字段调用方法:[field:varname/]
如:
{dede:arclist infolen='100'}
[field:textlink/]
<br>
[field:info/]
<br>
{/dede:arclist}
注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能
如: 给当天发布的内容加上 (new) 标志
[field:senddate runphp='yes']
$ntime = time();
$oneday = 3600 * 24;
if(($ntime - @me)<$oneday) @me = "<font color='red'>(new)</font>";
else @me = "";
[/field:senddate]

 

 

~~~~~~~~~~~~~~~~····~··````~~~~~~~~~~~~~~~~····~··````~~~~~~~~~~~~~~~~····~··````

~~~~~~~~~~~~~~~~····~··``

dedecms文档关键词维护问题的解决办法

 

文档关键词维护问题的解决办法!关于关键词内链的问题

之前出现过 会将所有关键词都加上 内链,并且不能设置非文档keyword 外的内链。

 

经过我的修改,已经实现 设置非文档keyword 外的内链,功能如下

1. 所有与文档关键词维护内的关键词匹配的地方都将添加成 内链。

除非 2 3 情况。

 

2.文档的标题不能包含此需要添加内链的 关键词,因为文档标题大多是文档内容,避免添加类似关键词。

 

3.文档内此关键词的出现次数超过5次就不会添加关键词,这个值可以调整,原因是出现过多会影响文档的可读性,并且内链过多也不是好事情。

 

3.相反,文档的keyword关键字包含的文档关键词维护的关键词将不会创建文档的内链。

ok 就这样了。

代码如下。

include/arc.archives.class  文件下的:ReplaceKeyword 函数。

 

将以下代码屏蔽:

 

foreach($myrow as $keyw)

        {

            //$k['keyword'] = trim($k['keyword']);

            if($k['keyword']!="")

            {

                //if($i > $maxkey)

                //{

                //    break;

                /

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

历史上的今天:03月28日

热门专题

昆明综合高中|昆明综合高中
昆明综合高中
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
云南高职单招|云南单招,云南单招网,云南高职单招网,云南高职单招,云南单招学校,云南单招培训
云南高职单招

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部