WordPress新着記事一覧を外部ページに表示させる方法(外でWordPress機能を使う)

wp-customize

まあ何でもできるWordPressだが、ちょっとしたサンプルPHPコードを試したいときやexampleページを作りたい時がたまにある。WordPress内の投稿エディターではphpはデフォルトで使えない様になってるし、WordPress関数やテンプレートタグをWordPressシステムの外で使えたらなあと思うときがある。はい実はWordPress CMS外でWordPress機能を使うことが結構簡単にできるのだ(安全かどうか別にしてだが)

PHPファイルの先頭に1行phpコードを足すだけ

<?php require_once ('/wordpress/wp-blog-header.php'); ?>
<!DOCTYPE html>
<html lang="ja" itemscope itemtype="http://schema.org/WebPage">
<head>
<meta charset="UTF-8" />

PHPファイルの<!DOCTYPE html>の上に、上のコードの1行目の色の変った部分を入力するだけで、WordPress関数やテンプレートタグ、ショートコードまでも使うことができる。

wp-blog-header.phpまでのパスはWordPressをどこにインストールしたかで変ってくるので正確に入力する必要がある。上のコードではPHPファイルがあるディレクトリのWordPressディレクトリにWordPressをインストールということになる。

WordPress新着記事を外部PHPページで表示してみる

「WordPress新着記事一覧を外部ページに表示」はワードプレス風の拡張子のないURLとなっているが、WordPressの外にあるPHPページ。そこに次のありがちなWordPress新着記事一覧を表示するコードが貼ってある。

<?php
$args = array(
'posts_per_page' => 6 // 表示件数の指定
);
$the_query = new WP_Query($args); if($the_query->have_posts()):
?>
<?php while ($the_query->have_posts()): $the_query->the_post(); ?>
<div class="toc clearfix">
<section>
<figure class="term">
<?php if( has_post_thumbnail() ): ?>
<a href="<?php the_permalink(); ?>" itemprop="url"><?php the_post_thumbnail('thumb320'); ?></a>
<?php endif; ?>
</figure><!--/.term-->
<h3 class="post-inner" itemprop="headline name"><a href="<?php the_permalink(); ?>" class="entry-link" itemprop="url"><?php the_title(); ?></a></h3>
<p class="meta">
<i class="fa fa-calendar"></i><span class="date">
<time datetime="<?php the_time('Y-m-d'); ?>T<?php the_time('H:i:sP'); ?>"><?php the_time('Y年n月j日'); ?></time>
<?php if (get_the_modified_time('Y-m-d') != get_the_time('Y-m-d')) : ?>
<time datetime="<?php the_modified_time('Y-m-d'); ?>T<?php the_modified_time('H:i:sP'); ?>">
(<?php the_modified_time('Y年n月j日') ?>更新)
</time><?php endif; ?></span>
</p>
<div class="excerpt" itemprop="description"><div class="exsp">
<?php 
$str = get_the_content();
$count = 60;
$more = '...';
echo wp_html_excerpt( $str, $count, $more );
 ?>
</div></div>
<p class="read-more"><a href="<?php the_permalink(); ?>" class="read-more-link" itemprop="url">記事を読む</a></p>
</section>
</div><!--/.toc-->
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><span class="aka-futo"><?php echo "残念!投稿が見つかりません" ; ?></span></p>
<!-- 投稿が無い場合の処理 -->
<?php endif; ?>

途中にHTMLタグなんか混ざっているので見難いが、WordPress関数やテンプレートタグやクラスなんかが使えている。テーマにもよるだろうけど、wp_headerやget_sidebarなんかも普通に使える。ただこのサイトで使っているテーマ、Luxeritasの場合ちょっとやそっとでは外観的に同じにならなかった。get_sidebarはWordPressサイトと同じように表示されている(一部表示がおかしいけど)

下の方では、ショートコードも使っている。もちろんWordPress内の編集エディターで[nensuu 19000101]なんて風に入力しても表示されなくて、テンプレートでショートコードを使えるようにするコードを入力しなければいけない。

ということであまり使う機会はないであろうWordPressカスタマイズというか、WordPressの使い方。だって外部で使うといっても結局WordPress関数やら機能を使ってるんだから、PHPなどの勉強にならんでしょ。WordPress内で使ってる方が便利だし安全なので大人しくしておきましょう。