使用第三方接口或文章采集器发布数据到Discuz论坛帖子,发现排版变了或者发布失败提示不符合规范。
这是因为Discuz论坛帖子默认不支持html代码和特殊字符,使用自带的bbcode语言代码导致的。
文章发布时,Discuz系统会自动将数据中的HTML标签转换为Discuz支持的bbcode标签。由于bbcode标签支持的格式较少,部分HTML标签没有对应的bbcode标签,会被直接转换为纯文本,就没有了排版。
如果要开启允许数据中使用HTML代码和特殊字符( `", >, <, \', (, )` ) ,需要修改discuz配置的安全检查代码,修改前请考虑对应的安全问题,再决定是否修改。
目录
1. 修改网站config_global.php文件
先修改Discuz站点的配置文件config/config_global.php,把安全检查禁用,修改前建议备份。
可以将config_global.php文件下载到本地,修改后再ftp回传覆盖,或者如果是宝塔面板的,可以直接编辑修改,保存时注意不要修改字符编码格式。
搜索定位到以下代码处
//------------------------- CONFIG SECURITY -------------------------- //
$_config['security']['authkey'] = 'bdd352cVCQc2inkj';
$_config['security']['urlxssdefend'] = 1;
$_config['security']['attackevasive'] = '0';
$_config['security']['querysafe']['status'] = 1;
$_config['security']['urlxssdefend'] = 1;
修改为
$_config['security']['urlxssdefend'] = 0;
即数字1改为0
2. Discuz允许使用HTML代码
在Discuz论坛系统后台,选择【论坛】栏目页==》点击对应版块的编辑按钮 ==》再点击【帖子选项】 ==》 找到【允许使用HTML代码】选择是,记得保存;
3. 第三方接口或采集器端对接
第三方接口或采集器端对接设置也可能需要修改,才能保证传输的数据是html代码格式。
例如在简数采集器的对接目标映射中,【允许HTML代码】勾选为 允许 即可。
再发布数据到Discuz论坛帖子,就能以原来的html代码格式显示了,排版也正常了。