attachment・メディアページを無効・削除 リンクも削除する方法 【WordPress】
WordPressは画像等のメディアをアップロードすると自動的にそれようのページが生成されます
これってかなり不要だったりします
うまく使いこなすことも可能なんですが
多くの人にとっては不要の代物でしょう
そこで、そのattachmentのページが無かったことにする方法です
下準備
メディアページへのリンクつかないようにWordPressをカスタマイズしておきます
そうすることでメディアページの存在は気づかれなくなります
こちらの記事が参考になります
WordPress 3.5 でメディアのリンク先から添付ファイルのページの選択肢を消去する | Simple Colors
http://www.warna.info/archives/2536/
方法その1
attachment.phpの中身を空にして404表示にしてしまう
テーマにあるattachment.php、なければ作成して404にしてしまえば無いのと当然
しかしメディアのページへのリンクがある場合はリンクエラーになっちゃいますが、SEO的には問題ありません
ウェブマスターツールに404が大量に出ちゃうかもしれませんが
最後に紹介する方法で対応できます
こちらの記事で紹介されている 404と返す方法が使えます
WordPressのメディアアップローダーの”添付ファイル投稿URL”ってボタンを消してハッピーになる方法。 | firegoby
http://firegoby.jp/archives/3588
コードはテーマのfuction.phpに追記します
方法その2
プラグインを使って処理する
このプラグインを使うと、記事と関連しているときはその記事へ転送、それ以外はホームへと転送されるようです
複数の記事で使った場合はどうなるのか?
投稿画面の時にアップロードした記事へリダイレクトされます
Attachment Pages Redirect
http://wordpress.org/plugins/attachment-pages-redirect/
WordPressの管理画面からプラグイン新規追加でインストールするだけでOKです
あとはちゃんと動作するか試してみてください
残る問題点
方法を2つ紹介したのですが、やっぱり画像についているattachmentへのリンクをすべて削除しないと、不要なリダイレクト、ウェブマスターツールでの404発生等になってしまうので
正規表現でimgタグにattachmentが入る場合は削除するというやり方で出来るはずなので
正規表現を使ったものを探したら有りました
【WordPress】記事内の画像に勝手にリンクが入らないように設定する方法と今までの記事から画像のリンクを外す方法
http://note100yen.com/en-131112.html
ただ少しコードの変更が必要なのでカスタマイズ
文字がエスケープされててコピペで使えなかったのと画像への直リンクも削除されてしまうので
attachmentのページへのリンクだけ削除するようにすこしコードをいじりました
//画像からリンクを削除 add_filter( 'the_content', 'attachment_image_link_remove_filter' ); function attachment_image_link_remove_filter( $content ) { $content = preg_replace( array('{<a(.*?)(wp-att)[^>]*><img}', '{ wp-image-[0-9]*" /></a>}'), array('<img','" />'), $content ); return $content; }
これをWordPressのfuction.phpに追記します
下準備+方法1か2+正規表現でのリンクの修正
これらを組み合わせれば万全かと思います
正規表現で消すのなら、下準備も飛ばしてしまってもいいかと思いますが、選択肢に出てくるだけで邪魔だったりもするので消しておいたほうが無難でしょうか
方法1と方法2は好きな方の動作の方を選べば良いかと思います
個人的には方法1で404化してしまって、正規表現でのリンクの修正することで attachmentのページがこの世からなかったコトにするほうがいいかなと思います、それにプラグインを使わずにテーマのfunctions.phpに追加するだけでいいですし
COMMENT