web-dev-qa-db-ja.com

画像添付ファイルのURLの書き換え

私が作っているテーマのURL書き換えに問題があります。これは基本的にはルーツテーマに基づくギャラリーテーマです。これがサイトナビゲーションの仕組みです。

  • ホームページ(タイル画像ギャラリーあり)(画像は親ページにリンクされています)現在のURL - domain.com
  • 親ページ(タイル画像ギャラリーあり)(クリックした画像にリンクするための#idと共に画像は添付ページにリンクします)。現在のURL - domain.com/landscapes
  • 添付ファイルページ(親投稿に添付されているすべてのフルサイズの画像)。現在のURL - domain.com/landscapes/image-title/#id

私がやりたいことは、添付ファイルのページURLから画像のタイトルを削除し、それをgalleryで置き換えることで、URLにdomain.com/landscapes/gallery/#idが表示されるようにすることです。

私のcontent-image.phpは画像のURLを取得するためにwp_get_attachment_image_src()を使います。かなりパーマリンクを無効にすると、私はdomain.com/index.php?attachment_id=205のような画像URLを得ます

Rewrite Rules Inspector Pluginを使ってきれいなURLでチェックすると、そのURL(domain.com/landscapes/image-title/#id)は次のような2つの一致を取得します。

規則1:(.?.+?)(/[0-9]+)?/?$

書き換え1:index.php?pagename=$matches[1]&page=$matches[2]

ルール2:[^/]+/([^/]+)/?$

書き換え2:index.php?attachment=$matches[1]

私が理解していることから、2番目のルールはこの場合に適用されているものですが、私はそれを何に変更するべきかについて手掛かりがありません。これを行う方法について何かアイデアはありますか?

1
darthrax

わかりましたそれで私は答えを見つけました。私は https://wordpress.stackexchange.com/a/56426/37472 に従ってコードを使用し、'series'のすべての参照を'gallery'に変更しました。

domain.com/landscapes/gallery/123/からindex.php?attachment_id=123のようなリンクを解析するために必要な書き換え規則が追加されました。

私の仮定は、wordpressはget_permalink()によって生成されるデフォルトのパーマリンクをdomain.com/landscapes/gallery/123/フォーマットで表示するということでした。そうではありません。ただし、私はギャラリースクリプトで簡単な回避策を使用して、必要な形式でアンカーリンクを生成しました。これは、ホームページ、サブページ、および親/その他のページでは異なります。スクリプトは同位体と遅延ロードを使用してギャラリーをロードします http://pastie.org/8294032

ページのフォーマットが異なる場合は、my_rewrite_rules_array( $rules )関数を次のように変更しました。

function my_rewrite_rules_array( $rules ) {
    $my_rules = array();
    $my_rules['gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[1]';
    $my_rules['(\w+)/gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[2]';
    $my_rules['(\w+)/(\w+)/gallery/(\d+)/?$'] = 'index.php?attachment_id=$matches[3]';
    return $my_rules + $rules;
}
1
darthrax