WordPress の投稿をHTMLページに反映させる
WordPress の投稿を HTML ページに反映させたい場合、wp-load.php を読み込むことで WordPress の関数が使えるようになります。
サンプルコード
<?php
require_once('wordpress/wp-load.php');
// 最新の投稿を5件取得
$args = array(
'numberposts' => 5,
'post_status' => 'publish'
);
$recent_posts = wp_get_recent_posts($args);
echo '<!DOCTYPE html>';
echo '<html lang="ja">';
echo '<head>';
echo '<meta charset="UTF-8">';
echo '<title>最新の投稿</title>';
echo '</head>';
echo '<body>';
echo '<h1>最新の投稿一覧</h1>';
echo '<ul>';
foreach ($recent_posts as $post) {
$title = esc_html($post['post_title']);
$link = get_permalink($post['ID']);
echo "<li><a href=\"$link\">$title</a></li>";
}
echo '</ul>';
echo '</body>';
echo '</html>';
?>
パスの指定について
WordPress の wp-load.php を読み込むとき、require_once() に渡すのは ファイルシステム上のパス(サーバー上のパス)である必要があります。
NGの指定方法
<?php
require_once('https://example.com/wordoress/wp-load.php'); // これはファイルとして読み込めない
?>
ファイルシステムの絶対パス指定は OK
<?php
require_once('/home/username/public_html/wordoress/wp-load.php'); // サーバー上の絶対パス
?>
相対パスでも OK(例:このPHPファイルが wardpress の外にある場合)
<?php
require_once(__DIR__ . '/blog/wp-load.php'); // より安全
?>
補足:WordPress の URL を取得したいとき
「WordPress の投稿リンク」や「メディアの絶対 URL」が必要なら、以下の関数で取得できる。
echo get_permalink($post_id); // 投稿の絶対URL
echo wp_get_attachment_url($id); // メディアファイルのURL
echo site_url(); // サイトのベースURL
