無料のワードプレステーマとして評判の良い【Cocoon(コクーン)】。これは良いかも?とテストサイトに適用して色々触ってみてます。
ただ、トップページは記事一覧の表示か、設定から固定ページの表示を選択するしかなく、「記事一覧の上に任意の固定ページを表示」の設定がなくて調べまくってみると、製作者の方は「機能として追加する予定は無く、テンプレート(phpファイル)を直接触ってもらうしかない」的な返信をしているのを発見。
それならばと調べて、親ファイルのindex.phpに下記コードを追加したら上手くいったのでメモっておきます。
直接、親テーマのファイルを触ることになるので、必ずバックアップを取ってから追加して下さい。
親テーマのファイルを触るのは、やっぱり怖いので、親テーマのindex.phpを一旦ダウンロードし、子テーマの中にアップロードすることで(親テーマ内のindex.phpは、そのまま)、親テーマをバージョンアップしてもトップページに設定した固定ページは表示されます。
1.固定ページでトップページを作る。
タイトルは表示されないので、適当で良いです。スラッグも適当で良しです。
IDをメモ
固定ページの指定には、IDを使います。
テストサイトでは、トップページのIDは【2】です。
2.サーバーのファイル管理からindex.phpをダウンロードする。
【外観】⇒【テーマエディター】で触ることもできますが、コードを追加すると上手く上書き保存をされないことが多いので、サーバーのファイル管理を使います。
各サーバーのファイル管理↓からindex.phpをダウンロードしましょう。
各サーバーのファイル管理
エックスサーバーの場合
ロリポップサーバーの場合
3.ダウンロードしてきたindex.phpにコードを追加
ダウンロードしてきたindex.phpをTeraPadなどのエディターで開き、<php get_header>の下に、↓このコードをコピペし、固定ページID【2】の部分を任意のIDに変更して保存。
1 2 3 4 5 6 7 8 |
<?php if( ( is_home() || is_front_page() ) && !is_paged() ) : ?> <?php $post_id = 2; //数字は固定ページのIDを入れる $post = get_post($post_id, 'OBJECT' , 'raw'); //指定した記事のIDの情報を取得 $post_include = apply_filters( 'the_content',$post->post_content); //記事の本文をフィルターフックで整形 echo $post_include; //出力します ?> <?php endif; ?> |
4.コードを追加したindex.phpを子テーマの中にアップロード
サーバーのファイル管理から、Cocoonの子テーマを開き、編集したindex.phpをアップロード!
子テーマに追加することで、親テーマがバージョンアップしても設定したトップページが消えません。
親テーマのindex.phpを編集すると、親テーマをバージョンアップした時に、再度、設定しなおす必要があります。
5.テーマエディターで確認
【外観】⇒【テーマエディター】⇒子テーマ【Cocoon Child】を選択⇒index.phpを開いて確認。
↓コードが追加されています。表示がおかしくなった場合は、追加したコードを削除して下さい。