乖兔博客

乖兔 > CMS系统 > 织梦cms实现pc站和手机站同一url不变,显示不同模板和内容适配

织梦cms实现pc站和手机站同一url不变,显示不同模板和内容适配

乖兔 更新于: 2020-12-09 分类:CMS系统

织梦cms实现手机站自动内容适配的方法.jpg

很多网站都已经实现了在url不变的情况下实现对于浏览设备因pc和移动端的不同而输出不同的内容,称之为内容适配。这样只需要给移动端手机站单独设计一套模板,而无需重设计url和系统,非常方面。这样处理之后。就不需要再去做一套手机站了。

首先,把网站设置为全站伪静态

可以使用:织梦cms整站动静态一键开启关闭插件。或者使用你自己的方法,只要可以实现pc站为动态或伪静态访问就可以。

织梦cms实现pc站和手机站同一url不变,显示不同模板和内容适配的系统文件修改:

打开 /include/extend.func.php 在最下面加入一个方法

/**
 * 判断是否为移动设备访问
 * @return bool
 */function isMobile(){    if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {        return true;
    }    if (isset($_SERVER['HTTP_VIA'])) {        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    }    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array('nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-', 'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 'operamobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile');        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {            return true;
        }
    }    if (isset($_SERVER['HTTP_ACCEPT'])) {        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'textml') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'textml')))) {            return true;
        }
    }    return false;
}

打开 /index.php 网站根目录的 index.php ,找到

$row['templet'] = MfTemplet($row['templet']);

在其上面插入

if(isMobile()){
	$row['templet'] =str_replace('.htm','_m.htm',$row['templet']);
}

打开 /tags.php 网站根目录的 tags.php ,找到

require_once (dirname(__FILE__) . "/include/common.inc.php");

在其下面插入

if(isMobile()){
	define('DEDEMOB', 'Y');
}

打开 /plus/list.php 找到

require_once(dirname(__FILE__)."/../include/common.inc.php");

在其下面插入

if(isMobile()){
	define('DEDEMOB', 'Y');
}

打开 /plus/view.php 找到

require_once(dirname(__FILE__)."/../include/common.inc.php");

在其下面插入

if(isMobile()){
	define('DEDEMOB', 'Y');
}

打开 /plus/search.php 找到

require_once(dirname(__FILE__)."/../include/common.inc.php");

在其下面插入

if(isMobile()){
	define('DEDEMOB', 'Y');
}

这样就修改完成了,如果你的电脑站模板里有跳转到手机站的跳转代码,记得删除所有跳转代码。

电脑站模板文件和手机站模板文件还是按原来的命名,pc站为正常文件名,手机站模板为正常文件名加后缀_m,如index_m.htm。

dedecms移动内容适配模板设置.png

另外,注意手机站模板的css js images 图片这些的调用,防止在移动设备上打开网站时找不到这些文件。

打赏