web-dev-qa-db-ja.com

サブドメインの異なる子テーマ

サブドメインに基づいてさまざまな子テーマを適用する方法を見つけようとしているサイトがあります。子供のテーマを適用するのは難しいことではありません、それは私が少し不確かであることはもっと.htaccess魔法です。

私がしているのはこう言っているサイトです:

example.com/red/
example.com/blue/

赤と青が違う子供のテーマです。しかし、すべてのリンクはまだ次のようにアクセスできます。

example.com/red/blog/
example.com/blue/blog/

マルチサイトは私にとってはやり過ぎであるように思われます、なぜならサイトは異なったスタイルシートと異なった画像で全く同じ内容を持っているでしょうから。私はおそらくadd_rewrite_rule()がこの状況にはもっと適切だろうと思っています。しかし、正規表現は私にはラテン語です。

2
r0tterz

テーマを決定するためにURLを使用しないでください。 (FYI、説明しているのはサブフォルダーであり、red.example.comのようなサブドメインではありません。)

これをしないのは、検索エンジンで 重複コンテンツの問題 を避けるためです。技術的には、それらを回避することは可能ですが、異なるURLが異なるコンテンツをロードすると合理的に予想する訪問者にとっては混乱を招く可能性もあります。

代わりに、私はあなたが「テーマスイッチャー」プラグインを調べることを勧めます。私はそれらのどれにも精通していませんが、ここにあなたが始めるためのいくつかがあります:

私の場合は、 localstorage を使用して、必要な色の変更のみを含む特定の「スキン」スタイルシートを条件付きでロードする方法を慎重に検討します。

1
mrwweb

私はmrwwebに内容の重複については同意します、なぜあなたがそうしたいのかよくわかりませんが、議論のために...

URLを取得してからfunctions.phpから正しいスタイルシートをエンキューできます。

このようなもの(未テスト):

<?php
    function mytheme_stylesheet_enqueue(){        
        global $post;
        $my_url = get_page_link($post->ID);
        if (strpos($my_url,'red') !== false) {
            wp_register_style( 'red-stylesheet', get_stylesheet_directory_uri() . '/red-style.css', array(), '', 'all' );
            wp_enqueue_style( 'red-stylesheet' );
        }
        if (strpos($my_url,'blue') !== false) {
            wp_register_style( 'blue-stylesheet', get_stylesheet_directory_uri() . '/blue-style.css', array(), '', 'all' );
            wp_enqueue_style( 'blue-stylesheet' );
        }
    }
    mytheme_stylesheet_enqueue();
?>
0
Rob