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は、サイトのフッター部分を共通化するためのテンプレートファイルです。通常、著作権情報や追加メニュー、SNSリンクなどを含めます。
<footer>
<p>© <?php echo date('Y'); ?> <?php bloginfo('name'); ?></p>
</footer>
<?php wp_footer(); ?>
</body>
</html>
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を活用して、テーマに独自の機能を追加し、より柔軟なサイト構築を行いましょう。
