概要説明
複数サイトを運用している方にオススメ。フッターやサイドエリアを複数サイトで簡単に共通化させるためのテクニック。ベースとなるサイトで構築が完了したら後は他のサイトから取得して表示させるだけ。一度環境を構築したら1サイト修正するだけで自動的に全サイトに共通部分が反映されます。
~ 目次 ~
当サイトのフッターエリアは複数サイトで共通化しています
ベースとなるサイトでまずは共通化させる表示エリアを構築
記事数の表示や動的な内容も含め複製元のフッターレイアウトをまずは構築しましょう。
htmlコメントにて複製対象を指定
<!--[FOOTER_START]--> <style> スタイル定義もインラインに記述します </style> フッターコンテンツ <!--[FOOTER_EMD]-->
style.cssに含めるとスタイル情報の反映が出来ないため共通化したいエリアのスタイル定義はインラインに記述しておくことがポイントです
他のサイトは取得して表示するだけ
footer.phpなど
<?php $share_footer = ''; $cache_footer = get_db_cache('cache_footer', '86400'); if ( $cache_footer === false ) { $foot_data = @file_get_contents('https://functions.fs-create.net/?t='.time()); // キャッシュ対策 $pattern = '/\<\!--\[FOOTER_START\]--\>([\s\S]*)\<\!--\[FOOTER_END\]--\>/'; preg_match_all( $pattern, $foot_data, $match ); if ( isset($match[0][0])) {; $share_footer = $match[0][0]; set_db_cache('cache_footer', $share_footer); } } else { $share_footer = $cache_footer; } echo $share_footer; ?>
独自キャシュ機能を使用しているため下記のキャッシュ処理が必要になります
この構成にしておくことでカスタマイズが必要なのは1サイトだけ
フッターの調整を行うのは1サイトだけで全サイトのフッターに反映が行えるようになります
キャッシュを1日有効としている関係でサイトごとに変更の反映にタイムラグが発生しますが運用が簡単なのでこちらの方法を採用しています