WordPressにおけるPHPの仕組みと基礎コード

実装知識

WordPressにおけるPHPの仕組みと基礎コードについて詳しく解説します。WordPressはPHPを基盤としたCMS(コンテンツ管理システム)であり、動的なWebサイトの構築が可能です。この記事では、WordPressの主要なテンプレートファイル(index.php、archive.phpなど)の役割、必要な記述について説明します。

制作についてプロに無料見積りする

当コンテンツの編集、運営はピークスマーケティング株式会社が行っています。詳細は、コンテンツ制作ポリシープライバシーポリシーを参照ください。

WordPressにおけるPHPの役割

WordPressのPHPは多岐にわたる役割を担っています。主な役割は以下の通りです。

  • 動的なコンテンツの生成
  • データベースとの連携
  • テンプレートの制限

動的なコンテンツの生成

PHPを使用することで、投稿や固定ページの内容をデータベースから取得し、Webページとして出力できます。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <h2><?php the_title(); ?></h2>
  <?php the_content(); ?>
<?php endwhile; endif; ?>

データベースとの連携

WordPressはMySQLデータベースを使用しており、PHPを通じてデータの取得・保存・更新・削除を行います。

<?php
  $recent_posts = new WP_Query(array('posts_per_page' => 5));
  if ($recent_posts->have_posts()) :
    while ($recent_posts->have_posts()) : $recent_posts->the_post();
      echo '<h2>' . get_the_title() . '</h2>';
    endwhile;
  endif;
  wp_reset_postdata();
?>

テンプレートの制御

PHPを使って異なるページテンプレートを適用し、Webサイトのレイアウトを制御できます。

<?php if (is_page('contact')) {
  get_template_part('template-parts/content', 'contact');
} else {
  get_template_part('template-parts/content', 'default');
} ?>

制作についてプロに無料見積りする

WordPressのテンプレートファイルの役割

WordPressでは、テーマに含まれるPHPファイルがWebページの構成を決定します。以下に主要なテンプレートファイルとその役割を詳しく紹介します。

index.php

index.phpはWordPressテーマにおけるデフォルトのテンプレートファイルです。サイトに他のテンプレートが存在しない場合、このファイルがすべてのページの出力に使用されます。通常、メインクエリを処理し、投稿の一覧を表示します。

<?php get_header(); ?>

<main>
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article>
      <h2><?php the_title(); ?></h2>
      <?php the_excerpt(); ?>
    </article>
  <?php endwhile; endif; ?>
</main>

<?php get_footer(); ?>

archive.php

archive.phpは、カテゴリページ、タグページ、カスタム投稿タイプのアーカイブページなど、一覧表示を行うためのテンプレートです。

<?php get_header(); ?>

<h1><?php the_archive_title(); ?></h1>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <article>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>
  </article>
<?php endwhile; endif; ?>

<?php get_footer(); ?>

single.php

single.phpは、単一の投稿ページ(投稿記事の詳細ページ)を表示するテンプレートです。

<?php get_header(); ?>

<article>
  <h1><?php the_title(); ?></h1>
  <?php the_content(); ?>
</article>

<?php get_footer(); ?>

page.php

page.phpは、固定ページ(個別ページ)を表示するためのテンプレートです。サイトのAboutページや問い合わせページなどに適用されます。

<?php get_header(); ?>

<article>
  <h1><?php the_title(); ?></h1>
  <?php the_content(); ?>
</article>

<?php get_footer(); ?>

header.php

header.phpは、サイトのヘッダー部分を共通化するためのテンプレートファイルです。ヘッダーにはサイト名やナビゲーションメニューを含めることが一般的です。

<!DOCTYPE html>
<html <?php language_attributes(); ?>>

<head>
  <meta charset="<?php bloginfo('charset'); ?>">
  <title><?php bloginfo('name'); ?></title>
  <?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>
<header>
  <h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1>
</header>

footer.php

footer.phpは、サイトのフッター部分を共通化するためのテンプレートファイルです。通常、著作権情報や追加メニュー、SNSリンクなどを含めます。

<footer>
  <p>© <?php echo date('Y'); ?> <?php bloginfo('name'); ?></p>
</footer>

<?php wp_footer(); ?>

</body>
</html>

sidebar.php

sidebar.phpは、サイドバーのウィジェットなどを含めるためのファイルです。ナビゲーションや人気記事一覧などを表示することが一般的です。

<aside>
  <?php if (is_active_sidebar('sidebar-1')) : ?>
    <?php dynamic_sidebar('sidebar-1'); ?>
  <?php endif; ?>
</aside>

functions.php

functions.phpは、テーマのカスタム関数やフィルターフック、アクションフックを記述するためのファイルです。テーマの動作をカスタマイズし、新しい機能を追加するために利用されます。

<?php
function my_theme_setup() {
  add_theme_support('post-thumbnails');
  register_nav_menus(array(
    'primary' => __('Primary Menu', 'mytheme'),
  ));
}

add_action('after_setup_theme', 'my_theme_setup');

3. まとめ

WordPressのPHP基盤は、テンプレートファイルを中心に構成されており、各ファイルが特定の役割を持っています。テーマを作成・カスタマイズする際は、各テンプレートの機能を理解し、適切に設定することが重要です。functions.phpを活用して、テーマに独自の機能を追加し、より柔軟なサイト構築を行いましょう。

制作についてプロに無料見積りする
小森健

本記事の監修者

小森 健

ピークスマーケティング株式会社 代表

大手広告代理店(東証プライム)でマーケティングやクリエイティブ作成を担当。
HP制作やLP制作、EC構築、デジタルマーケティングを得意領域とし、企画デザインからサイト実装まで一貫して対応可能なのが強み。
10年以上IT業界にいる知見を活かし、本サイトを運営。

Company
会社概要

ピークスマーケティング株式会社
〒144-0051 東京都大田区西蒲田7丁目26番11号 蒲田トーセイビルⅢ 4階
MAIL contact@peaksmarketing.co.jp

PAGE TOP