Twenty Fourteenのトップページを抜粋一覧にしてFeatured Postをリストに含める方法

Twenty Fourteen

WordPressの新テーマ,Twenty Fourteenを試しています.もともとのテーマが美しく作られている上に,Fourteen Extendedというプラグインを入れると,パーツのカラーを簡易にカスタマイズすることもできて,本格的に乗り換えようかと考えています.

ただ,不満が2点ありました.

  • トップページに記事が全文表示されてしまうこと
  • Featured Contentsに指定した記事はトップページの記事リストから外れてしまうこと

これらについて,解決策を探してみたところ,さほど難しくないことが分かりましたので,実装してみました.

トップページの記事を要約のリストにする方法

コンテンツを表示する content.php の修正が必要です.テーマのバージョンアップで修正が消えてしまわないよう,子テーマを作成して修正します. /wp-content/themes/ の下に twentyfourteen-child のようなディレクトリを作成し,新規に style.css を作成します.style.cssの中身は下記のような感じで,Templateの欄は親テーマのディレクトリ名に合わせる必要があります.

@charset "UTF-8";
/* CSS Document */
/*
Theme Name:Twenty Fourteen Child
Description:Twenty Fourteen Child
Template:twentyfourteen
Version:1.0
Author:ur
Author URI:http://ur.edu-connect.net/
*/
@import url("../twentyfourteen/style.css");

次に,親テーマのディレクトリ /wp-content/themes/twentyfourteen から content.php をコピーします.今後修正するのは, /wp-content/themes/twentyfourteen-child/content.php です.

content.php の47行目の下記の行を,

<?php if ( is_search() ) : ?>

次のように修正します.

 <?php if ( is_search() || is_home() || is_archive() ) : ?>

【参考】 Twenty Fourteen [resolved] Display only excerpts on home page/category pages/search results?

すぐ下にある

<?php the_excerpt(); ?>

で要約を作成しており,オリジナルでは検索結果の表示だけを要約表示の対象としていますが,トップページ(とアーカイブリスト)も含めたという修正です.

こうすると,アイキャッチ画像と要約のみが表示されるようになります.私の場合はアイキャッチ画像が強すぎると感じたので,さらに子テーマの style.css に下記を記述してアイキャッチ画像を非表示にしています.

/* アイキャッチ画像を非表示 */
.post-thumbnail {
 display: none;
}

Featured Contentsに指定する記事もリストに含める

記事を Featured Content に指定すると,トップ画面の上部にグリッド表示でアイキャッチ画像を表示して目立たせることができます.しかし,トップ画面には記事本文が表示されなくなってしまいます.

Featured Contentに指定しつつ,リストにも表示するには,親テーマの inc ディレクトリにある featured-content.php (/wp-content/themes/twentyfourteen/inc/featured-content.php)を修正すれば良いようです. featured-content.php の269行目にある行を下記のようにコメントアウトします.

// $query->set( 'post__not_in', $featured );

【参考】 Improve the new default WordPress theme, Twenty Fourteen

上記の設定を子テーマを使って反映するのは,少々面倒くさいです. /wp-content/themes/twentyfourteen-child/inc/featured-content.php を親テーマから複製して作り,上記を反映させるだけではなく,子テーマ内にfunctions.php を作り,下記のように書く必要があります.

<?php
require( get_stylesheet_directory() . '/inc/featured-content.php' );
?>

こうすることで,子テーマの /inc/featured-content.php を見に行ってくれるようになります.

「Twenty Fourteenのトップページを抜粋一覧にしてFeatured Postをリストに含める方法」への3件のフィードバック

コメントは停止中です。