まず、wordpressの基本的な機能では無理でしょう。
で、いろいろ検討することになりますが、
例えば、プラグインのようなもので実現したとしたら、
その方法で絶対に写真をみられることはないでしょうか?
という部分が相当ネックになります。
インターネット上に画像をアップロードする以上、絶対はありえないと考えた方が良いでしょう。
可能性としては、他のサービス(Yahooとか)の画像保存サービスを利用し、公開設定を非公開にするとか、画像のフォルダをbasic認証にするとか考えられますが、いずれにしてもパスワードなどが流出すれば絶対はありえません。
ただ、上記のような方法を取ったとしても、他のサービスを利用したとすればリンクだけの記述になりブログ上に画像を掲載すると言う方法とは若干違う気がしますし、basic認証などを使用した場合だとしても記事ごとに公開・非公開を選択するのはほぼ無理(記事そのものがDBにあるため)だと考えます。ブログごとbasic認証などの方法が現実的かと。
上記を勘案して検討すると、例えば、非公開のブログと公開のブログを別々にインストールし、非公開のブログはブログごとbasic認証などで保護する、などの方法が思いつきますが、別々にインストールする以上アドレスもログインも別々になるので手間だけが増えますね(汗)
いっそのこと非公開にしたいブログはご自身が信用できる大手のサービスに依存したほうが楽だと思いますよ。mixiで投稿画像や日記を非公開や友人まで公開に設定するとか…
どうしてもひとつのブログにまとめたい理由がなにかおありですか?
ブログごと非公開、記事によって非公開
ではなく、あくまで公開したくない写真だけ非公開にしたい
ということです
ブログは自分的日記のような役割で、ランキングにも参加したいし記事によってはmixiで限られた人向けだとつまらない、でもオープンブログの性質上記事や写真によってはプライバシーに配慮して隠したいところだけ隠したいという感じです
記事本文PHPを記述できるようにして
ログイン状態かどうかで判断して写真をみせるみせないを判断する場合は
パスワードが知られた場合のみが危険でしょうか?
そのくらいなら、パスをまた設定しなおせばいいかなって気もするんですが・・・
まず、wordpressの基本機能で画像(写真)をアップロードすると/wp-content/uploads/
に自動的にアップロードされます。
ここの画像を保護できなければ記事の公開・非公開に限らず画像はさらされてしまいます。
つまり、何らかのアップロード方法を変更しなければ画像だけの保護は無理です。
当然/wp-content/uploads/
そのものを保護してしまえば公開したい画像まで非表示になってしまうでしょうから、まず保護したい画像のアップロード場所とアップロード方法を考えましょう。
記事本文PHPを記述できるようにして
これをやるくらいならショートコードを自作してログインしているときのみ保護された画像のimgタグを書き出すくらいのほうが安全です。
投稿時にショートコードに上記保護された場所へアップロードされた画像へのリンクを書いておき、ログインして記事を見ている場合のみimgタグを書き出し、ログインしていないときはダミー画像でも表示すればよいです。
仮にログインしているときのみimgタグを書き出したとしても、実際に画像を表示するには保護された場所から画像が自動的に読み出せなくてはいけません。
例えばhtaccessで自サーバーからのみアクセスを許可したフォルダを作成し、そこへ画像を保存すれば直接アクセスなどで画像を見られることはありません。
これを上記ショートコードと組み合わせればログインしているときのみ画像を表示するなどは可能かもしれません。
ご参考になれば。
ありがとうございます
方法としては
①写真はサーバにアップせず、記事内ではローカルURLを指定
②自前サーバでセキュリティかためて写真をアップし、そこへアクセス
③非公開にしたい写真は非公開設定ができる外部サービスへアップし、そこへリンクする
こんなとこでしょうか