私の添付ファイルは現在から書き直されていますhttp://localhost/?attachment_id=3
へhttp://localhost/images/image-title
@ @ Bainternetの答えを使って ここ .
$new_rules['images/(\d*)$'] = 'index.php?attachment_id=$matches[1]';
ただし、wordpressは依然としてリンクをデフォルトのhttp://localhost/?attachment_id=3
として参照します。 the_permalink、get_attachment_url、get_attachment_image_srcなどのWordpress関数はすべてデフォルトフォーマットのhttp://localhost/?attachment_id=3
を使用します。
手動で書き換えられた形式http://localhost/images/image-title
を入力すれば、意図したとおりに画像にアクセスできます。
WordPressがパーマリンクのために私のカスタムリライトを使用するようにするにはどうすればいいですか?特に管理者ページではどうすればいいですか?
編集: 具体性と正確さについて質問を書き換えた。the_permalink
の代わりに/images/image-title
の形式を使用するために/?attachment_id=ID
をオーバーライドするにはどうすればよいですか?
私は$post->post_title
を使ってimage-titleを得ることができます。
編集#2:
将来この質問を読む人には、一意性を保証するためにリンクに$post->post_name
を使用するのが最善だと思いました。/images/post_title
あなたのルールは添付ファイルIDで機能するので、あなたがタイトルをどのように使用しているかはわかりませんが、答えはどちらの場合もほぼ同じです。必要なフィルタは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 );
$post->post_title
を$post->ID
に変更して、タイトルの代わりにURLにIDを入れます。