スポンサード リンク

random 「おまかせ表示」の実装方法(主にWordPress向け)私のサイトにある「おまかせ表示」の実装方法について、質問を頂きましたので紹介します。

スポンサード リンク

「おまかせ表示」はWikipediaやアンサイクロペディアで実装されている、ランダムに記事を表示する機能のことです。

昔Wikipediaでこの機能を使って記事を読み漁った経験があったのを思い出し、当サイトの訪問者の方にも同じ体験を提供したいとの考えから、以前実装してみたものです。

注:当サイトの「おまかせ表示」は、一部にWordPress専用のPHP関数を使用していますのでWordPress向けということになりますが、ベースとなる仕組みは同じですので他のCMS(コンテンツマネージメントシステム)を使用している方でも、応用できると思います。

実装方法

  1. 下記のコードをテキストエディタに貼り付け、PHPファイル(.php)としてローカルに保存してください。
    その際、文字コードは「UTF-8」を選択してください。
    (メモ帳の場合、「名前を付けて保存」を選択した際に表示されるダイアログから文字コードを選択出来ます。ほとんどのテキストエディタは同様の方法で選択できるはずです。)

    「おまかせ表示」を利用したユーザー数をアクセス解析サービスで記録したい場合は、</head>の直前に解析コードを挿入してください。

[php]
<head>
<meta charset="UTF-8" />
<meta name="robots" content="noindex,nofollow" />
<title>おまかせ表示</title>

<?php
require_once( dirname(__FILE__) . ‘/wp-load.php’ );

$args= array(
‘showposts’=> 1,
‘post_type’=> ‘post’,
‘orderby’=> ‘rand’,
);

$pickup_post=get_posts($args);

$meta=’<meta http-equiv="refresh" content="0 ; URL=’.get_permalink($pickup_post[0]->ID).’">’;
echo $meta;
?>
</head>
[/php]

  1. FTPクライアントソフト(ffftp等)を利用して、1.で作成したPHPファイルを「wp-content」ディレクトリ直下にアップロードしてください。
    wpXレンタルサーバーやwpXクラウドを利用している場合は、最上位ディレクトリが「wp-content」ディレクトリと同等なので、そちらにアップロードしてください。
    (要するに「wp-load.php」と同じフォルダにアップロードしてください。)
  2. これで準備は完了です。
    http://(サイトドメイン)/(1.で作成したphpファイル名) へのリンクを、サイト内のお好みの場所に作成しましょう。
    それが「おまかせ表示」へのリンクとなります。

    当サイトの場合、「random.php」というファイル名で作成したので、以下が「おまかせ表示」のURLということになります。

    http://tagosaku01.com/random.php

スポンサード リンク

PHPファイルの解説

3行目

「おまかせ表示」用ページ(当サイトの場合random.php)を、検索エンジンに登録されなくするための記述です。

6行目

WordPress用関数を使用するためのおまじないです。

7~11行目

WordPress関数であるget_posts関数を呼び出すための準備です。
get_posts関数は、指定した条件の下、ページの各情報を構造体として返します。
10行目で、get_posts関数が返した記事ページデータを$pickup_postという配列変数に代入しています。

ここでは、すべての投稿記事からランダムに1ページだけピックアップするよう条件を指定しています。

12行目

metaタグのhttp-equiv属性に”refresh”を指定すると、content属性で指定したURLにリダイレクトすることを意味します。
content属性は「content=”秒数; URL=リダイレクト先のURL”」という風にしていするので、今回の場合は0秒で指定先のURLにリダイレクトすることになります。

$pickup_postをget_permalink関数に与えてやることで、その記事ページのURLを取り出しています。

こうして生成した文字列を「$meta」という変数に代入しています。

13行目

$meta変数の内容をhtmlソースとして出力しています。

留意点

この「おまかせ表示」は、キャッシュ系プラグインを使用しているとうまく動作しない場合があります。(ランダムではなく同じページばかりが表示されてしまう)

そういった場合は、キャッシュ系プラグインにキャッシュ作成を除外するページを指定する機能があるはずなので、そちらに「おまかせ表示」のURLを登録しておきましょう。

それでもうまく動作しない場合は、ブラウザのキャッシュをクリアするとうまく行くかもしれません。

WordPress以外のCMSを使用している場合

今回紹介した仕組みは、一部にWordPress関数を使用している為、WordPress以外のCMS環境では動作しません。

ですが、ランダムに記事ページのURLを取得する仕組みはほとんどのCMSに実装されていますので、今回紹介したPHPファイルに少し手を加えれば流用できるはずです。

是非チャレンジしてみてください。

それでは。


このエントリーをはてなブックマークに追加


この記事のトラックバック用URL