php个人工作经验以及生活体会博客 php工作,生活

19十二/1111

在dede文章中添加随机带链接关键词

在seo中需要对文章做一些特殊的改动来加强文章的收录和质量。
今天我要在在dede文章的最后一段(也可以是随机的)加上带有链接的关键词。
具体做法是:
首先,在根目录下找到include/common.func.php文件,添加个关键的函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function into_key($actile){
    $keyword=array("扎金花","炸金花","诈金花","扎金花游戏大厅","同城游戏大厅下载","梭哈","梭哈游戏","梭哈游戏下载","58w同城游");//设置关键字
    $keyword="&nbsp;&nbsp;<a href='http://www.58w.cn/'>".$keyword[mt_rand(1,count($keyword)-1)]."</a>";//设置链接
    $str=substr($actile,strlen('<p>')+1,strlen($str)-strlen('</p>')-2);
    $arr=explode('<p>',$str);
    //if(strstr($actile,'<strong>友情链接:'))$isb=1;
    //else $isb=0;$knum='';
    foreach ($arr as $k => $v){
        if(strstr($v,'</p>'))$arr[$k]=substr($v,0,strlen($v)-strlen('</p>')-2);
        //if(strstr($v,'<strong>友情链接:'))$knum=$k;
    }
    //if($isb==1&&!empty($knum))$key=$knum-1;
    $key=count($arr)-1;
    $arr[$key]=$arr[$key].$keyword;
    foreach ($arr as $k => $v){
        $arr[$k]='<p>'.$arr[$k].'</p>';
    }
    $str=implode('',$arr);
    return $str;
}

然后,在模板文件里把内容标签替换成串代码就ok了

1
 {dede:field name='id' function='into_key(@me)'/}

如此,你以后添加的文章的最后一段都含有带链接的关键字了。
照搬这种形式,还可以在任意段落添加上相关栏目的文章等信息,使你的文章能更好的收录
例:http://www.58w.cn/a/xinwen/kexue/18247.html

14十二/1123

dede文章页面中调用tags标签

要在织梦(dede)文章页面中调用tags标签,其实用它自带的{dede:field.tags/}标签就可以调出来,不过这个标签没有超链接,是单纯的文字,如果要得到带链接的tags标签就要对他就行二次开发了

在网站根目录下载找到这个文件:\include\helpers\archive.helper.php

在第120行有个GetTags()函数,我们只需要对它进行更改就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if ( ! function_exists('GetTags'))
{
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "SELECT tag FROM `#@__taglist` WHERE aid='$aid' ";
$dsql-&gt;Execute('tag',$query);
while($row = $dsql-&gt;GetArray('tag'))
{
$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
}
return $tags;
}
}

将此函数用我们下面这个修改过的函数替换掉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ( ! function_exists('GetTags'))
{
    function GetTags($aid)
    {
        global $dsql;
        $tags = '';
        $query = "SELECT tag FROM `#@__taglist` WHERE aid='$aid' ";
        $dsql->Execute('tag',$query);
        while($row = $dsql->GetArray('tag'))
        {
           // $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
          $tags .= "&nbsp;<a href=http://www.58w.cn/tags.php?/".$row['tag']."/>".$row['tag']."</a>";
        }
        return $tags;
    }
}

这样,再次使用{dede:field.tags/}标签,就可以得到带超链接的tags了
/*这里要纠正一下错误*/
在实际操作中才发现,这样做后再后台管理看到tags也变成了带超链接的了,这样不方便以后tags的管理,也容易混淆,但是稍加更改就可以解决这个问题了,
首先(先将之前的还原)在include\common.func.php文件中添加如下函数:

1
2
3
4
5
6
7
8
9
/*返回带超链接的tags*/
function changetags($tags){
    $tagsarr=explode(',',$tags);
    $tagsarr=array_remove_empty($tagsarr);
    foreach ($tagsarr as $k => $v){
        $tagstr .= "&nbsp;<a href=http://www.58w.cn/tags.php?/".$v."/>".$v."</a>";
    }  
    return $tagstr;
}

在模板页面中使用tags标签的地方变成这样,功能就好使了

1
{dede:field.tags function="changetags(@me)"/}