米洛让我走上了正确的轨道。如果其他人碰巧有此问题,我使用的代码是:
/**
* Redirect broken attachment links to 404
*/
function ww_404_broken_links(){
global $wp_query;
if(is_attachment()){
$attachment_path = get_attached_file( get_the_ID() );
//If the file doesn\'t exist on the server show 404
if(!file_exists($attachment_path)){
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
}
}
add_action(\'template_redirect\', \'ww_404_broken_links\');
我还在old files目录中添加了一个htaccess文件,其中只包含:
RewriteEngine off
因此,如果文件丢失,那么附件帖子和文件404的直接链接都会丢失。