Loading... WordPress 这款CMS为了防范SQL注入、XSS等网络安全防范,当用户保存文章内容的同时,会对文章内容进行自动过滤,所以当我插入magnet和ed2k链接的时候就被自动删除掉了,解决这个问题也很简单,我们修改WordPress目录中“wp-includes/post.php”,将相关内容注释掉就行了,但别着急修改,先往下看看再决定。 **复制 ``` //$postarr = sanitize_post($postarr, 'db'); ``` 而此时如同“我家大门常打开,开放怀抱等你”,WordPress自身的安全措施消失了,所以我找到了其他解决方法。 如果你熟悉WordPress的话,肯定对“ wp-includes/functions.php”这个目录并不陌生,而WordPress又列出了可以使用函数“wp_allowed_protocols()”检索的良好协议,我们在这个页面中添加新协议支持就可以了,先来看看原本的页面。 **复制 ``` if( empty( $protocols )){ $protocols = array('http','https','ftp','ftps','mailto','news','irc','gopher','nntp','feed', 'telnet','mms','rtsp','sms','svn','tel','fax','xmpp','webcal','urn'); } ``` 在这段代码尾部’urn’ 添加增加需要添加的新协议,比如我需要“magnet和ed2k”这两个协议的支持(尽量多看两眼逗号分号,避免输入错误)。 **复制 ``` if( empty( $protocols )){ $protocols = array('http','https','ftp','ftps','mailto','news','irc','gopher','nntp','feed', 'telnet','mms','rtsp','sms','svn','tel','fax','xmpp','webcal','urn','magnet','ed2k'); } ``` 我们想要的效果也实现了,不过现在出现了新的问题,我们修改的是WordPress 这个程序所以当每次进行版本升级的同时,“functions.php”这个文件都会被覆盖,所以当升级的时候我们必须要再次手动修改这个文件。 **复制 ``` <?php function ss_allow_magnet_protocol( $protocols ){ $protocols[]='magnet'; return $protocols; } function ss_allow_ed2k_protocol( $protocols ){ $protocols[]='ed2k'; return $protocols; } add_filter('kses_allowed_protocols','ss_allow_magnet_protocol'); add_filter('kses_allowed_protocols','ss_allow_ed2k_protocol'); ``` 上面这个解决方案就比较适合我们了,我们既然知道了WordPress中有“functions.php”,那么主题目录中肯定也是有这个目录存在的,毕竟我们修改或升级主题的频率又比较小,所以我们修改“wp-content/themes/你的主题名称/functions.php”这个页面对其增加新协议支持就可以了。 最后修改:2025 年 10 月 14 日 © 允许规范转载 打赏 赞赏作者 微信 赞 0 如果觉得我的文章对你有用,请随意赞赏
此处评论已关闭