Luxeritasオリジナルトップページ作成手順
当サイトのトップページが寂しかったので、オリジナルのトップページを作ってみました。
作成手順として残したいと思います。

環境
開発時の当サイトの環境です。
WordPress 5.2.1
PHP7.2.17
Luxeritasバージョン: 3.5.9
Luxeritas Child Themeバージョン: 3.0.0
方針
・極力、『Luxeritas』オリジナルを修正せずに、作成を行う。
・ヘッダーとフッターは残し、サイドバーは表示しない。
・各カテゴリの人気記事を表示する。
・スマホ対応
準備したファイル
home.php
header.php
ファイルはこの2つと、CSSの追加で”style.css”を修正。
『home.php・header.php』は、Luxeritas親テーマフォルダから子テーマフォルダへコピーし、子テーマの方を修正。
修正箇所
home.php
home.php
<?php
/**
* Luxeritas WordPress Theme - free/libre wordpress platform
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* @copyright Copyright (C) 2015 Thought is free.
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL v2 or later
* @author LunaNuko
* @link https://thk.kanzae.net/
* @translators rakeem( http://rakeem.jp/ )
*/
global $luxe;
get_header();
?>
<div id="section"<?php echo $luxe['content_discrete'] === 'indiscrete' ? ' class="grid"' : ''; ?>>
<?php
if( isset( $luxe['grid_type'] ) && isset( $luxe['list_view'] ) && $luxe['list_view'] !== 'content' ) {
get_template_part( 'loop-grid' );
}
else {
get_template_part( 'loop' );
}
?>
</div><!--/#section-->
</main>
<?php thk_call_sidebar(); ?>
</div><!--/#primary-->
<?php echo apply_filters( 'thk_footer', '' ); ?>
20行目(<div id=・・・)から31行目(<?php thk_call_sidebar(); ?>)を削除し、そこへ表示したい内容(各カテゴリの人気記事)を書き込んで行きます。
header.php
header.php修正前
?>
<main id="main"<?php if( isset( $luxe['add_role_attribute'] ) ) echo ' role="main"'; ?>>
header.php修正後
if (!is_front_page () || !is_home ()) {
echo '<main id="main" '; if( isset( $luxe['add_role_attribute'] ) ) echo ' role="main"';
echo '>';
}
?>
『header.php』は非常に長いです。
ファイルの一番最後の、2行を変更です。
トップページ表示時は”<main>”ブロックを表示しないように修正しました。
条件分岐についてはこちらで解説しています(ショートコード内で無くても同じです)
WordPress ショートコード 条件分岐(2)
style.css
style.css
.flex_test-box {
background-color: #f0f0f0; /* 背景色指定 */
display: flex; /* フレックスボックスにする */
flex-wrap: wrap; /* 折り返し指定 */
justify-content: space-between;
}
.flex_test-item {
margin-bottom: 3rem;
width:49%;
padding: 3rem;
vertical-align: baseline;
text-align: center; /* 文字中央揃え */
background-color: #fff; /* 背景色指定 */
box-sizing: border-box;
flex: 430px;
}
h2 {
border-bottom: solid 3px #00293c;
position: relative;
}
HTML出力結果
<div class="flex_test-box">
<div class="flex_test-item">
<h2>カテゴリタイトル1</h2>
記事1
記事2
記事3
</div>
<div class="flex_test-item">
<h2>カテゴリタイトル2</h2>
記事1
記事2
記事3
</div>
<h2>カテゴリタイトル3</h2>
記事1
記事2
記事3
</div>
</div>
直接は関係ありませんが、CSSも残しておきます。
フレックスボックスを使い、PCなどの横幅がある場合は、カテゴリを2列表示にし、スマホなどは1列表示にしました。

まとめ
他の作業も行いながらだったため、3日くらいかかりました。(実質10時間くらい)
手こずったのは、『header.php』の一番最後に<main>ブロックの開始があり、それが分からず、サイドバーが表示されなくなっても、空白のままサイドバーの空間が確保されてしまいました。
それを見つけるまでに時間がかかりました。
あとは、CSSの修正で、上手く横2列にならなかったり、スマホで見ても2列になってしまったり・・・

さらに、各カテゴリの人気記事のリンクを作成する際に、問題が発生しました。
『設定ー>表示設定ー>ホームページの表示』で「最新の投稿」に設定しているため、トップページ表示は内部的には「最新の投稿文章」を読み込んだ処理をしています。そこへ、「home.php」を割り込ませ、表示されるので、リンク部分が表示されず、少し手こずりました。
WordPressの基本が、良く分からなかったため、余計に時間はかかっていると思います。
「Luxeritas」をお使いの方は、ヒント程度にはなると思います。
今回は、画像も表示せずにシンプルなトップページにしてみました。
もう少し凝ったものに変更したら、また記事にしたいと思います。
ディスカッション
コメント一覧
まだ、コメントがありません