WORDPRESSで複数サイトを構築する際、マルチサイト機能を使用してWEBサイト制作をすることがあると思いますが、久々にとある案件でマルチサイト構築をしたので、その時に役立ったタグをメモしておきたいと思います。
マルチサイト構築時の親TOPページへリンク
基準となる親ページへのリンクとなります。子サイトでも親サイトでも共通して親TOPページへリンクします。
1 2 3 |
<?php echo network_home_url(); ?> |
外部テーマフォルダからテンプレートファイルを読み込むタグ。
複数サイトで共通するテンプレートがある場合に、外部のテーマフォルダからファイルを読み込むことができます。例えば、子サイトでも、親サイトと同じヘッダーやフッター等を使いたい場合などに、基準になるテンプレートを作っておき、読み込めばよいので、ファイルの重複がなくなり一元化できます。非常に便利なタグですね。
1 2 3 4 |
<?php include(get_theme_root() . '/テーマフォルダ名/テンプレートファイル名.php'); ?> <?php include(get_theme_root() . '/parent/header.php'); ?> |
テーマのルートパス。
同テーマ内のTOPページへのリンクのタグです。マルチサイト構築時の各サイトのテーマ内のTOPへのリンクタグはこちらを使用します。
1 2 3 |
<?php echo get_theme_root_uri(); ?> |
マルチサイトの親ページに各子サイトの記事一覧を表示する。
これもよく使うタグです。親TOPから各サイトの更新情報が見れると便利ですね。「switch_to_blog(2);」の数字を変更してブログIDを指定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php // ブログIDが2の情報を取得する場合 switch_to_blog(2); ?> <?php // 最新記事の5件を表示 query_posts('showposts=5'); while(have_posts()) : the_post(); ?> <a href="<?php the_permalink() ?>"> <dt><?php the_time('y.m.d'); ?></dt> <dd><?php the_title(); ?></dd> </a> <?php endwhile; ?> <?php restore_current_blog(); ?> |
子サイト毎に条件分岐して、出力内容を変える。
同じテンプレートを使用しつつも、子サイト毎に出力内容を変えて条件分岐する場合の記述です。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php global $current_blog; $blog_id = $current_blog->blog_id; if ($blog_id == 1){ ?> // ブログIDが「1」のサイトのときに出力する内容 <?php } else if ($blog_id == 2){ ?> // ブログIDが「2」のサイトのときに出力する内容 <?php } else { ?> // 上記以外のサイトのときに出力する内容 <?php } ?> |
カスタム投稿タイプで指定したカテゴリ名を取得表示。
また、カスタム投稿タイプを使用して、追加で更新システムを設置する際、通常のカテゴリタグだと、カテゴリ名が出力されないので、
下記の記述をします。
1 2 3 4 5 6 7 8 9 |
<?php if ($terms = get_the_terms($post->ID, 'postname')) { foreach ( $terms as $term ) { echo esc_html($term->name); } } ?> |
★リンク有りのバージョンはこちら
1 2 3 |
<?php echo get_the_term_list($post->ID,'postname'); ?> |
15.07.20 | WEBデザイン制作・IT関連