前回、サイトの要件を決め実装すべき機能が見えてきたところで今回は、漸く実作業へと移る。やるべき作業の流れはおおざっぱに言ってこんなところだ。作業するOSはlinuxかUnixを想定している。

  1. 諸環境の整備
  2. wordpressのインストール
  3. 元となるデザインテンプレートの選択
  4. RSS自動取得PHPの記述と、cronへの登録
  5. 表示関連PHPの記述
  6. RSS出力の為の記事一覧自動投稿PHPの記述と、カスタム投稿の作成
  7. 思いついたデザイン等の追加

 並べて振り返ってみると簡単そうだが、試行錯誤をしながら作っていくと2週間ほどかかってしまった。しかし無計画に初めてちゃんと思った要件を満たす者が出来たのは我ながら天晴れである。

 1、の諸環境の整備は、今回はサーバにさくらインターネットを使用したためシェルログインができた。だが、viで日本語が化ける等の問題があったため、vimをインストールして見たり、シェルの文字コードをUTF-8に統一したりした。wordpressでは、設定により変更はできるが、基本的にUTF-8で統一するのが文字化け回避の最短ルートだ。この辺の作業はさくらサーバの環境特有の作業だったりするので、関係ない人は読んでても退屈だろうから、別の記事で時間が在る時に記述することにする。

 2、wordpressのインストールについては拍子抜けするほど簡単だった。
 まず、mysqlのデータベースを作る。mysqlへは以下のコマンドで入る。

 $ mysql -u ユーザ名 -p -h mysqlのサーバー名かIP

 このコマンドは、-u でユーザ名を指定し、-p でパスワード認証入力させてね、と言い、-h でどこのサーバのmysqlへログインするのかを指定している。するとプロンプトが $ や # から mysqsl>へと変わり、ここからはmysqlのコマンドとSQLの世界だ。linuxコマンドやunixコマンドは使えない。以下のコマンドで、データベースの作成だけ行っておく。

mysql > create database DB名mydbとでもしとこうか。 ;

 是だけである。命令の最後に ; を付けるのがmysql世界の作法となっているので、忘れたままエンターキーを押してしまうと、 -> と言うプロンプトと共に、; を入れるまでしつこく付け廻される。良く忘れるので注意が必要だ。エラーメッセージが出なければ、以下のコマンドで出来たデータベースを確認する。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
+--------------------+
2 rows in set (0.02 sec)

 先ほどのコマンドで造ったDBが含まれている事を確認する。この例では"mydb"という名前で作ったので、mydbがある事を確認した。mysqlのプロンプトから抜けるには"quit"と打つと良い。べつに"exit"でも構わない。でも、quit と打つ方がかっこいいと、個人的には思う。なぜそう思うかについては、私の心象風景を深層心理の近くまで探っていく必要があるのでここでは割愛する。つまり、好みの問題だ。

 続いて、wordpressを以下のサイトからダウンロードし、webサーバの公開ディレクトリで展開する。

 WordPress日本語版

 現時点での最新は、3.2.2の様だ。インストール後は、新しいバージョンが公開されるとwordpressの管理画面(ダッシュボードと云うらしい)から、ワンタッチでバージョンアップできる。ボタン一つでサーバから新しいバージョンをダウンロードして置き換えてくれちゃうのだ。追加したプラグインなんかも同様にワンタッチでバージョンアップできてしまう。検証環境で動作確認をしないまま安易にぽちっとしてしまいたくなる誘惑に駆られる悪魔の仕様である。本番環境のアップグレード前にはちゃんと検証をすべきだが、押してはいけないボタンがあると、押さずにはいられない。管理画面からは、テーマもバージョンアップできるようになっている。うっかりテーマをバージョンアップしてしまうと、今までの変更が全部上書きされてしまうので、さらに注意が必要だ。これを回避するために、子テーマと云う仕組みが用意されているが、それはまた、別の機会に解説しようと思う。
 Webサーバの公開ディレクトリの直下に展開できたなら以下の様になっていることだろう。

$ cd Webサーバの公開ディレクトリ
$ ls
readme-ja.html wp-activate.php   wp-blog-header.php
wp-config.php  wp-includes       wp-login.php      wp-register.php  wp-trackback.php
index.html     license.txt       readme.html       wp-admin         wp-comments-post.php
wp-content     wp-links-opml.php wp-mail.php       wp-settings.php  xmlrpc.php
index.php      wp-app.php        wp-config-sample.php?
wp-cron.php    wp-load.php       wp-pass.php       wp-signup.php
$

この状態で、以下のアドレスにアクセスすると、インストールが始まる。

 http://自分のサイトのアドレス/wp-admin/install.php

 画面にwp-config.phpが無いと怒られた後、画面従って必要事項を記入すると、なんと、自動で各種DBのテーブルなどを作ってくれる。そして恙なくインストールは終了するのだ。記入する必要事項は、先ほどDBを作ったユーザパスワード、そしてDB名、その後WordPressの管理者を創る画面で任意のユーザ名と、そいつに設定するパスワードだけだ。あとはさわんなくていいと思う。

 http://自分のサイトのアドレス/wp-admin

 にアクセスし、先ほど決めたwordpressの管理者でログインすると、目出度くwordpressの管理画面に入れる。この状態で http://自分のサイトのアドレス/ にアクセスすると、最早Blogがデフォルトのテンプレートで出来あがっているではないか。なんとも、お手軽である。

 3、元となるデザインテンプレートの選択については、シンプルなものを選んだ。管理画面から、[外観]→[テーマ]→[テーマのインストール]の画面へ進めば、好きなテンプレートを選んでダウンロードできるようになっている。wordpressはblog用のCMSなので、テンプレートもblogのカタチの物が殆どだが、一般サイトでも使えそうなテンプレートも豊富だ。さらにjavaScriptをぐりぐり使って動くものもある。が、今回は、出来るだけ解析に手間のかからない単純な構造の物のほうが改造しやすくていいだろうと考えた。と言う事で、デフォルトでインストールされていた、"twentyten"というテンプレートを使わせていただいた。

 いよいよ4、RSS自動取得PHPの記述と、cronへの登録だ。wordpressには独自にwp-cronと言う疑似cronの仕組みがある。webサーバによってはcronの使用が許可されていない所もあるだろう。wp-cronはそんな環境にうってつけの仕組みである。が、このwp-cronにはサディスティックな一面がある。実行のトリガーがサイト閲覧者からのアクセスだというのだ。アクセスがあった時に時間を調べ、wp-cronに設定された間隔を過ぎた物があれば実行していくと言う仕組みらしい。つまり、誰もアクセスして来なければ、トリガーが無いのでwp-cronは沈黙を保ったままとなる。ある程度のアクセスが無ければ、意図したとおりに動かない。私がこの仕組みを使うのはまだ早い、そんな気がした。幸いさくらインターネットでは、cronを5つまで設定していいよってことになっていたので、そちらを有り難く使わせていただく事にして、ざっくりとした仕組みはこうだ。

cronによる自動取得PHPのキック
 ↓
自動取得PHPがSimplePieを使用してRSSを取得
 ↓
取得した項目が、すでにDBに入れた物でなければ、記事タイトル、URL、投稿日時等をDBに格納
 ↓
めでたしめでたし。

 RSSとさらっと書いているが、SimplePieはAtomにも対応している。なので、Atomは対応していません、なんてかっこ悪い事は云わなくても済むのだ。取得する情報は、記事タイトル、記事URL、サイトタイトル、サイトURL、投稿日時、記事の要約とする。あくまでも、記事へのリンク作成が目的なので、本文の取得は行わない。これらの情報を、wordpressのBlog記事投稿すると言う形でDBへ格納する。表示するときは、PHPにより、リンク形に成形して、表示する。Wordpressから見たBlogの一記事が、アンテナサイトのリンク一行となる。

 記事が長くなってしまったのでこのあたりは、また次回詳しく書こうと思う。

*追記: 反響にお答えし、アンテナサイト用Wordpressテーマ「Antena Institute」をリリースいたしました。
詳しくは、「Antena Instituteについて」をご参照ください。
 ご購入を希望される方は、下記リンクにてAntena Instituteをご購入ください。

Antena Institute(PHP7版) | 銀仁堂

Antena Institute(PHP5版) | 銀仁堂

さらに、TwitterBotスクリプトも併せてどうぞ。
Twibot Institute | 銀仁堂

1 件のコメント!

  • はじめまして、ブログ読ませていただきました。
    まさに、仁伯爵さんが作ろうとしているのと同じようなアンテナサイトを
    独自ドメインでワードプレスで作り、
    phpを少し学ぼうかなと思い、
    昨日から作業を開始しました。
    とりあえずワードプレスインストールまでやって、
    ここからどうしようかと、情報を集めている者です。

    SimplePieというものも今知りましたので、とりあえずDLしてみました。
    http://dirthighway.net/pukiwiki/pukiwiki.php?SimplePieの
    「使い方」を参考に見ても何をどうすればいいのかわからず……

    SimplePieを使えば、rss自動取得を複数のサイトから可能になる、ということでしょうか?
    初心者すぎて申し訳ございません。

    失礼致します。

コメントを残す

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


*


*

投げ銭はこちらへ
bitcoin : 1AFU37YroGt8ohmFz8nG1N2ockL56Z4hfQ

ADA Coin: DdzFFzCqrhskq33AqGL8XkJZ3bb1hpxJYTd2UrJFKVpXphWG8d1RuhQrKymmKU1zzjvGi7oU69PaJ7nXECRG4Kpvg27Pghf3hpRNhRMy
2019年6月
« 12月    
 12
3456789
10111213141516
17181920212223
24252627282930
カテゴリー