[WordPress]最新記事に固定のURLでアクセスする

(2017年3月16日追記:本記事は、wp-load.php をインクルードする方法が使えない場合であることを明記しました)

既存のサイトをリニューアルするときに、更新の多い一部のカテゴリだけをCMSに置き換えるということが良くあると思います。

今回は、サイトのほとんどはそのままで、毎日のように更新される「最新情報」の部分だけをWordPressに置き換えるという案件でした。
ここで問題になったのが、WordPressの範囲外にあるページのメニューにある「最新情報」ボタンのリンク先でした。
これまでは手動更新で、最新記事は常に同じURLで公開し、古くなった記事はリネームしていくという方法をとっていたらしいのですが、 これはSEO的に問題ありです。

方法の検討

PHPが使えるのであれば、WordPressの範囲外のページでも、wp-load.phpをインクルードすることで、WordPress関数を使って最新記事にアクセスできます。
(詳しくは、”wp-load.php 外部から” などでググってみてください)

今回は、WordPress以外の部分はクライアントが更新するという事情があって、最新情報ボタンのあるページにPHPが組み込めません。
そのため、ある固定のURLにアクセスすると、最新記事にリダイレクトさせられないか考えてみました。

カテゴリを丸ごとCMSに置き換えた場合は、カテゴリのトップページに最新記事を表示させるようなカスタマイズをし、カテゴリトップページをリンク先にすることで実現できます。
(カテゴリトップページは固定URLにできますからね)
しかし今回は、カテゴリのトップページではなく、記事ページを表示するようにしてみたいと思います。 

MovableTypeであれば、.htaccess をインデックステンプレートで書き出すという荒技を使うのですが(笑)、WordPressには無理そうです。 

そこで、PHPのheader関数でリダイレクトさせるようにしてみました。
テンプレートファイルに最新記事にリダイレクトするコードを書いて、固定ページに設定するという方法です。

実際の手順

まず、エディタでテンプレートファイルを作って、テーマのディレクトリにアップロードします。 

<?php /*
Template Name: newEntry
*/ ?>
<?php
$loop = new WP_query('category_name=jyoho&showposts=1'); // 最新情報へのリンク
while ($loop->have_posts()) : $loop->the_post();
$url = get_permalink($post->ID);
endwhile;
header("Location: ".$url);
?>

Template Nameは何でも構いませんが、機能を示すものがいいでしょう。
今回は「newEntry」にしてみました。

WP_Queryの引数は、用途によって変わります。
今回は、jyohoカテゴリの最新記事にアクセスしたいので、このような引数になっています。
そのあとのループで最新記事のURLを取得して、header関数でリダイレクトするというわけです。

次に、新規で固定ページを作成します。

20120424-1.jpgポイントは、右側の「ページ属性」の項目「テンプレート」です。
ここで、先ほどのテンプレートファイル「newEntry」を選びます。
ページのタイトルは適当にわかりやすいものを入れてください。
ページの本文内容は空でOKです。
スラッグはURLになるので、わかりやすいものを設定します。
今回は「newentry」としました。

これで固定ページを作成します。

すると、http://example.com/newentry にアクセスすると最新記事にリダイレクトされるようになります。
このURLを「最新情報」ボタンのリンク先に設定してやれば完成です。

固定ページとテンプレートファイルの組み合わせで、静的なHTMLファイルから動的に変化するURLにアクセスできるというワザは、他でもよく使われているので覚えておいて損はなさそうですね。 

この記事を書いた人

川井 昌彦
川井 昌彦
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き

1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数

“[WordPress]最新記事に固定のURLでアクセスする” への3件のフィードバック

  1. カテゴリー内の最新記事にリンクする

    とあるサイトにコラムコンテンツを追加した時の事。 今までコンテンツのトップは、過去記事の一覧を表示させるようにしていましたが、 無料ブログのように、最新記…

  2. 「wordpress 最新記事への 固定リンク名」でGoogle検索して初めて訪問します。
    欲しい情報が的中しました!完璧に動作しています。ありがとうございました。

    1. 川井 昌彦のアバター
      川井 昌彦

      コメントありがとうございます。お役に立てて良かったです。
      もう6年も前の記事なんですよね。ちょっと懐かしいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Vektor Passport(ライセンス期間1年)
VK Filter Search Pro
Vektor WordPress Solutions
PAGE TOP