サポート » 使い方全般 » 複数のトップページを作成したい。

  • 現在、1つのトップページを使っていますが、
    対象によって、複数のトップページを出しわけしたいと考えています。
    下層ページはすべて共通です。

    今はindex.phpをトップページにしていますが、
    複数トップページはindex-2.php、index-3.phpなどにして、作成できるかとは思うのですが、
    各ヘッダーのロゴからトップページへのリンクがあり、
    こちらは下層ページへ移動した場合は元のトップページ(index.php)へ戻ってしまうかと思います。

    header.phpのロゴ部分の記述は下記のようになっています。

    <?php
    $logo_image = get_option(‘logo_image’);
    $logo_text = get_option(‘logo_text’);
    if( !empty($logo_image) && get_option(‘toppage_logo_type’) == ‘logo_image’) :
    $logo_inner = ‘'.get_bloginfo('name').'‘;
    else:
    if (!empty($logo_text) && get_option(‘toppage_logo_type’) == ‘logo_text’) :
    $logo_inner = get_option(‘logo_text’);
    else:
    $logo_inner = get_bloginfo(‘name’);
    endif;
    endif;
    $logo_wrap = ( is_front_page() || is_home() ) ? ‘h1’ : ‘p’ ;
    ?>
    <<?php echo $logo_wrap; ?> id=”logo” itemprop=”headline”>
    “><?php echo $logo_inner; ?>
    </<?php echo $logo_wrap; ?>>

    これを、index-2.phpから始まったら下層ページもすべて、ロゴのリンクがindex-2.php(URLは何でも構いません)になるなど、トップページごとに下層ページのヘッダーのロゴのリンクを変えることはできますでしょうか。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • コードの部分をcodeボタンを押してバッククオートで囲って再投稿してください。

    トピック投稿者 lalala76

    (@lalala76)

    すみません。

    <?php
              $logo_image = get_option('logo_image');
              $logo_text = get_option('logo_text');
              if( !empty($logo_image) && get_option('toppage_logo_type') == 'logo_image') :
                $logo_inner = '<img src="'. get_option('logo_image') .'" alt="'.get_bloginfo('name').'" />';
              else:
                if (!empty($logo_text) && get_option('toppage_logo_type') == 'logo_text') :
                  $logo_inner = get_option('logo_text');
                else:
                  $logo_inner = get_bloginfo('name');
                endif;
              endif;
              $logo_wrap = ( is_front_page() || is_home() ) ? 'h1' : 'p' ;
            ?>
              <<?php echo $logo_wrap; ?> id="logo" itemprop="headline">
                <a href="<?php echo home_url(); ?>"><?php echo $logo_inner; ?></a>
              </<?php echo $logo_wrap; ?>>
    

    こちらがコードになります。

    header.phpでindex.php、ndex-2.php、index-3.phpの出力を分けるのは簡単ですが、各ページからヘッダーのURLを分けるとなるとテンプレート毎に分岐しないといけないのではないでしょうか。
    いまいち内容がピンときてませんが…

    こんにちは、

    複数トップページはindex-2.php、index-3.phpなどにして、作成できるかとは思うのですが

    不勉強なのかもしれませんが、これはなかなか難しいのではないかと思います。

    想像すると、index.phpは、PC、index-2.phpは モバイル端末みたいな事をやりたいのかなぁ、と思いますが WordPressの場合 index.phpは、単にトップページで表示するという意味合いだけではなく、フォールバックテンプレートといって、適用するテンプレートがない場合に最終的に使用されるテンプレートになるので、

    archive.php category.php tag.php等テーマにテンプレートが存在しない場合には、index.phpが使われます。これらの標準的な動作をすべて変更するとなるとかなりの手間になるでしょう。

    具体的にどんなことをやりたいのか、書いてみたほうが回答がつきやすいかもしれません。

    固定ページテンプレートを使うことが前提なんでしょうか?その辺りも書いていただくとわかりやすいかも、、、

    • この返信は6年、 10ヶ月前にnobitaが編集しました。

    いろいろな条件によって同じ場所にある表示を変化させたい、のだと思いますのでまずその表示させている対象を挿げ替えればとおっしゃっているのだと思います。
    まず最初に、ユーザーからみて同じ場所の見え方が違うということについて、場所を置き換えるというハードルに高めるより同じ場所だけれども見える内容がちがうにすることで負担が軽減できるのではないでしょうか。

    三者からみて、三様に見えるようにということは、三様を用意するではなくひとつが三様を兼ねることができれば、というのはどうでしょう。

    まず、最初に三者がそれぞれ別のものであると判断がどこかでできるとして、その判断によって表示の内容を別途読みだすという方法で変化させるのはどうでしょうか。

    今回の対象を仮にindex.phpとするならば、それを三つではなく、index.phpが3つの表示形式をもって変化できればよいのではないでしょうか。

    具体的には、なにかしらで判断した三者について、条件に一致した三様のひとつを読み出しindex.phpが表示する、使用するのはrequire_onceといったphpのプログラム記述で可能になると思いますがいかがでしょうか。

    この要領でヘッダー部分のみ、フッターのみ、画面の一部が条件によって変化する、追記されるまたは表示されない部分をつくるなどできそうだと思います。

    ぶっちゃけようするに一つのファイルにたくさん分岐を書いて巨大な選択肢の選択表示をつくる要領で、容積の負荷分散としてファイルをわけるというだけなのですが経路そのものを分けることと比較しても長所は多くみため上同一の動作をすると思います。

    もしかアドレス自体にも変化を含み表示させたい場合なのであればhtaccessの調整で可能かと思います。

    同一の役割をするページが、仮に若干機能がちがうとしてもたくさんあるのはいろいろな意味でも不都合が発生しやすいと思いますので、私個人としてはおすすめとして一つのページで表示内容を読み出し切り替えるのがよいのではないかとおもいます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「複数のトップページを作成したい。」には新たに返信することはできません。