Meine Anhänge werden derzeit von umgeschriebenhttp://localhost/?attachment_id=3
anhttp://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
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.