入れ過ぎはNG?WordPressでプラグインに頼らず実装したいカスタマイズ機能まとめ
結論
パンくずリスト・関連記事・ページネーション・人気記事など、よくあるカスタマイズはコードで実装可能です。
プラグインを使うことで手軽に導入できますが、表示速度の低下やセキュリティリスク、将来的な互換性の問題があるため、特にシンプルな構造のサイトや、パフォーマンスを重視するサイトではコードでの実装が推奨されます。
1. パンくずリストの自作
パンくずはSEO効果にも期待できる内部リンクの基本構造。以下は簡易的なパンくず生成関数です(functions.phpに追加)。
function custom_breadcrumb() { echo '<nav class="breadcrumb"><a href="' . home_url() . '">HOME</a>'; if (is_category() || is_single()) { echo " > "; the_category(' > '); if (is_single()) { echo " > "; the_title(); } } elseif (is_page()) { echo " > "; echo the_title(); } echo '</nav>'; }
表示したいテンプレートに<?php custom_breadcrumb(); ?>
と記述するだけでOKです。
2. 関連記事の表示
タグやカテゴリを元に関連記事を表示する機能も、次のようなカスタムクエリで対応可能です。
<?php $tags = wp_get_post_tags($post->ID); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args = array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'posts_per_page' => 5 );
$related_query = new WP_Query($args); if($related_query->have_posts()) { echo '
'; } wp_reset_postdata(); } ?>
3. ページネーションの設置
投稿一覧での「前へ」「次へ」だけでなく、1ページ目・2ページ目といったページ番号リンクを表示したい場合は以下のコードが使えます。
<?php global $wp_query; $big = 999999999; echo paginate_links(array( 'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 'format' => '?paged=%#%', 'current' => max(1, get_query_var('paged')), 'total' => $wp_query->max_num_pages )); ?>
4. 人気記事の表示(PV集計済の場合)
「WP-PostViews」などのプラグインを使わず、カスタムフィールドでPV数を記録している前提で人気記事を表示する例です。
<?php $args = array( 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC', 'posts_per_page' => 5 ); $popular = new WP_Query($args); if ($popular->have_posts()) : echo '<ul class="popular-posts">'; while ($popular->have_posts()) : $popular->the_post(); echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>'; endwhile; echo '</ul>'; endif; wp_reset_postdata(); ?>
※PVカウント処理は別途必要になります。
まとめ
上記のような定番機能は、プラグインなしでもコードベースで簡潔に実装できます。
不要なプラグインを減らすことは、表示速度・セキュリティ・メンテナンス性においてもメリットがあります。もちろん、実装難易度や将来の保守性を踏まえて、使い分ける判断も重要です。
開発の自由度を広げたい場合や、軽量なWordPress構築を目指す方は、ぜひ今回ご紹介したコードを活用してみてください。 個別のWordPressカスタマイズ依頼も受け付けておりますので、お気軽にご相談下さい。