我在我的WordPress 4.9网站上使用wpForo插件(用于论坛)。当有人上传图片时,它会默认显示附件的链接。以下代码由插件制作者提供,它应该将附件链接转换为实际图像:
add_filter('wpforo_content_filter', 'wpforo_default_attachment_image_embed', 11);
function wpforo_default_attachment_image_embed( $content ){
if( preg_match_all('|<a class=\"wpforo\-default\-attachment\" href\=\"([^\"\']+)\"[^><]*>.+?<\/a>|is', $content, $data, PREG_SET_ORDER) ){
foreach($data as $array){
if(isset($array[1])){
$file = $array[1];
$e = strtolower(substr(strrchr($file, '.'), 1));
if( $e == 'jpg' || $e == 'jpeg' || $e == 'png' || $e == 'gif' ){
$filename = basename($file);
$html = '<a class="wpforo-default-image-attachment" href="' . esc_url($file) . '" target="_blank"><img src="' . esc_url($file) . '" alt="' . esc_attr($filename) . '" title="' . esc_attr($filename) . '" /></a>';
$content = str_replace($array[0], $html, $content);
}
}
}
}
return $content;
}
你能看到代码有什么问题吗? WordPress不会将代码保存在我的functions.php文件(子主题或父主题)中,通过FTP添加代码会使站点崩溃,当我尝试将代码放入使用第三方PHP插件时,它说代码会导致致命的错误。
我也联系了我的主题支持,他们告诉我它与代码或插件有关,与主题无关。
开发人员告诉我这些代码适用于其他几十个人,但我不确定WordPress 4.9上是否还有其他人尝试过它,如果这可能导致问题。
非常感谢任何帮助 - 谢谢!