导读页如何获取SEO设置keywords和description?
我发现所有DZ默认模板,导读页面都没有自动获取后台SEO设置好keywords和description就比如官方这个社区:https://www.dismall.com/forum.php?mod=guide&view=newthread
一样是调用\template\default\common\header_common.htm的文件。
可为什么不按照{if !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if} 自动调用页面关键词这些呢?
请问,如何让导读页面www.xxx.com/forum.php?mod=guide&view=newthread 跟社区首页一样,自动获取页面关键词和描述?
(后台-全局-SEO-社区,就是这里设置,导读页面没有自动获取) 要让导读页面(如 `forum.php?mod=guide&view=newthread`)自动获取后台SEO设置的关键词(keywords)和描述(description),你需要对模板文件进行一些修改。默认情况下,Discuz! 的导读页面并没有直接调用后台SEO设置的关键词和描述,因此需要手动添加这些逻辑。
### 解决方案:
1. **修改模板文件**:
你需要编辑导读页面的模板文件,通常是 `template/default/forum/guide.htm` 或 `template/default/forum/guide_newthread.htm`(具体文件名取决于你使用的模板)。
2. **添加SEO设置调用代码**:
在模板文件的 `<head>` 部分,添加以下代码来调用后台SEO设置的关键词和描述:
<meta name="keywords" content="{if !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if}" />
<meta name="description" content="{if !empty($metadescription)}{echo dhtmlspecialchars($metadescription)}{/if}" />
3. **确保变量传递**:
确保在 `guide.php` 或相关的控制器文件中,`$metakeywords` 和 `$metadescription` 变量已经被正确传递到模板中。如果没有,你需要在控制器文件中添加以下代码:
$metakeywords = $_G['setting']['seo']['guide']['keywords'];
$metadescription = $_G['setting']['seo']['guide']['description'];
然后将这些变量传递给模板:
include template('forum/guide');
4. **检查SEO设置**:
确保在后台的SEO设置中,已经为“导读”页面设置了关键词和描述。路径为:`后台 -> 全局 -> SEO设置 -> 社区`。
### 示例代码:
假设你使用的是默认模板,以下是一个简单的示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{$navtitle}</title>
<meta name="keywords" content="{if !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if}" />
<meta name="description" content="{if !empty($metadescription)}{echo dhtmlspecialchars($metadescription)}{/if}" />
<!-- 其他头部内容 -->
</head>
<body>
<!-- 页面内容 -->
</body>
</html>
### 注意事项:
- 如果你使用的是自定义模板,请确保在自定义模板中也进行了相应的修改。
- 修改模板文件前,建议备份原始文件,以防止出现意外情况。
- 如果你对Discuz!的模板机制不熟悉,建议先阅读Discuz!的模板开发手册,了解模板变量的传递和使用。
通过以上步骤,你应该能够让导读页面自动获取后台SEO设置的关键词和描述。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 要让导读页面(如 `forum.php?mod=guide&view=newthread`)自动获取后台SEO设置的关键词(keywords)和描述(description),你需要对模板文件进行一些修改。默认情况下,Discuz! 的导读页面可能没有直接调用这些SEO设置,因此需要手动添加。
### 解决方案:
1. **找到并编辑模板文件**:
你需要编辑导读页面的模板文件。通常情况下,导读页面的模板文件位于 `template/default/forum/guide.htm` 或 `template/default/forum/guide_newthread.htm` 中。
2. **添加SEO设置调用代码**:
在模板文件的 `<head>` 部分,添加以下代码来调用后台设置的SEO关键词和描述:
<meta name="keywords" content="{if !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if}" />
<meta name="description" content="{if !empty($metadescription)}{echo dhtmlspecialchars($metadescription)}{/if}" />
这段代码会检查是否有设置的关键词和描述,如果有,则输出它们。
3. **确保变量传递**:
确保在控制器或模块中,`$metakeywords` 和 `$metadescription` 变量已经被正确传递到模板中。如果没有,你可能需要在 `source/module/forum/forum_guide.php` 文件中添加以下代码:
$metakeywords = $_G['setting']['seo']['keywords'];
$metadescription = $_G['setting']['seo']['description'];
这样,模板文件就可以正确获取到这些变量。
4. **清除缓存**:
修改完成后,记得在Discuz!后台清除缓存,以确保修改生效。
### 示例代码:
假设你正在编辑 `template/default/forum/guide_newthread.htm` 文件,你可以在 `<head>` 部分添加以下代码:
<head>
<!-- 其他 head 部分的内容 -->
<meta name="keywords" content="{if !empty($metakeywords)}{echo dhtmlspecialchars($metakeywords)}{/if}" />
<meta name="description" content="{if !empty($metadescription)}{echo dhtmlspecialchars($metadescription)}{/if}" />
<!-- 其他 head 部分的内容 -->
</head>
### 总结:
通过以上步骤,你可以让导读页面自动获取后台SEO设置的关键词和描述。如果你对模板文件不熟悉,建议在修改前备份相关文件,以免出现意外问题。如果你有更多关于Discuz!开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]