web-dev-qa-db-ja.com

カスタム投稿タイプのナメクジを変更するときにリダイレクトする?

カスタム投稿タイプのうち2つの名前を変更しました。元のスラッグは投稿タイプを正しく反映していませんでした。そのため、designer_lingerie(古い投稿タイプslug)で始まる投稿へのリクエストをdesignerにリダイレクトする必要があります。すべての投稿は同じで、投稿タイプのスラッグが変更されただけです。

私は.htaccessを使う必要があると確信していますが、それを変更するために何を言うべきかわからないです。基本的にどのURLを使うべきですか? WordPressの可愛いURLですか、それともデフォルトのURLですか。

1
dkmojo

次のような行を追加するだけです。

RewriteRule ^aboutus$ /about-us [R=301,L]

あなたの.htaccessファイルに。古いURLは^と$の間に入れ、次にスラッシュの後に新しいURLを入れます。

1
Alex Older

私はApache Rewriteモジュールを使うのではなく、組み込みのWordPress書き換え機能を使います。あなたがそれが使用する規則を見たいならば、 my Rewrite analyzer plugin をインストールしてください。新しいスラッグではなく古いスラッグを使用して、投稿タイプのルールを複製することができます。これにより、両方のURLがあなたの投稿コンテンツにリンクされます。

// The filter name is [post type name]_rewrite_rules, so I assume your post type name (not rewrite slug) is `designer`
add_filter( 'designer_rewrite_rules', 'wpse22625_designer_rewrite_rules' );
function wpse22625_designer_rewrite_rules( $rules )
{
    $old_rules = array();
    foreach ( $rules as $pattern => $substitution ) {
        $old_pattern = str_replace( 'designer', 'designer_lingerie', $pattern );
        $old_rules[$old_pattern] = $substitution;
    }
    return $rules + $old_rules;
}

これはリダイレクトを生成しません - 変な、私はこれをするために redirect_canonical()関数 を期待しました。必要に応じて、redirect_canonicalにフックするか、自分でチェックする追加のフラグを設定することによって、自分で行うことができます。

2
Jan Fabry

パーマリンクを変更しても基本的な構造は変更しない場合、WordPressはあなたの投稿を見つけることができるはずです。なぜなら、 '本物の' URL構造は同じだからです。言い換えれば、パーマリンクを変更するだけであれば、自動的に正しい場所にリダイレクトされるはずです。

1
BjornW

WPは、元々の可愛くないパーマリンクと、標準的なパーマリンクへの変更に関するメタデータを保持しています。 http://codex.wordpress.org/Using_Permalinks を参照してください。

あなたが投稿/ページのコンテンツにきれいでないパーマリンクを持っているか、どこかにハードコードされたままにしておくと、WPはそれらをきれいなバージョンにリダイレクトします。

ただし、投稿/ページエディタで直接URLを変更した場合は、リダイレクトする必要があります。それを処理する方法の1つは、 のようなプラグインを使うことです。WordPress›リダイレクト"WordPressプラグイン

0
markratledge