私はattachment.phpがこのようにあります。
<?php
if ( $attachments = get_children( array(
'post_type' => 'attachment',
'post_mime_type'=>'image',
'numberposts' => 1,
'post_status' => null,
'post_parent' => $post->ID
)));
foreach ($attachments as $attachment) {
echo wp_get_attachment_link( $attachment->ID, '' , false, true, 'Download This Wallpaper');
}
?>
このコードは添付リンクを印刷します。
私の質問は:このリンクをクリックして画像をダウンロードし、コンピュータユーザーに保存する方法は?
それはプラグインを使うことで可能です:
http://wordpress.org/extend/plugins/download-shortcode/ /
私は私のウェブサイトで同じ機能性を使用しているので私はあなたを助けるためにここにいます(ポスト添付の強制ダウンロード)
これはWP固有のものではありませんが、以下のようにforce)イメージをダウンロードすることができます。
if ( $attachments = get_posts( array(
'post_type' => 'attachment',
'post_mime_type'=>'image',
'numberposts' => -1,
'post_status' => 'any',
'post_parent' => $post->ID,
) ) );
foreach ( $attachments as $attachment ) {
echo '<a href="javascript:void(0);"
onclick="document.execCommand(\'SaveAs\', true, \'' . get_permalink( $attachment->ID ) . '\');">
Download This Wallpaper</a>';
}
注 :コードはテストされていません。
テーマに以下をimage.php
として保存します。
<?php
// This forces all image attachments to be downloaded instead of displayed on the browser.
// For it to work, this file needs to be called "image.php".
// For more info, refer to the wp hierarchy diagram.
// Get the path on disk. See https://wordpress.stackexchange.com/a/20087/22510
global $wp_query;
$file = get_attached_file($wp_query->post->ID);
// Force the browser to download. Source: https://wpquestions.com/7521
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: public'); //for i.e.
header('Pragma: public');
// ob_clean(); // Looks like we don't need this
flush();
readfile($file);
exit;