小猪建站
位置:首页 > 网站教程 > 迅睿CMS > 内容

xunruiCMS一套模板SEO原创的方法

2025-07-25
0

代码如下


\Phpcmf\Hooks::app_on('appname', 'cms_view', function($data, $file) {
   if (IS_ADMIN ) {
        return; // 后台跳过
    } elseif(IS_MEMBER) {
         return; // 用户中心跳过    
    } elseif (IS_API) {
         return; // api跳过
    }else{
        ob_start();
    }
});
\Phpcmf\Hooks::app_on('appname', 'cms_view_end', function() {
    
    if (IS_ADMIN ) {
        return; // 后台跳过
    } elseif(IS_MEMBER) {
         return; // 用户中心跳过    
    } elseif (IS_API) {
         return; // api跳过
    }else{
        $domain = $_SERVER['HTTP_HOST'];
         
        list($qian,$er)=explode(".",$domain);
        
  
     $html = ob_get_clean();//
     echo addClassToBodyTags($html, $qian);
    }
});
function addClassToBodyTags($html, $className) {
    // 创建DOMDocument实例
    $dom = new DOMDocument();
    
    // 防止编码问题
    @$dom->loadHTML('<?xml encoding="UTF-8">' . $html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    
    // 查找body元素
    $body = $dom->getElementsByTagName('body')->item(0);
    
    // 如果没有找到body元素,直接返回原HTML
    if (!$body) {
        return $html;
    }
    
    // 获取body内的所有子元素
    $xpath = new DOMXPath($dom);
    $elements = $xpath->query('//body//*');
    $newclass=$className;
    // 遍历所有元素
    foreach ($elements as $element) {
        // 获取现有class列表
        $existingClasses = explode(' ', $element->getAttribute('class'));
        $className=$newclass.mt_rand(1,5000);
        // 检查是否已存在目标class
        if (!in_array($className, $existingClasses)) {
            // 添加新class(过滤空字符串)
            $classes = array_filter(array_merge($existingClasses, [$className]));
            $element->setAttribute('class', implode(' ', $classes));
        }
    }
    
    // 保存修改后的HTML
    $html = '';
    foreach ($dom->childNodes as $node) {
        $html .= $dom->saveHTML($node);
    }
    
    // 移除编码声明
    return str_replace('<?xml encoding="UTF-8">', '', $html);
}

TAGS: