web-dev-qa-db-ja.com

特定のカテゴリの投稿をサブドメインにリダイレクトする

WordPressサイトがあり、そこにはさまざまなカテゴリの投稿やページがあります。これで、特定のカテゴリ投稿をサブドメインに移動しました。その特定のカテゴリからのすべての投稿がサブドメインを指すように301リダイレクトを行います。すべての投稿はメインドメインで.html拡張子を持つので、サブドメインのパーマリンク構造も.htmlに変更しました。たとえば、次のようになります。 http://www.mydomain.com/category/category-name &このカテゴリのサブドメインを作成しました http://category-name.mydomain.com
.htaccess 301リダイレクトを使用すると、このカテゴリをサブドメインに簡単にリダイレクトできますが、カテゴリのホームページはすべての投稿ではなくリダイレ​​クトされます。ドメインの投稿サンプル投稿:このカテゴリのwww.mydomain.com/sample-posts.htmlはcategory-name.mydomain.com/sample-posts.htmlにリダイレクトする必要があります。

このカテゴリもこのカテゴリのすべての投稿をサブドメインにリダイレクトする方法また、メインドメインからすべての投稿を削除するべきですか、それとも保持する必要がありますか。

3
Voiceable

それを実現するためにtemplate_redirectアクションフックを使用することができます。

add_action('template_redirect', 'redirect_category_posts');
function redirect_category_posts() {
    global $post;
    if (is_single($post->ID) && in_category('category-name', $post)) {
        $new_url = "http://category-name.mydomain.com/{$post->post_name}.html";
        wp_redirect($new_url, 301);
        exit;
    }
}

このコードが機能するには、メインドメインとサブドメインの両方の投稿に同じスラッグまたはpost_nameが必要です。

5
Ahmad M