WordPressで特定の固定ページのIDを設定して読み込む方法
WordPressでは、特定の固定ページの情報を取得して表示することがよくあります。
例えば、ある固定ページのカスタムフィールドの値を取得して表示したり、
そのページのコンテンツを特定のテンプレートでカスタマイズしたりする場合です。
本記事では、特定の固定ページのIDを設定し、
そのページの情報を読み込む方法について詳しく説明します。
固定ページのIDを確認する方法
まず、特定の固定ページのIDを確認する必要があります。
固定ページのIDは、管理画面で確認できます。
以下の手順で確認できます。
1.WordPress管理画面にログイン
2.「固定ページ」メニューから「固定ページ一覧」をクリック
3.特定の固定ページをクリックして編集画面に移動
4.URLに表示される「post=数字」の部分が固定ページのID
例えば、URLが https://example.com/wp-admin/post.php?post=123&action=edit
の場合、
固定ページのIDは「123」です。
特定の固定ページのIDを設定する
次に、取得した固定ページのIDを使用して、そのページの情報を取得する方法を見ていきます。
まず、固定ページのIDを変数に設定します。
<?php
// 特定の固定ページのIDを設定
$page_id = 123; // 固定ページのIDに置き換えてください
?>
固定ページの情報を取得する
特定の固定ページの情報を取得するには、いくつかの方法があります。以下に代表的な方法を示します。
1. get_post
関数を使用する
get_post
関数を使用すると、特定の投稿(固定ページ含む)の情報を取得できます。取得した情報はオブジェクトとして返されます。
<?php
$page = get_post($page_id);
if ($page) {
echo '<h1>' . esc_html($page->post_title) . '</h1>';
echo '<div>' . apply_filters('the_content', $page->post_content) . '</div>';
} else {
echo 'ページが見つかりませんでした。';
}
?>
2. get_post_meta
関数を使用する
get_post_meta
関数を使用すると、特定の投稿(固定ページ含む)の
カスタムフィールドの値を取得できます。
<?php
$meta_value = get_post_meta($page_id, 'custom_field_name', true);
if ($meta_value) {
echo '<p>カスタムフィールドの値: ' . esc_html($meta_value) . '</p>';
} else {
echo 'カスタムフィールドが見つかりませんでした。';
}
?>
3. the_field
関数を使用する
the_field
関数は、Advanced Custom Fields (ACF) プラグインを使用している場合に便利です。
特定のカスタムフィールドの値を取得して表示します。
<?php
if (function_exists('the_field')) {
the_field('custom_field_name', $page_id);
} else {
echo 'ACFプラグインがインストールされていません。';
}
?>
テンプレートファイルで固定ページの情報を表示する
特定の固定ページの情報をテンプレートファイルで表示する方法についても説明します。
例えば、トップページに特定の固定ページの情報を表示する場合です。
テンプレートファイルの作成
まず、テンプレートファイルを作成し、そこに固定ページの情報を表示するコードを追加します。
ここでは、トップページのテンプレートファイル(front-page.php
)を例にします。
<?php
get_header();
// 特定の固定ページのIDを設定
$page_id = 123; // 固定ページのIDに置き換えてください
// 固定ページの情報を取得
$page = get_post($page_id);
?>
<section class="featured-page">
<div class="container">
<?php if ($page) : ?>
<h1><?php echo esc_html($page->post_title); ?></h1>
<div>
<?php echo apply_filters('the_content', $page->post_content); ?>
</div>
<?php else : ?>
<p>ページが見つかりませんでした。</p>
<?php endif; ?>
</div>
</section>
<?php
get_footer();
?>
このコードでは、get_post
関数を使用して特定の固定ページの情報を取得し、そのタイトルとコンテンツを表示しています。
固定ページのカスタムフィールドを表示する
次に、固定ページのカスタムフィールドの値を表示する方法について説明します。カスタムフィールドの値は、ページのメタデータとして保存されています。
get_post_meta
を使用してカスタムフィールドを表示
テンプレートファイル内で get_post_meta
関数を使用してカスタムフィールドの値を取得し、表示することができます。
<?php
get_header();
// 特定の固定ページのIDを設定
$page_id = 123; // 固定ページのIDに置き換えてください
// 固定ページの情報を取得
$page = get_post($page_id);
?>
<section class="featured-page">
<div class="container">
<?php if ($page) : ?>
<h1><?php echo esc_html($page->post_title); ?></h1>
<div>
<?php echo apply_filters('the_content', $page->post_content); ?>
</div>
<div>
<?php
$meta_value = get_post_meta($page_id, 'custom_field_name', true);
if ($meta_value) {
echo '<p>カスタムフィールドの値: ' . esc_html($meta_value) . '</p>';
} else {
echo 'カスタムフィールドが見つかりませんでした。';
}
?>
</div>
<?php else : ?>
<p>ページが見つかりませんでした。</p>
<?php endif; ?>
</div>
</section>
<?php
get_footer();
?>
Advanced Custom Fields (ACF) プラグインの使用
ACFプラグインを使用している場合は、the_field
関数を使用してカスタムフィールドの値を簡単に表示できます。
ACFを使用したカスタムフィールドの表示
テンプレートファイル内で the_field
関数を使用してカスタムフィールドの値を取得し、表示することができます。
<?php
get_header();
// 特定の固定ページのIDを設定
$page_id = 123; // 固定ページのIDに置き換えてください
// 固定ページの情報を取得
$page = get_post($page_id);
?>
<section class="featured-page">
<div class="container">
<?php if ($page) : ?>
<h1><?php echo esc_html($page->post_title); ?></h1>
<div>
<?php echo apply_filters('the_content', $page->post_content); ?>
</div>
<div>
<?php if (function_exists('the_field')) : ?>
<?php the_field('custom_field_name', $page_id); ?>
<?php else : ?>
<p>ACFプラグインがインストールされていません。</p>
<?php endif; ?>
</div>
<?php else : ?>
<p>ページが見つかりませんでした。</p>
<?php endif; ?>
</div>
</section>
<?php
get_footer();
?>
複数のカスタムフィールドを表示する
複数のカスタムフィールドを表示する場合、同様の方法で各カスタムフィールドの値を取得し、表示することができます。
<?php
get_header();
// 特定の固定ページのIDを設定
$page_id = 123; // 固定ページのIDに置き換えてください
// 固定ページの情報を取得
$page = get_post($page_id);
?>
<section class="featured-page">
<div class="container">
<?php if ($page) : ?>
<h1><?php echo esc_html($page->post_title); ?></h1>
<div>
<?php echo apply_filters('the_content', $page->post_content); ?>
</div>
<div>
<?php
$meta_value1 = get_post_meta($page_id, 'custom_field_name1', true);
$meta_value2 = get_post_meta($page_id, 'custom_field_name2', true);
$meta_value3 = get_post_meta($page_id, 'custom_field_name3', true);
if ($meta_value1) {
echo '<p>カスタムフィールド1の値: ' . esc_html($meta_value1) . '</p>';
} else {
echo '<p>カスタムフィールド1が見つかりませんでした。</p>';
}
if ($meta_value2) {
echo '<p>カスタムフィールド2の値: ' . esc_html($meta_value2) . '</p>';
} else {
echo '<p>カスタムフィールド2が見つかりませんでした。</p>';
}
if ($meta_value3) {
echo '<p>カスタムフィールド3の値: ' . esc_html($meta_value3) . '</p>';
} else {
echo '<p>カスタムフィールド3が見つかりませんでした。</p>';
}
?>
</div>
<?php else : ?>
<p>ページが見つかりませんでした。</p>
<?php endif; ?>
</div>
</section>
<?php
get_footer();
?>
おわりに
この記事では、特定の固定ページのIDを設定し、
そのページの情報を取得して表示する方法について説明しました。
WordPressでは、固定ページのIDを使用してカスタムフィールドの値を取得し、
テンプレートファイルで表示することができます。
また、Advanced Custom Fields (ACF) プラグインを使用することで、
さらに簡単にカスタムフィールドの値を取得して表示することができます。
これらの方法を使用して、固定ページの情報を動的に表示し、
サイトのコンテンツを柔軟にカスタマイズすることができます。
ぜひ試してみてください。何か質問があれば、コメント欄にてお知らせください。
カスタム投稿タイプの条件分岐について
11月 13, 2024MW WP Formでカスタム投稿「shop」のカテゴリーを選択項目に追加する方法
11月 7, 2024WordPressで特定ページ、すべてのカテゴリー、投稿詳細ページからカノニカルタグを削除する方法
11月 4, 2024