WordPressでは、特定のコンテンツを複数のページで再利用したい場合があります。固定ページをパーツ化することで、共通の要素を簡単に管理し、他のページで呼び出すことができます。本記事では、固定ページをパーツ化し、他のページで読み込む方法をいくつかの手法に分けて紹介します。
固定ページをパーツ化する理由
固定ページをパーツ化することで、以下のメリットがあります。
- 再利用性の向上: 同じ内容を複数ページで使えるため、更新が楽になります。
- メンテナンスが簡単: 1箇所を編集すれば、関連する全ページに変更が反映されます。
- デザインの統一: 共通のデザインやコンテンツを一元管理でき、一貫性を保てます。
これらの理由から、固定ページをパーツ化して活用することは非常に便利です。
固定ページを作成し、パーツとして使用する
まず、共通で使用するコンテンツを固定ページとして作成します。たとえば、「ニュース」や「共通フッター」など、サイト全体で再利用したい部分を作成します。
固定ページの作成手順
- WordPressの管理画面から「固定ページ > 新規追加」を選びます。
- 固定ページのスラッグ(URL)を設定し、パーツとして使用したい内容を記述します。
例: 「共通ヘッダー」や「共通フッター」など。 - スラッグをわかりやすい名前(例えば common-header)に設定します。
これで共通の内容を1つの固定ページで管理できます。
get_page_by_path() を使って固定ページを読み込む
パーツ化した固定ページを他のページに読み込むには、get_page_by_path() 関数を使用します。この方法では、指定したスラッグの固定ページを取得して、その内容を表示することができます。
以下のコードをテーマの適切な場所(例えば header.php や page.php)に追加します。
<?php
// 固定ページをスラッグで取得
$common_header = get_page_by_path('common-header');
// ページが存在する場合、内容を表示
if ($common_header) {
echo apply_filters('the_content', $common_header->post_content);
} else {
echo '共通ヘッダーが見つかりませんでした。';
}
?>
このコードは、common-header というスラッグの固定ページを取得して、その内容を表示します。固定ページが存在しない場合は、エラーメッセージを表示します。
ショートコードを使用してパーツを挿入する
ショートコードを使えば、記事や固定ページ内で簡単にパーツを挿入できます。これにより、管理画面から直接ショートコードを入力するだけで、共通コンテンツを簡単に呼び出せます。
まず、functions.php にショートコードを作成します。
function load_common_part($atts) {
$atts = shortcode_atts(
array(
'slug' => '', // 読み込む固定ページのスラッグ
),
$atts
);
if (!empty($atts['slug'])) {
$page = get_page_by_path($atts['slug']);
if ($page) {
return apply_filters('the_content', $page->post_content);
} else {
return 'パーツが見つかりませんでした。';
}
}
return 'スラッグが指定されていません。';
}
add_shortcode('common_part', 'load_common_part');
これで、ショートコード [common_part slug=”common-header”] を使って、どのページでも共通のパーツを表示できます。
テンプレートパーツとして固定ページを読み込む
固定ページをテンプレートファイルとして直接呼び出す方法もあります。この方法では、指定したテンプレートファイルを直接呼び出すことができます。
手順
- wp-content/themes/your-theme/parts ディレクトリを作成します。
- そこに「共通ヘッダー」などのテンプレートファイル(例: header-part.php)を作成します。
- テンプレートファイル内に共通のHTMLを記述します。
- get_template_part() を使ってテンプレートを読み込みます。
<?php get_template_part('parts/header-part'); ?>
この方法を使えば、複数のページで同じテンプレートを簡単に再利用できます。
Advanced Custom Fields (ACF) を使用する方法
ACFプラグインを使用すれば、共通のパーツをカスタムフィールドとして管理できます。これにより、より柔軟に管理でき、非開発者でも簡単にコンテンツを更新できます。
- ACFでカスタムフィールドを作成します。
- get_field() を使用して、カスタムフィールドの内容を表示します。
<?php
$common_header = get_field('common_header', 'option');
if ($common_header) {
echo $common_header;
}
?>
この方法では、ACFで設定した共通コンテンツをテーマ内で動的に呼び出すことができます。
まとめ
固定ページをパーツ化して他のページで再利用する方法には、さまざまな手法があります。get_page_by_path() を使う方法やショートコード、テンプレートパーツ、ACFを使った方法など、サイトの要件に合わせて使い分けることで、効率的にコンテンツの管理ができ、デザインの一貫性を保ちながら柔軟にサイトを構築できます。