web-dev-qa-db-ja.com

ワードプレスの添付ファイルのパーマリンクを変更する

私の添付ファイルは現在から書き直されています
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

2
csi

あなたのルールは添付ファイル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を入れます。

6
Milo