添付ファイルのURLを変更しますか?
-
16-10-2019 - |
質問
添付ページの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' );
所属していません wordpress.stackexchange