WordPressでTOPページを作りこむ

WordPressでブログを作るとき、通常のブログではなくて、トップページはあくまで「表紙」として使って、新規投稿記事のリストにリンクを貼る、みたいにしたいことがある。
(例:新潟混声合唱団のページ

やり方としてはいくつかあって

  1. TOPページのテンプレート(home.phpだったりindex.phpだったり)に、直接htmlタグをこまかく書き込む。
     
  2. 「ページ」の新規追加でTOPページ用のページを作成し、ダッシュボードの「表示設定」で「フロントページの表示」としてその「固定ページ」を選択する。

などが考えられる。

それぞれ一長一短あって、「1」の方法だと、内容を書き換えるたびにテンプレートを変更する必要があるので、タグの知識のある人でないと扱いづらい。「2」の方法だと、固定ページ内でphpコードが動くようにするためにrunPHPプラグインなどを導入しないとダメ。

どうしたもんかなーと考えていたところで、見つけたプラグインがこちら。

Improved Include Page

WordPressで作成した任意の「ページ」を、任意のテンプレート内に埋め込んでやれる、というスグレモノ。

上記リンクよりプラグインをダウンロード・解凍してサーバーのプラグインディレクトリにアップロードし、有効化すれば準備はOK。

具体的には:
「画像と文章、そして最新記事リストへのリンク」というトップページを作成したい場合

  1. ページの新規追加で、トップページに表示したい内容を記入するためのページを新規作成する。
    通常のページ編集と同様に、表紙に掲載したい画像をアップロードして貼り付けたり、、文章を入力したりする。
  2. トップページ用のテンプレート(home.phpまたはindex.phpなど)を変更する。
    get_postsタグなどを参考に、最新記事10件のタイトルと記事へのリンクが表示されるようにしてみる。
  3. トップページ用テンプレートの、写真や文章を表示したい部分に、
    <?php if(function_exists(‘iinclude_page’)) iinclude_page(*); ?>
    (*は、「1」で作成したページのページID)という行を挿入する

トップページに表示する文言や写真を入れ替えたいときには、ページの編集を行うだけでOK。
phpやタグが書かれたテンプレートをいじる必要がないので、担当者としてはとっても楽な気持ちで管理できますね(笑)
文言の変更や写真の挿入なども、htmlの細かい知識がなくても大丈夫になるので、ますます安心です。



WordPressで「ページ」の「コメント欄」を「掲示板」として利用する

掲示板を設置してみた

私がよそで作っているブログでは、掲示板としてDMSGuestbookプラグインを利用しているのだけれど、今ひとつ使い勝手が悪い。

そこで、通常の「ページ」にコメントをつける形で「掲示板」化することにした。
WordPressに導入された、コメントのスレッド化とページ分割を使えば、とりあえずは形になる。ページ分割が思ったようにいかない、とか、レスがついたときの「age機能」wがないとか、不満なところはあるんだけど、後日いいプラグインができることを期待しておこう。

導入方法は以下。

  1. ページの新規追加で、「掲示板」という名前のページを新しく作成し、コメントを受け付ける設定にする。
  2. ページ用のテンプレート(私の場合はpage.php)に、コメント用のテンプレートを呼び出す記述がない場合は、記述を追加する。
    <?php comments_template(); ?>
  3. WordPressの管理画面の「設定」→「ディスカッション」で
    ・コメントを「2」 階層までのスレッド (入れ子) 形式にする
    ・1 ページ当たり「10」件のコメントで複数ページに分割し、 「最後」のページをデフォルトで表示する
    ・「新しい」コメントを各ページのトップに表示する
    のように設定する。

これで準備は完了。

あとは、テストの書き込みをしてみて表示を確認し、自分が好きなようにスタイルシートを変更してやればよい。

私の場合には、スレッドが分かりやすいように、以下のようにしてみた。
○親記事全体を枠線で囲む
○レス記事は背景に色をつける

スタイルシートを設定する場合、親記事に<li class=depth-1>、レス記事に<li class=depth-2>というクラスが指定されているので、このdepth-1、depth-2に対してborderやbackgroundを設定してやるとよい。



WordPress横型カレンダープラグイン

このサイトで使用している、横型カレンダーを表示するプラグイン。

横型カレンダープラグイン for WordPress
(The blog of H.Fujimoto様)
http://www.h-fj.com/blog/archives/2008/03/28-130840.php

本当は、以前Movable Typeで利用していたフラッシュカレンダーを導入したかったのだが
ドメインのリダイレクトをしているとxmlファイルの読み込みに失敗するようで
諦めて通常のカレンダーを導入することに。
でも、機能は十分だし、設置も簡単なので、大変ありがたいです。

WP2.3/2.5対応版となっていますが、私のバージョン(2.8.6)でも動きました。

プラグインを上記サイトからダウンロードして自サイトのプラグインディレクトリにアップロードし、
管理画面からプラグインを有効にするだけ。
あとはheader.phpのカレンダーを表示したい部分に
<?php get_calendar_horizontal(); ?>
を書き込んでやります。

スタイルシートをいじれば、自分のサイトの背景色に合わせて文字色を変えられますね。

それと、土日のカラー表示がずれてしまう場合は
「設定」→「一般」で、週の開始を「月曜日」にすれば大丈夫です。



Counterize IIの管理画面に訪問者のIPアドレスが出るようにしてみる

WordPressでアクセスカウンタ+アクセス解析用に使用しているCounterize IIというプラグイン。

管理画面から、直近のアクセスログを見ることができるのだが、IPアドレスは表示されない。
管理上、不正あるいは異常なアクセスがあった場合にはIPアドレスを参照したいこともあるので、「最近の訪問者」一覧にIPも表示されるように改造してみた。

いじるのは、counterize.php。

まず、Counterize IIのデータベースに、生のIPアドレスが格納されるようにする。
私のダウンロードしたバージョンだと784行目あたり。
旧:$sql .= “‘” . substr(md5($wpdb->escape($remoteaddr)),1,16) . “‘,”;
新:$sql .= “‘” . $wpdb->escape($remoteaddr) . “‘,”;
旧を新に書き換える。

次に「function counterize_show_history()」という関数。(私のバージョンだと1076行目あたり)
ここに、アクセスログ一覧テーブルの構造が指定してあるので
見出し行:<td scope=”col” style=”width: **%”><strong><?php _e(“IP”,’counterize’); ?></strong></td> 
内容表示行(foreach内):<td scope=”col” width=”**%”><small><?php echo $entry->ip; ?> </small></td>
を<tr>?</tr>内の表示させたい場所に挿入する。

全体として列(<td>)の幅指定が狂ってしまうので、実際に表示される画面を見ながら列幅を指定しなおすとよい。

あまりに頻繁にアクセスがあるので、なんだろうと思って調べてみたら、いろんなbotがブラウザ情報偽ってアクセスしてきてる、っていうのが分かったりしておもしろかったw



モバイル投稿テスト

携帯からブログ投稿できるよう「Ktai Entry」プラグインを導入した。

問題は、携帯からメール投稿した場合に即時にブログに反映するよう、サーバー側のphpを起動させなければならない。
その設定にだいぶ手こずって、時間がかかってしまった。
んがっ!
答えは必ずネット上のどこかに転がっているものだw
今回はKtai Entryをさくらインターネットで活用してみる(正解版)を参照。

手順は

  • Ktai Entryプラグインをダウンロードし、説明に従ってプラグインディレクトリにアップロードする。
  • さくらサーバーで、メール投稿用のアドレスを作成する(分かりづらい長いものがよい)。
  • テキストエディタで「.mailfilter」という名前のファイルを作成する。
    内容は

    cc “| /usr/local/bin/php -q /home/hogehoge/www/moge/mage/ktai_entry/inject.php”

    とする。/home/以下には自分のインストール環境に合わせてinject.phpまでのパスを記述すること。

  • FTPでサーバーにログインし、.mailfilterをメール投稿用に作成したメールアドレスのフォルダにアップする。
    場所は/home/自分のアカウント/MailBox/作成したメールアドレス名のフォルダ/となる。
    ファイルのパーミッションを「600」にするのを忘れずに。
  • inject.php内の記述を参照先のように書き換えてサーバーに上書きでアップロード。

これで、メールで投稿するとサーバー側のスクリプトが起動して、メールの内容をデータベースに書き込んでくれる、というわけ。
スクリプトが自動で起動するので、何分かおきにPOPメールサーバーをチェックに行く、という設定は不要になります。



« 前のページ次のページ »

  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報