見出し画像

ワードプレスの投稿を静的サイトに組み込む方法

静的サイトにwpの記事を入れた時の方法。

①ワードプレスをダウンロードする。

②wp設定が終わったら、phpのファイルを2つ用意する。
自分の場合はindex.phpとsingle.phpとして用意した。

③index.phpの

ファイルの一番上に記載する。
パスでwp-load.phpとリンクさせる。

<?php include ( dirname(__FILE__) . '../../wp/wp-load.php'); ?>

mainタグに下記のように記載する。


        <article>
            <?php
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $args = array(
                'paged' => $paged,
                'posts_per_page' => 99, //表示数を指定できるよ。
            );
            $wp_query_post = new WP_Query($args);
            ?>
            <?php if ($wp_query_post->have_posts()): ?>
            <?php while($wp_query_post->have_posts()): $wp_query_post->the_post(); ?>
                <div class="recent-list">
                <a href="<?php $pno=get_the_ID(); echo 'single.php?p='.$pno; ?>"><h3><span><?php echo date("Y/m/d", strtotime($post->post_date)); ?></span><br class="sp">
                    <?php if(mb_strlen($post->post_title)>25) { $title= mb_substr($post->post_title,0,25) ; echo esc_html($title). … ;} else {echo esc_html($post->post_title);}?></h3></a>
                </div>
            <?php endwhile; ?>
            <?php else: ?>
                <div class="recent-list">
                    <p>記事がありません</p>
                </div>
            <?php
            endif;
            wp_reset_postdata();
            ?>
            </div>
        </article>

single.phpファイルのmainタグには下記を記載する。
「⑤wp_connect.inc」で作るこちらとパスでリンクさせる。

            <?php include('wp_connect.inc'); ?>

⑤wp_connect.incファイルを作成して下記を記載する。
パスでwp-blog-header.phpとリンクさせてる。

<?php
require('../wp/wp-blog-header.php');

//オブジェクト独立作業
function object_to_array($obj) {
	$_arr = is_object($obj) ? get_object_vars($obj) : $obj;
	foreach ($_arr as $key => $val) {
		$val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
		$arr[$key] = $val;
	}
	return $arr;
}

//記事取得
$p = $_GET['p']; //記事ID
if ($p) {
  $args['post__in'] = array($p);
}
$posts = get_posts($args);

foreach ($posts as $post) : start_wp();
	$date = get_the_date();
	$title = get_the_title();

	echo '<h2>';
	echo $title;
	echo '</h2>';

	echo '<div class="thumbimg">';
	the_post_thumbnail('thumbnail');
	echo '</div>';

	echo '<div class="post-content">';
	echo the_content();
	echo '</div>';

endforeach;

⑥wpからいつも通り投稿すれば静的ページに反映される。

以上。

いいなと思ったら応援しよう!