WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
PHP
WEB制作
外部のWordPressの投稿記事を読み込んで表示する方法
コーダーのKです。
例えばWordPressで作られたサイトAの投稿記事をサイトBとサイトCにも表示したいといった場合。
WordPressを3つインストールしても対応できますが3箇所で同じ更新をする必要があり運用に難があります。
今回はwp-load.phpを使って同じサーバーにあるWordpressの投稿記事を表示する方法をご紹介します。
前提
newsディレクトリにWordPressがあってshopディレクトリに静的HTMLがある。
shopディレクトリ内のindex.htmlにnewsの新着記事を表示したい。
手順.1
WordPressのタグを使用できるようにするため
<?php require_once( './news/wp-load.php'); ?>
index.htmlの一番上に設置します。
ファイルパスはインストール場所にあわせて変更します。
index.htmlのままではPHPを処理できないためindex.phpに変更します。
手順.2
WordPressのサブループで新着記事を表示します。
<?php
$args = array(
'category_name' => 'news',
'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();?>
<article>
<a href="<?php the_permalink( $post ); ?>"><?php the_title(); ?></a>
</article>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
$argsを変更すればカスタム投稿にも対応できます。
<?php
$args = array(
'post_type' => 'news',
'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();?>
<article>
<a href="<?php the_permalink( $post ); ?>"><?php the_title(); ?></a>
</article>
<?php
endwhile;
endif;
wp_reset_postdata();
?>
備考
wp-load.phpを使う方法は簡単にできる反面、複数のWordPressから記事を読み込むことはできません。
同じWordPressから複数の投稿を読み込むことは可能です。
×表示できない場合
newsからお知らせを読み込み。
worksから実績を読み込み。
<?php require_once( './news/wp-load.php'); ?>
<?php require_once( './works/wp-load.php'); ?>
○表示できる場合
newsからお知らせを読み込み。
newsから実績を読み込み。
<?php require_once( './news/wp-load.php'); ?>