「WEB」カテゴリーアーカイブ

CodeIgniterの’index.php’を省略する.htaccess

久しぶりにPHP関連の話題です。

PHPフレームワークのCodeIgniterは軽量かつわかりやすいということで人気です。現在のバージョンは2.1.0で、こちらからダウンロードできます。2MB強です。インストールは先ほどのアーカイブを展開しておくだけです。

展開したディレクトリをcodeigniterとすると、アクセスはhttp://www.example.com/codeigniter/index.php/test/などとなります。他のフレームワークと同様に、パラメータをディレクトリのように渡します。ただ、このままだと、inde.phpの部分が毎回表示され冗長です。

.htaccessを設定すると、解消できるとオンラインのドキュメントにも書かれているので設定してみましたが、404 Not Found とエラーが出てきました。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

上記の場合は、CodeIgniterをhttp://www.example.com/の直下に展開した場合なので、今回のようにhttp://www.example.com/codeigniter/に展開した場合は3行目を以下のように書き換えます。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /codeigniter/index.php/$1 [L]

これで無事に解決しました。

ブログ以外にWordPressを使うときの参考

WordPressで一般的な企業サイトを作るときに参考になる記事まとめ5つというまとめの中の3つがよくまとまっていて参考になります。

自分自身のメモとして投稿します。こういうものは1年ごとくらいに自分の知識をアップデートする必要があるので、このようにまとめてあると非常にありがたいです。

最近の投稿を逆順(古い順)に表示 (WordPress)

WordPressのウィジェットには「最近の投稿」というものがあります。これは上から最新の記事が表示されます。

これを古い順に並べようと思うと、テーマファイルを編集することになりますが、新しくウィジェットにPHPで記述すれば応用範囲も広がります。

まずは、ウィジェット中のPHPを有効にするために、Executable PHP widgetなどのプラグインを入れます。

新たにウィジェットを作り、下記のようなコードを記述します。これで、古い順に5件表示されます。

<ul>
<?php
$posts = get_posts('numberposts=5&order=ASC&orderby=date');
global $post;
?>
<?php
if($posts): foreach($posts as $post): setup_postdata($post); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; endif;
?>
</ul>

投稿順を日付とは関係なく並び替える (WordPress)

WordPress では投稿した順に記事が表示されます。一番新しい記事が一番上にくる状態が標準です。

日記形式ならばこの形態が一般的であり、問題になることもありませんが、商品の紹介や、一連の大きな流れのあるページでは投稿順を替えたい場合があります。日付を手作業で変更しても対応できますが、postMashというプラグインが便利です。

インストールすると、ダッシュボードの「投稿」中にpostMashというメニューが出てきます。

投稿順を変更するプラグインはいろいろありますが、ドラッグ&ドロップでできるので、単純明快です。

投稿記事一覧を作成するプラグイン (WordPress)

WordPressで投稿した記事をカテゴリー別やタグ別などで一覧表示させるプラグインがあります。List category postsというプラグインですが、簡単なコードで投稿や固定ページに一覧を表示できます。数個のリンクであれば手作業でも可能ですが、カテゴリー内の投稿が増えたり減ったりした場合にも自動で更新されます。

プラグインをインストールした後、以下のように記述すると、カテゴリーの一覧が表示されます。

[catlist name=カテゴリー名]

他にもカテゴリーIDやタグでのリスト作成も可能です。ブログ形式ではなく、企業や商品紹介のホームページにWordpressを使用したときに便利です。このプラグインに設定メニューなどはありません。パラメータでコントロールします。細かいパラメータの説明はこちらをご覧下さい。

パスワードは覚えない

Webサービス等で利用されるパスワードにはいろいろ制約があります。8文字以上だったり、英数字を含めたり、Apple IDなどは大文字小文字を混ぜることを指定されたり、場合によっては記号を入れることを強制されたりします。

複数のサイトで同じパスワードを使うのも気が引けるので、パスワードは増えるばかりです。

ほとんどのサイトで、「パスワードを忘れたときは?」というリンクがあり、そこからメールでパスワード再設定のページへの案内が出るように自動化されています。こんな風になったので、もう、積極的に覚えるのをやめることにしました。この方法ならパスワードの再発行にそれほど時間はかかりません。以前は郵送のみの受付ということもありましたが、現在では皆無です。

よく使うサービスでは自然に覚えます。そのほかのサイトは、「困ったときは再設定」と決めたことで気が楽になりました。

今まではPhotoshopで画質を調整していました(WordPress)

kotalog.netのこの記事や、かちびと.netのこの記事にあるとおり、Wordpressにアップロードした画像の縮小をするときには、このimage_resizeというスクリプトが使われているようです。ここの画質の設定がデフォルトでは90になっていますので、こちらを95などに上げるとリサイズしたときの画質が向上します。当然ファイルサイズも増えてしまいますが、そもそも、縮小することが多いですので、そこまで問題になるサイズではないと思います。

ここで用いられているコマンドのリファレンス的なものはこちらです。

テーマの更新には属性の変更を(WordPress)

Coreserverなど、Wordpressテーマファイルのパーミッションが書き込み禁止となるサーバーでは、テーマの編集を行うと、「変更を保存するには事前にこのファイルを書き込み可能にする必要があります。詳しい情報は Codex を参照してください。」と表示され、保存できません。

wordpressフォルダ以下の、”wp-content\theme\テーマ名\”中の編集したいファイルの属性を666などに設定すれば、書き込み可能となり、「更新」ボタンが表示されます。

WordPressの丸ごとバックアップはBackWPupで

WordPressのデータは記事や設定はデータベース(MySQL)に、画像等のデータや、プラグインなどは、そのままファイルとしてディレクトリに保存されています。

バックアップは手動でも可能ですが、プラグインを用いると自動かつ定期的に行うことができます。

いくつか試してみて便利だったのはBackWPupです。データベースのバックアップのみだったりするプラグインも多く見られますが、こちらはデータベースとファイルをすべてひとまとめにバックアップできます。バックアップ先は、以下のいずれかに設定できます。

  • 同じサーバの別ディレクトリ
  • E-mail
  • FTP
  • DropBox
  • SugarSync
  • Amazon S3
  • Google Storage
  • Microsoft Azure (Blob)
  • Rackspace Cloud

上記の様に対応が幅広いのも特徴です。

バックアップの最大数も決められるので、バックアップ先で使える容量をみながら設定できます。バックアップの状況もログを残したり、コンソールが表示されますので、バックアップにかかる時間なども予想できます。バックアップはバックグラウンドで行われるので、Wordpressへのアクセスに支障はありません。複数のバックアップを設定することもできるので、記事のみを毎日E-mailで、全体を週に1回FTPで行うというような設定も可能です。

DropBoxやSugarSyncは無料でGB単位の容量を利用できるので、通常のブログであれば、十分バックアップ可能だと思います。

堅牢性ではAmazon S3などを利用するのが良いのかもしれませんが、それならいっそAmazon EC2などでWordpressを立ち上げた方がよさそうです。

ちなみに、FTPはPHPのftp_connectを使うので、さくらのレンタルサーバ(スタンダード、2012年3月時点)のPHPでは使用できないようです。

 

 

期日指定で投稿を非公開にするプラグイン Post Expirator (WordPress)

企業ホームページで臨時休業などのお知らせなどは、用が済んだら表示しないほうが望ましいです。

WordPressでは指定日に公開は標準で対応していますが、指定日に投稿を非表示にする機能はありません。

今回紹介するプラグインはPost Expirator で、その名の通り指定した期日に投稿を非表示(下書きまたは削除)にします。

プラグインをインストールすると、投稿の編集ページに公開期限の設定欄が現れるので、そこで日時を指定します(Post Expirationのチェックも入れる)。いまのところ、世界標準時での設定なので、日本時間で設定する場合は、+9:00で設定します。投稿記事の一覧でも公開期限が確認できます。

オプションで、下書き状態にするのか、削除するのか、またはカテゴリーを変更するのかといった設定が可能です。