织梦Dedecms自带手机端网站搜索页为何会直接跳转到search?

织梦dedecms默认的手机端网站搜索页会跳转到主站的search页面。

织梦DedeCMS自带手机端网站搜索页默认是直接跳转到PC站的搜索页面,这对于移动端用户体验来说并不友好,为了实现手机站搜索跳转到手机站搜索页面,可以通过以下两种主要方法来实现:

织梦Dedecms自带手机端网站搜索页为何会直接跳转到search?

一、修改PHP文件

1. 第一种方法:通过添加隐藏输入框

这种方法相对简单,只需要修改一个PHP文件即可,具体步骤如下:

找到并编辑/plus/search.php 文件

打开/plus/search.php 文件,搜索如下代码(大约在20行左右):

        $mid = (isset($mid) && is_numeric($mid)) ? $mid : 0;

在这段代码的下面添加以下代码:

        $mobile = (isset($mobile) && is_numeric($mobile)) ? $mobile : 0;
        if ($mobile == 1) {
            define('DEDEMOB', 'Y');
        }

然后保存文件。

在前端模板中添加隐藏输入框

找到搜索页的HTML代码部分,通常是在模板文件中,在<form> 标签内添加一个隐藏的input字段,name为mobile,value值为1:

        <input type="hidden" name="mobile" value="1" />

完整的表单代码示例如下:

        <form role="search" action="{dede:global.cfg_cmsurl}/plus/search.php" method="get">
          <input type="hidden" name="kwtype" value="0" />
          <input type="hidden" name="mobile" value="1" />
          <input class="txt fl" type="text" name="q" value="请输入关键字" onfocus="if(this.value==defaultValue)this.value=''" onblur="if(this.value=='')this.value=defaultValue">
          <input class="btn fl icon" type="submit" value="搜索" name="submit">
        </form>

这样设置后,当用户在手机端访问搜索页面时,会将mobile 参数设置为1,从而定义DEDEMOB 常量为Y,实现跳转到手机站的搜索页面。

2. 第二种方法:***并修改PHP文件

这种方法稍微复杂一些,需要***并修改两个PHP文件,具体步骤如下:

***并命名新的PHP文件

/plus/search.php 文件***一份,重命名为search_m.php,并将其放在plus 目录下。

include/arc.searchview.class.php 文件***一份,重命名为arc.searchview.class_m.php,并将其放在include 目录下。

织梦Dedecms自带手机端网站搜索页为何会直接跳转到search?

修改search_m.php 文件

打开search_m.php 文件,找到第13行:

        require_once(DEDEINC."/arc.searchview.class.php");

将其修改为:

        require_once(DEDEINC."/arc.searchview.class_m.php");

然后保存文件。

修改arc.searchview.class_m.php 文件

打开arc.searchview.class_m.php 文件,找到第131行:

        $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'] . "/".$GLOBALS['cfg_df_style']."/search.htm";

将其修改为:

        $tempfile = $GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'] . "/".$GLOBALS['cfg_df_style']."/search_m.htm";

然后保存文件。

创建或修改搜索模板文件

确保在模板文件夹中存在search_m.htm 文件,如果不存在,可以***search.htm 文件,然后重命名为search_m.htm,并根据需要进行修改。

二、使用JS跳转适配

除了上述PHP层面的修改外,还可以考虑使用JavaScript来实现移动端和PC端的适配跳转,这种方法在某些情况下可能更加灵活,但需要更多的代码编写和测试。

基本思路

检测用户设备类型(如手机、平板等)。

根据设备类型动态调整页面URL或执行跳转逻辑。

三、常见问题及解决方法

Q1:如何在织梦Dedecms中实现手机站搜索结果分页?

织梦Dedecms自带手机端网站搜索页为何会直接跳转到search?

A1:在织梦Dedecms中实现手机站搜索结果分页,通常需要结合模板文件和PHP代码进行修改,以下是一个简单的实现步骤:

1、确保你的模板文件中已经包含了分页的代码片段,这通常位于搜索结果列表的下方或特定位置。

2、打开你的搜索模板文件(如search_m.htm),查找分页代码区域。

3、确保分页代码中的链接指向正确的移动版搜索结果页,并且包含必要的查询参数(如关键词、当前页码等)。

4、如果分页功能未按预期工作,请检查PHP代码中处理分页的逻辑是否正确,并确保模板中的分页变量(如page)被正确传递和使用。

5、保存修改后的模板文件,并清空缓存以查看效果。

6、如果仍然有问题,可以尝试查看织梦Dedecms的官方文档或社区论坛,寻找更具体的解决方案或插件支持。

Q2:为什么修改了之后手机端搜索还是跳转到PC端?

A2:如果在修改了织梦Dedecms配置后,手机端搜索仍然跳转到PC端,可能是由于以下几个原因造成的:

1、缓存问题:织梦Dedecms可能有缓存机制,导致修改后的配置没有立即生效,尝试清空浏览器缓存和织梦后台缓存,然后重新访问手机端搜索页面。

2、配置错误:检查你的修改是否正确无误,特别是涉及文件路径、变量名和逻辑判断的部分,确保没有拼写错误或遗漏关键步骤。

3、模板问题:确认你正在使用的是正确的手机端模板(如search_m.htm),并且该模板已经被正确引用和加载,模板文件的选择或加载顺序可能会导致问题。

4、插件或自定义代码冲突:如果你安装了其他插件或进行了自定义代码开发,这些可能会与你的修改产生冲突,尝试禁用其他插件或暂时移除自定义代码,以排除干扰因素。

5、服务器配置问题:在某些情况下,服务器配置也可能影响页面的跳转行为,检查服务器的配置文件(如.htaccess或Nginx配置),确保没有规则限制或重定向到PC端。