OnePressのトップページはどのような構造になっているのか、見ていきます。
トップページのテンプレートファイルは、onepress/template-frontpage.phpです。ヘッダを読み込んだ後に、各セクションのテンプレートを読み込んでいることが分かります。
foreach ( $sections as $section ){
/**
* Load section if active
*
* @since 2.1.1
*/
if ( Onepress_Config::is_section_active( $section ) ) {
onepress_load_section( $section );
}
}
onepress_load_section()という関数は、onepress/inc/template-tags.php内で次のように規定されています。
if ( ! function_exists( 'onepress_load_section' ) ) {
/**
* Load section
*
* @since 2.0.0
* @param $section_id
*/
function onepress_load_section( $section_id ) {
(略)
get_template_part( 'section-parts/section', $section_id );
(略)
}
}
if ( ! function_exists(‘onepress_load_section’))で始まっているので、子テーマ側で思いっきりいじれることが分かりますね(笑)。そこは今回は触らないこととして、get_template_part( ‘section-parts/section’, $section_id )に注目します。
OnePressのトップページの各セクションは、「get_template_part」で呼び出されていますから、同名のファイルが子テーマにあれば、そちらを優先してくれます。子テーマ側の同階層に同じ名前のテンプレートファイルを置いてやれば、自動的にそちらを読み込んでくれるようになります。
demo6では、親テーマ側のonepress-child/section-parts/section-news.phpをコピーして、子テーマ側にonepress-child/section-parts/section-news.phpというファイルを置き、その内容を全面的に書き換えて「おしらせ」というセクションにしています。内容は、自分のFacebookページの新着記事を5件表示するようにしてみました。
Facebookのタイムラインを取得してブログ内に表示させるコードは、こちらの記事を参考にしてみてください。
Facebookと連動できるようにしておくと、ブログとFacebookの両方を更新する手間が省けるので楽だと思います。


