WordPressのメディアライブラリでアップロードした画像の保存場所は何処?
① Wordpressのメディアライブライでアップロードした画像はどこに保存されているのか?
確認するには、ブラウザで表示された画像の上で右クリックし、ソースを表示します。
すると、デフォルトでは「http://ドメイン名/(インストールディレクトリ)/wp-content/uploads/yyyy/mm/○○.jpg」となっているはずです。
※インストールディレクトリはある場合とない場合があります。手動でWordpressをインストールしたか、契約サーバー会社のワンクリックインストール機能などでインストールしたかなどで変わってきます。
FTPソフトで辿れば、[wp-content]→[uploads]→[2017]→[09]→○○.jpg(2017年9月にアップロードした場合)に保存されています。
② 自分で作ったフォルダの中に保存した場合の場所
例えば、Wordpressの管理画面のメディアライブラリでアップロードするのではなく、
自分で使用しているテーマの中に例えば[images]という名前のフォルダを作りその場所に画像やpdfファイルを保存する場合もあると思います。
FTPで辿ると、[wp-content]→[themes]→[テーマ名]→[images]→●●.pdf
画像等を表示するだけであれば、Wordpressの管理画面上で全部操作が済むので、コードでパスを書く必要がないですが、
例えば、文字にリンクを貼って画像を表示させたとか、文字にリンクを貼ってpdfファイルを表示させたい場合はコードでパスを書くことになると思います。
①と②の2パターンの保存場所をあげましたが、リンクを貼って表示させるにはそれぞれ次のようになります。
①<a href=”http://ドメイン名/(インストールディレクトリ)/wp-content/uploads/2017/09/〇〇.jpg”>リンクさせるテキスト文字</a>
②<a href=”http://ドメイン名/(インストールディレクトリ)/wp-content/themes/使用しているテーマのフォルダ名/images/●●.pdf”>リンクさせるテキスト文字</a>
では次に長いパス(絶対パス)を書かなくてはいけないのか?相対パスで書けないのか?
wordpressのタグ<?php bloginfo(‘template_url’); ?>でサイトのURLを引っ張てこれるなら相対パスでよさそうです。
<img src=”<?php bloginfo(‘template_url’); ?>/images/●●.pdf” />
結論から言うと、WordPressのダッシュボード(管理画面)では、Wordpressのテンプレートタグが使えないので、例えば<?php bloginfo(‘template_url’); ?>(サイトのURLを引っ張てくるWordpressのタグ)は使えません。
ダッシュボードから作成・編集するページで、Wordpressのタグ(php言語)が利用できないのには理由があります。
php言語のようなサーバー内で動作するプログラムを管理画面で使えると、不正アクセスや改ざんに使えてしまうので、それを防ぐ為にそうなっています。
また生成するページや、生成していく画像に対しては相対リンクが使えないようです。
補足として、ダッシュボードから生成するページ(新規投稿ページや、新規に作る固定ページ)ではタグが使えませんが、ダッシュボードから編集するのでなく、例えば、header.phpやpage.php、front-page.phpなどのテンプレートページから、例えば作成したimagesフォルダの中に保存してあるファイルには相対パスで指定できます。
<img src=”<?php bloginfo(‘template_url’); ?>/images/〇〇.jpg” />
<img src=”<?php echo get_stylesheet_directory_uri(); ?>/images/〇〇.jpg” /> ※style.css(スタイルシートは必ずテーマフォルダのディレクトリに置く決まりがあるので、テーマのパスと同じ位置を示す
<img src=”<?php echo get_template_directory_uri(); ?>/images/〇〇.jpg/>
のように指定できます。