質問: 添付ファイルのurlを変更する 添付ページのurlのフォーマットを/[post-url]/[attachment-name]/から/media/[attachment-name]/に変更するにはどうすればよいですか。 get_attachment_linkフィルタを介して attachment_link の出力をオーバーライドできることは理解できますが、リダイレクト構造を変更する必要があるため、wordpressはこれらの処理方法を認識します。 url?
回答: 次のことができます。/* add new rewrite rule */ function attachment_rewrite( $wp_rewrite ) { $rule = array( 'media/(.+)' => 'index.php?attachment=' . $wp_rewrite->preg_index(1) ); $wp_rewrite->rules = $rule + $wp_rewrite->rules; } add_filter( 'generate_rewrite_rules', 'attachment_rewrite' ); /* redirect standard wordpress attachments urls to new format */ function redirect_old_attachment() { global $wp; if( !preg_match( '/^media\/(.*)/', $wp->request ) && isset( $wp->query_vars['attachment'] ) ) { wp_redirect( site_url( '/media/' . $wp->query_vars['attachment'] ) , 301 ); } } add_filter( 'template_redirect', 'redirect_old_attachment' );