Featured — MH-MagazieneLite カスタマイズメモ

フロントページの Featured を調整した。
以前のままだとアイキャッチ画像が二重に出てしまうので。

方法1

※非推奨ながら、試行錯誤の足跡として。
推奨は方法2‼ ウィジェット Home2>テキスト content-loop.php を参考に以下を記入。

<div class="featured">
<?php query_posts('tag=TOP'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post();?>
<div class="mh-loop-thumb">
<a href="<?php the_permalink(); ?>"><?php
if (has_post_thumbnail()) {
the_post_thumbnail('mh-magazine-lite-medium');} ?></a></div>
<div class="mh-loop-content clearfix">
<header class="mh-loop-header">
<h3 class="entry-title mh-loop-title">
<a href="<?php the_permalink(); ?>" rel="bookmark">
<?php the_title(); ?></a></h3>
<div class="mh-meta mh-loop-meta">
<span class="mh-meta-date updated"><i class="fa fa-clock-o"></i><?php $date = get_the_date(); echo $date; ?></span> <span class="mh-meta-comments"><i class="fa fa-comment-o"></i>
<?php mh_magazine_lite_comment_count(); ?></span>
</div>
</header>
<div class="mh-loop-excerpt">
<?php the_excerpt(); ?>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>

CSSの調整が反映されなくてイラついたけど、mod_pagespeed設定をオフにしたら反映された。やれやれ。オンに戻す。 最初は4行目末尾に

global $post, $more; ?>

をいれたままにしておいたんだけれど、いらないんだろうな、と思って削除。以前は、

<?php $more = false; the_content(__('→ 続きを読む')); $more = true; ?>

というのでコンテントのmoreまでを出力させていたのだが、

<?php the_excerpt(); ?>

と、抜粋文を取得するように変えたのだ。以前のままだと本文のトップにあるアイキャッチ画像とサムネールでダブってしまい、サムネールを削除するとFlickrで取得している本文の画像制御がうまくいかなかったため。 MH-MagazineLiteは、テーマ>カスタマイズ>ThemeOptions>Generalでも抜粋の文字数と[…]の部分を、…続きを読む(任意)に変更できる。

なお、この部分はアーカイブページとほぼ同じタグ構造ながら、「TOP」とタグ付けられた記事のみを取得する。本当は一つだけ、としたいんだけれど、それはまたいつか。 ※プラグインPHP Code Widget が必要。

方法2–採用中

方法1にはウィジェットにPHPを書き込めるようにするプラグインが必要である。かねて気になっていたのはセキュリティー。投稿記事内にPHPを書き込むプラグインはセキュリティー上使わない方が良い、とあちこちで読んでいたからだ。ではウィジェット内はどうなのか?

PHP Code Widget は更新され続けているし、評価も高い。なので大丈夫だろうと思って使ってはきたのだが、ふと、同じコードをどこかに書き入れてしまえばいいのではないか、と思いついた。 たとえば、フロントページ用のファイル、homepage.php あたりに。

が、ここで直すとなると、ウィジェットで読み込んでいるhome-2部分をそっくり書き込む必要がある。自分で新しくウィジェットを作るテクはないし、別のプラグインを入れるのも気が進まない。 ふと見ると、ウィジェットに見慣れない MH Posts Large[lite] というのがある。

テーマに新規追加された、何なのかよくわからなかったファイルがあったのだが、これだった。content-large.php。 投稿記事を幅いっぱいのサムネール画像大とテキスト概要を取得するウィジェットである。これをちょこっと直せば、方法1と同じになる。

MH-Magazineはウィジェットの記事取得をカテゴリとタブでフィルタリング出来るので、タグにTOPと入れ、PostCountを1とすればOK. content-large.php を子テーマにコピペし、以下のように修正。

<?php /* Template for displaying content of MH Posts Large widget */ ?>
<article <?php post_class('mh-posts-large-item'); ?>>
<div class="featured">
<div class="mh-loop-thumb">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php
if (has_post_thumbnail()) {
the_post_thumbnail('mh-magazine-lite-medium');
} ?>
</a>
</div>
<div class="mh-posts-large-content">
<header class="mh-posts-large-header">
<h3 class="mh-posts-large-title">
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" rel="bookmark">
<?php the_title(); ?>
</a>
</h3>
<div class="mh-meta mh-posts-large-meta">
<?php mh_magazine_lite_loop_meta(); ?>
</div>
</header>
<div class="mh-posts-large-excerpt clearfix">
<?php the_excerpt(); ?>
</div>
</div>
</div>
</article>

サムネール画像をメディウムに変更し、画像なしの場合のNOImage画像表示タグ(else以下)を削除し、CSSを二か所ほど変えただけである。先にこれに気付けよ!と思いつつ…。

  • トップへ戻る
  • カテゴリアーカイブ
  • HOME

コメント

メールアドレスが公開されることはありません。* は必須項目です。


*