【WordPress】添付ファイルページのパーマリンクを変更する。
WordPressでは画像などのメディアファイルにリンクを設定する際に、
- メディアファイル
- 添付ファイルのページ
- カスタムURL
を設定することが出来るですが、添付ファイルのページのリンク先のパーマリンクが、そのメディアファイルを掲載している投稿のURLに依存するような形式で出力されます(もしかするとテーマに依るかもしれませんが)。
例えば当サイトで「美味しいカフェに行きました!」という投稿に「ケーキ(cake.jpg)」「お店外観(shop.jpg)」という画像ファイルを2つ掲載しているとすると、それぞれの画像の添付ファイルのページパーマリンクは
という形式になります。
投稿に掲載していない画像や、メディアライブラリページで投稿との関係性を切り離し設定をすると、
という形式になります。
しかし、この仕様だと、無駄にパーマリンクが長くなったり、投稿名と画像ファイル名が競合することも考慮しなくてはならないしでやはりスマートではありません。
そこで、このパーマリンクを「投稿タイプ」+「ファイル名」に変更することにします。
と言っても変更は簡単で、以下のコードをfunctions.phpに貼り付けるだけ。
function mx_attachment_link( $link, $post_id ){
$post = get_post( $post_id );
return home_url( '/attachment/' . $post->post_title );
}
add_filter( 'attachment_link', 'mx_attachment_link', 20, 2 );
これでパーマリンクは、
という形式で表示出来るようになります。
主に画像でしか添付ファイルのページを使用しないのであれば、上記コードの'/attachment/'
を'/image/'
としても良いでしょう。
こちらの記事を参考にしました。
My attachments are currently rewritten from http://localhost/?attachment_id=3 to http://localhost/images/image-title using @Bainternet's answer here. $new_rules['images/(d*)$'] = 'index.php?
📝 ポイント
この書き方だと、パーマリンクの設定を「投稿名」にしておく必要があります。
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
コメントをどうぞ
- メールアドレスが公開されることはありません。
- コメント欄にURLは入力できません。
- このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシーと利用規約が適用されます。
コメント
2019年12月4日 12:46 PM
2019年11月18日 11:26 PM
2019年11月13日 4:31 PM