アーカイブ : 2013年 11月 24日

【WordPress】アーカイブページの表示形式を変えてみる

本家「ネイチャー探索日記」では、トップページでの記事は全文表示にしておりますが、
カテゴリーやタグ、日付のアーカイブページでは、抜粋表示にして、表示件数を増やそうと思いました。
アイキャッチ画像も表示できるといいな。

使用しているテンプレートのarchive.phpを開く。
まずコンテンツを表示させているコード、

<?php the_content('Read more'); ?>
<?php wp_link_pages(); ?>

これを下記のように修正。

<?php the_post_thumbnail('thumbnail'); ?>
<??php the_excerpt(); ?>

次に表示件数の変更。
wordpressの1ページに表示する最大投稿数の設定では5件にしておりますが、15件くらいにしてみるか。

<?php while ( have_posts() ) : the_post(); ?>

の上に表示件数を制御するコードを追加

<?php query_posts($query_string.'&posts_per_page=15'); ?>
<?php while ( have_posts() ) : the_post(); ?>

これでとりあえず、当初の目的は達成出来ましたが、アイキャッチ画像の下に抜粋記事が表示されています。
archive画面 before

アイキャッチ画像の右横に本文を持ってくるように、CSSで整形。
ページソースを見てみると、アイキャッチはattachment-thumbnailクラスが指定されていたので、

.attachment-thumbnail {float:left;margin-right:2em;}

archive画面 after

更に、抜粋記事の最後の[...]を”続きを読む”に変更して、本文へリンクを貼る。
functions.phpに次のコードを追加。

function new_excerpt_more($post) {
    return ' <a href="'. esc_url( get_permalink() ) . '">' . '... 続きを読む...' . '</a>';	
}	
add_filter('excerpt_more', 'new_excerpt_more');

望み通りの表示になりました。
めでたしめでたし。

参考記事
・WordPress de SEO をやろう!様
  アーカイブやカテゴリーの1ページあたりの表示件数をプラグインを使わずに変更する方法(query_posts関数)
・Web担当者の豆知識 様
  WordPress [続きを読む]の設定 投稿時に自動的に記事を抜粋表示する

結果はこんな感じです。
ネイチャー探索日記 – ヤンマ科

【WordPress】WordPress Popular Postsをカスタマイズ

閲覧数の多い記事をランキング表示してくれるプラグイン「WordPress Popular Posts」を使用していますが、導入してしばらく様子を見てみると、カウント数がどうもおかしい。
こんなに過去記事にアクセスが有るわけがない。
ブラウザやRSSリーダーからの閲覧だけではなく、botなどのプログラムからのアクセスもカウントしているのではないかとの疑問を持ちました。

ぐぐってみると、下記の記事を発見。

参考記事
試行錯誤ライフハック様
[試] WordPress Popular Postsで読者からのアクセスのみカウントさせる方法

どうやら予想は当たったようだ。
記事の紹介に従って、「WordPress Popular Posts」をカスタマイズ&初期化してみた。

これでしばらく様子見しようと思う。

【WordPress】特定カテゴリの目次を作ってみる

※現在は使用しておりませぬ。

本家サイトでカスタマイズネタを書いていた時、
カスタマイズに関連する記事のみの目次ページを作ってみようと思った。
具体的には”カスタマイズ”カテゴリに分類した記事の一覧だ。

固定ページに作ることにしたが
記事のリンクリストを手書きで並べるのも面倒くさいし、追加忘れもあり得ると思い、
自動でリンクリストが出来る方法がないかと調べた結果、下記の記事を見つけた。

参考記事
WP SEOブログ様 - 「WordPressの固定ページを目次ページとして使う方法

投稿画面でPHPを使えるようにするプラグイン「Exec-PHP」を使って記事内に下記コードを記述すればいいらしい。

<ul>
<?php $posts = get_posts('numberposts=10&cat=21'); global $post;?>
<?php foreach($posts as $post): ?>
<li><?php the_time('m月d日'); ?>・・・<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>

しかし、「Exec-PHP」はセキュリティ上の問題もあるらしい。
回避方法として、functions.phpにショートコードとして定義する方法もあるが、
functions.phpはなるべくいじりたくない。
開発中のコードにエラーが有った場合、最悪ダッシュボードにもアクセスできなくなるからだ。

何かいい方法はないかと調べたところ、「Shortcode Exec PHP」というプラグインを見つけた。
プラグイン内でPHPコードを定義し、それを記事内でショートコードとして呼び出せるものです。
エラーになっても、記事内でエラーが発生するだけなので、気持ち的にも安心。

とりあえず実験すべく、上記のコードをショートコード化してみた。

echo '<ul>';
$posts = get_posts('numberposts=-1&cat=584'); global $post;
foreach($posts as $post) {
	echo '<li>'. PHP_EOL;
	echo '<a href="',the_permalink(),'">',the_title(),'</a>&nbsp;(',the_time('Y年n月j日'),')'.PHP_EOL;
	echo '</li>'. PHP_EOL;
}
echo '</ul>';

2行目のcat=584はカテゴリ番号。
このコードを”customize_category_index”と名付け、固定記事内で下記コードを記載。

[customize_category_index]

とりあえず、こんなページができました。
カスタマイズ記事一覧

【WordPress】プラグイン Whisper Comment

FC2ブログやExciteブログに実装されている管理人だけに見れるささやきコメント。
FC2時代でも使われる頻度は少なかったが、たまにささやかれることもあったので、
Wordpressでも実装できないか探して見ると、「Whisper Comment」なるプラグインを見つけた。

インストールして有効化。
コメント機能に管理者のみに投稿する為のチェックボックスが追加された。
管理者だけに表示

コメント一覧でもささやきコメントである表示もされた。

【WordPress】プラグイン Advanced Category Excluder

※現在は使用しておりませぬ。

本家サイトでWordpressのカスタマイズネタを記載していましたが、
写真BLOGなので、通常の写真ネタの中にカスタマイズ記事を表示させたくなかった。
特定のカテゴリのみトップページに表示させない方法はないかと調べたところ、
Advanced Category Excluder」というプラグインを見つけた。

参考記事
ワードプレステーマTCD 様
特定のカテゴリ・ページを非表示にするプラグイン「Advanced Category Excluder」

HOME画面でのみカスタマイズカテゴリーの記事を表示させないように設定した。
また、サイドバーのアーカイブリストにも該当カテゴリの記事数をカウントさせないよう、
WP-dTree Archiveウェジットの設定で、Exclude catsの設定(カスタマイズネタのカテゴリ番号を指定)を行った。

但し、HOME画面からカスタマイズ記事への飛び先がないのは嫌なので、カテゴリリストから飛べるようにしてある。

【wordpress】プラグイン wp-dtree

ブログを長くやっていると、サイドバーの月別アーカイブ、カテゴリリストがずらずらと長くなってしまう。
標準のウェジットではドロップダウン表示ができるが、いまいち気に入らなかった。
折りたたみ表示できるWP-dTreeというプラグインを導入してみた。

アーカイブリストやカテゴリリストをツリー表示してくれるプラグインです。
標準設定では最下位の階層に投稿記事リストが表示されるので、これは余計ということで、「List posts」のチェックを外す。

また、ピョンと表示されるのはつまらないので、「General Settings」でアニメーション効果のチェックをON。
効果時間を300ミリ秒に設定してみた。

サイドバーがコンパクトになりました^^

dtree_category