Wie kann ich das Format von Anhangseiten-URLs ändern von /[post-url]/[attachment-name]/
Anhangname /[post-url]/[attachment-name]/
nach /media/[attachment-name]/
Anhangname /media/[attachment-name]/
? Ich verstehe, dass ich die Ausgabe von get_attachment_link
über den attachment_link
Filter überschreiben kann, aber ich denke, ich muss die Umleitungsstruktur ändern, damit WordPress weiß, wie man mit diesen URLs umgeht?
Sie können Folgendes tun:
/* 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' );