it-swarm.com.de

Ändere den Permalink für WordPress-Anhänge

Meine Anhänge werden derzeit von umgeschrieben
http://localhost/?attachment_id=3 an
http://localhost/images/image-title mit @ Bainternets Antwort hier .

 $new_rules['images/(\d*)$'] = 'index.php?attachment_id=$matches[1]';  

WordPress verweist jedoch weiterhin auf den Link als Standard-http://localhost/?attachment_id=3. Wordpress-Funktionen wie "the_permalink", "get_attachment_url", "get_attachment_image_src" usw. verwenden das Standardformat "http://localhost/?attachment_id=3".

Ich kann wie vorgesehen auf das Bild zugreifen, wenn ich das umgeschriebene Format http://localhost/images/image-title manuell eingebe.

Wie kann ich WordPress dazu bringen, mein benutzerdefiniertes Umschreiben für den Permalink zu verwenden, insbesondere auf der Admin-Seite?

BEARBEITEN: umformulierte Frage zur Spezifität und Richtigkeit:
Wie kann ich the_permalink überschreiben, um das Format /images/image-title anstelle von /?attachment_id=ID zu verwenden?
Ich kann den Bildtitel mit $post->post_title erhalten.

BEARBEITEN # 2:
Für alle, die diese Frage in Zukunft lesen, ist es am besten, $post->post_name für den Link zu verwenden, um die Eindeutigkeit sicherzustellen.
/images/post_title

2
csi

Ihre Regel funktioniert mit der Anhangs-ID. Ich bin nicht sicher, wie Sie den Titel verwenden, aber die Antwort ist in beiden Fällen fast identisch. Der gewünschte Filter ist attachment_link:

function wpd_attachment_link( $link, $post_id ){
    $post = get_post( $post_id );
    return home_url( '/images/' . $post->post_title );
}
add_filter( 'attachment_link', 'wpd_attachment_link', 20, 2 );

Ändern Sie $post->post_title in $post->ID, um die ID anstelle des Titels in die URL einzufügen.

6
Milo