ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
このサイトは、基本的に検索エンジン経由で訪問されることが多いので、できるだけ他の記事も読んでもらうようにする仕掛けを考えたいと思います。特にこのサイトは記事の内容に一貫性が無く、なんでも書いているので(笑)長くとどまってもらうためにはできるだけ関連のある記事をお勧めすることが重要になってきます。
そこでサイト右側の新着記事一覧には現在表示中のカテゴリと同じカテゴリの新着一覧を表示したいと思います。私はWPテーマとしてWING(Affinger5)を使っていますのでそれを前提にお話しします。
WordPressテーマ「WING(AFFINGER5)」-販売ページ
デザイン簡単、SEO対策と広告収入UPの機能が標準装備。 さらに美しく、パワフルに。「稼ぐ」に特化したWING - AFFINGER5 お問い合わせについて 「実績」と「信頼」。検証と改善を重ねた唯一
Affinger4時代から使っていますが何も考えなくても設定ベースでいろいろとできるので愛用中です。
閑話休題。まずはカスタマイズするphpを子テーマにコピーしてきます。親テーマをいじるのは止めましょう。
私は新着記事一覧にサムネイル(丸窓)付きですのでnewpost-thumbnail-on.phpをカスタマイズすることになります。
# cd $wordpres/wp-content/themes/affinger5 # cp -p newpost-thumbnail-on.php ../affinger5-child # cd !$ <- ../affinger5-childと打鍵するのと同義 # vi newpost-thumbnail-on.php ...
実際に編集する内容は以下の通りです。
<div class="kanren <?php st_marugazou_class(); //サムネイルを丸くする ?>">
<?php
if ( trim( $GLOBALS["stdata67"] ) !== '' ) {
$newentrypost_no = $GLOBALS["stdata67"];
} else {
$newentrypost_no = 5;
}
$post_id = get_the_ID();
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$args = array(
'cat' => $cat_id,
'posts_per_page' => $newentrypost_no,
'post__not_in' => array($post_id)
);
if(trim($GLOBALS['stdata215']) !== ''):
$st_infeed = $GLOBALS['stdata215'];
else:
$st_infeed = '';
endif;
$st_infeed_count = 1;
$st_query = new WP_Query( $args );
?>
<?php if ( $st_query->have_posts() ): ?>
コードの内容について解説します。
8行目 | 後から自分自身(表示されている記事)は除外するために記事IDを取得します。 |
9-12行目 | この記事が属しているカテゴリIDを取得します。 |
14行目 | 取得する記事一覧のカテゴリを上記で取得したカテゴリにセットします |
16行目 | 自分自身(表示されている記事)は除外します。 |
記事は以上。
WING(Affinger5)について
このサイトはWINGで構築しています。パーツが豊富で非常に使いやすいのでむしろ初心者にお薦めです。このテーマを使えばコンテンツの作成に集中できると思います。