对于图像附件,可以尝试以下示例:
add_action( \'init\', function()
{
add_rewrite_endpoint( \'download\', EP_ROOT );
add_action( \'template_redirect\', function()
{
if ( $pid = get_query_var( \'download\' ) )
{
$found = false;
if( $file = wp_get_attachment_image_src( absint( $pid ), \'full\' ) )
{
$found = true;
header( "Content-Disposition: attachment; filename=" . basename( $file[0] ) );
readfile( $file[0] );
exit();
}
if( ! $found )
wp_die( __( \'Image file not found!\' ) );
}
} );
} );
您可能需要根据需要调整标题。
重新生成重写规则,然后您应该能够从以下位置下载图像附件:
http://example.tld/download/123/
与这个简单的演示相比,这里有更好的脚本,但它似乎可以在我的安装中使用。例如签出
this blog, 它似乎对如何处理大型文件有一些有趣的想法。
希望您可以根据自己的需要进行修改。