织梦源码常用标签、代码修改汇总1.0

    一、百度主动推送代码

    百度主动推送(实时)可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录,织梦程序我们可以在后台添加文档完成那一刻即时主动推送到百度或熊掌,也可以在后台文档列表里批量推送,给dedecms增加百度主动推送,其实只需要修改2个文件即可!

    分别是dede/article_add.php和dede/in/inc_archives_functions.php;

    ①、首先在inc_archives_functions.php文件*后添加一个百度主动推送的函数,代码如下:

    <?php
    function bdtuisong($url){
    global $cfg_basehost;
    $urls = array();
    $url=str_replace($cfg_basehost,'',$url);
    $urls[]=$cfg_basehost.$url;
    $api='修改成你自己的百度主动推送接口地址';
    $ch = curl_init();
    $options = array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode(" ", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
    );
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    echo $result;
    }

    ②、接着修改article_add.php文件,找到代码:$artUrl = MakeArt($arcID,true,true,$isremote); 在他下面加上 bdtuisong($artUrl); 即可!

    二、首页head之间被篡改加入异常代码解决办法

    有很多网友反映首页被篡改,登录服务器查看没有被上传异常文件,但是首页生成后,有一段异常且被加密过的代码。更换内核后,还是依然出现,通过研究发现,首页模板被加入了【自定义宏标记】内容,标签为:{dede:mytag typeid='0' name=''/} ,内容为一段异常代码。

    解决办法为:

    删除后台【自定义宏标记】系统文件5个即可。

    删除 dede/mytag_add.php 【自定义标记管理】

    删除 dede/mytag_edit.php 【自定义标记管理】

    删除 dede/mytag_main.php 【自定义标记管理】

    删除 dede/mytag_tag_guide.php 【自定义标记管理】

    删除 dede/mytag_tag_guide_ok.php 【自定义标记管理】

    建议:修改及删除系统文件之前,请做好安全及备份。

    三、织梦常用的标签大全

    1:基本的标题调用

    首页

    <TITLE>{dede:global.cfg_webname/}</TITLE>

    <meta name="keywords" content="{dede:global.cfg_keywords/}">

    <meta name="description" content="{dede:global.cfg_description/}">

    文章页

    {dede:field name="title"/} 这里文章页的标题,{dede:field.seotitle/}是栏目页,描述和KEY都是一样的写法。

    <TITLE>{dede:field.seotitle/}_{dede:global.cfg_webname/}</TITLE>

    <META content="{dede:field name='keywords'/}" name=keywords>

    <META content="{dede:field name='description' function='html2text(@me)'/}" name=description>

    2:导航调用

    {dede:channel row='9' type='top' }

    <LI><a href="[field:typelink/]" title="[field:typename function='substr(@me,0,8)'/]" >[field:typename function='substr(@me,0,8)'/]</a></LI>

    {/dede:channel}

    3:在首页调用某栏目的子栏目:

    这个标签一般是产品的分类用得到。

    {dede:channel type='sun' typeid='栏目ID'}

    <a href="[field:typelink/]">[field:typename/]</a>

    {/dede:channel}

    4:尾部信息:(全局通用标签)

    友情链接调用标签:

    {dede:flink row='24' linktype=2/}

    {dede:flink row='24' type='text' titlelen='26' linktype = '2'} <A>[field:link /]</A> {/dede:flink}

    网站版权调用标签:

    {dede:global name='cfg_powerby'/}

    网站备案调用标签:

    {dede:global name='cfg_beian'/}

    5:列表页用到的标签:

    列表文章调用标签:

    {dede:list pagesize='8'} {/dede:list}

    当前栏目名称标签:

    {dede:field name='typename'/}

    栏目介绍:

    {dede:field name='description' function='html2text(@me)'/}

    单页内容:{dede:field.content/}

    当前位置调用标签:

    {dede:field name='position'/}

    列表评论调用标签: [field:postnum/]

    列表时间调用标签: [field:pubdate function="GetDateTimeMK(@me)"/]

    列表分页调用标签: {dede:pagelist listsize='4' listitem='index pre pageno next end '/}

    列表标题:{dede:field.title/}-{dede:global.cfg_webname/}

    列表点击调用标签: [field:click/]

    列表评论调用标签: [field:postnum/]

    列表栏目调用:[<a href='[field:typeurl/]'>[field:typename/]</a>]

    列表栏目调用TAG:{dede:tag row='80' getall='1' sort='month'}<a href='[field:link/]' target=_blank class="tag">[field:tag /]</a>{/dede:tag}

    6:文章页:

    文章标题调用标签: {dede:field name="title"/}

    作者链接调用标签: {dede:field name='writer' /}

    文章来源调用标签: {dede:field name='source'/}

    文章时间调用标签:{dede:field name='pubdate' function='GetDateMk(@me)'/}

    文章Tag调用标签: {dede:tag type='current'/}

    文章内容标签:{dede:field name='body'/}

    文章摘要:{dede:field.description /}

    文章页缩略图:{dede:field name="litpic"/}

    四、织梦不能自动提取缩略图解决方法:

    方法一:

    各种改法,各种尝试,后来其实只要改一句代码就可以了

    可能是因为服务器上禁用了fsockopen() 函数造成的,在用fsockopen()的地方用 stream_socket_client()代替就可以了。

    具体修改地方是 /include/dedehttpdown.class.php 第507行

    $this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $errstr,10);

    替换为:$this->m_fp = @stream_socket_client($this->m_host . &lsquo;:&rsquo; . $this->m_port, $errno, $errstr,10);

    方法二:

    请修改 /include/c.php 第45行,imtypes=array改成imgtypes = array【你会发现少了个&ldquo;g&rdquo;】

    织梦源码常用标签、代码修改汇总2.0

    五、如何让织梦搜索结果显示完整标题?

    导致搜索结果显示不完整,其实是由一个titlelen=''控制的,只要我们在模板页里修改这个标签就右以达到目的。

    解决方法:

    1.在 empletsdefaultsearch.htm找到{dede:list perpage='20' titlelen='30}

    2.改成{dede:list perpage='20' titlelen='100'}

    问题解决。

    六、织梦远程图片本地化https链接图片无法本地化怎么解决?

    *近有朋友遇到发布文章时候文章里面带https的站外图片无法本地化,以下是解决办法:

    找到 dede//inc/inc_archives_functions.php文件里面GetCurContent($body)这个函数,里面

    preg_match_all("/src=["|'|s]{0,}(http://([^>]*).(gif|jpg|png))/isU",$body,$img_array);

    $img_array = array_unique($img_array[1]);

    这一段改为:

    preg_match_all("/src=["|'|s]{0,}(http://([^>]*).(gif|jpg|png))/isU",$body,$img_array);

    preg_match_all("/src=["|'|s]{0,}(https://([^>]*).(gif|jpg|png))/isU",$body,$img_array_https);

    $img_array = array_unique($img_array[1]);

    $img_array_https = array_unique($img_array_https[1]);

    $img_array=array_merge_recursive($img_array,$img_array_https);

    第二步:

    if(!preg_match("#^http://#i", $value))

    {

    continue;

    }

    这一段改为:

    if(!preg_match("#^http://#i", $value)&&!preg_match("#^https://#i", $value))

    {

    continue;

    }

    搞定,这样发文章就可以把https的远程图片也本地化了。

    七、织梦文章模板中相关文章调用标签代码:

    织梦默认模板里面没有相关文章的调用标签,但是我们通过下面的标签可以调用全站的相关文章,文章页内显示相关文章内容,不仅可以提高关键词密度,还有利于网站优化,降低跳出率,织梦相关文章的调用标签代码如下:

    <ul>

    {dede:likearticle row='10'}

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

    {/dede:likearticle}

    </ul>

    将上面的代码放到文章内容页模板即可,这里的CSS样式自己写。