Posts Tagged ‘コード’

Internet nerdery means that I can never just look at numbers like this without associating it with the HTTP status code

web上でサイトを見まわっていると時に「404 Not Found」などのエラーが出る事があります。
これはHTMLの規格上設定されたエラー番号(正確にはステータス・コードと言います)なのですが、それぞれ番号によって意味が違ってきます。

■ HTMLにおけるエラーの種類

・403
アクセス権限のないフォルダへのアクセスの際に表示

・404
ページ自体が存在しない場合に表示

・500
CGI等のプログラムのエラー等が起こった際に表示

・503
サーバーアクセス過多状態の際に表示

などなど、他にもステータス・コードは沢山存在しますが、普段目に付くのはだいたい上記のものあたりでしょう。

さて、おしゃれなサイトなんかは「404 Not Found」さえもおしゃれなページが表示されたりする事があります。
これは、「エラー404を踏んだユーザーを指定したページに飛ばす」という処理がなされているからなんですね。

この処理を可能にしているのは「.htaccess」というファイルに書かれているコードです。

■ .htaccessとは

.htaccessとはウェブサーバーがディレクトリごとの動作を制御する為のファイルです。
制御情報は.htaccessの存在するディレクトリと、サブディレクトリ全てに適用されます。
制御の具体的な例としては、IPやドメインによるアクセス制御や、CGIの設定等です。

本筋に戻ります。404エラーを踏んだユーザーを指定のページに飛ばすという事は以下のコードを書いた.htaccessファイルを設置すれば実現できます。

ErrorDocument 404 http://www.example.com/

404の数字を他のステータス・コードに変更すればそれぞれのステータス・コードごとに表示するページを変更する事ができます。
例では存在しないページを訪れた時、ユーザーはhttp://www.example.com/に接続する事になりますね。

ちなみに、.htaccessファイルはWindows上では作る事ができないと思います。先頭に”.”(ピリオド)の付く名前のファイルを作ろうとすると「名前を入力してください」とシステムから警告が出されます。
この先頭に”.”を付けるという形式はもともとUnix系のシステムで隠しファイルにする為の文化なのです。

なので、Windows上ではまず適当な名前を付けて、FTPソフトでアップロードした後に改めて”.htaccess”と名付けてやるのがいいと思います。
基本的に、”.htaccess”はウェブサーバーのウェブ公開ディレクトリのルートにおいてやれば動いてくれます。

photo by: itselea
wordpress30

WordPressのサイドバーの「最近の投稿」Widgetの表示が気に入らなかったので改変してやろうと思い立ちました。(具体的にはタイトルに設定している<br/>が「最近の投稿」の項目にもついてきて汚く改行がされているのを直したかったのです)

まずは普通にWordPressのダッシュボード→外観→テーマ編集からサイドバーのphpをいじって適用してみたんだけど、なぜか反映されません・・・。

「えー?」ってなもんでネットで調べるとテーマの中にsidebar.phpが含まれていない場合は/wp-includes/widgets.phpに~とか書いてあったり、そもそもsidebarはwidget使ってる時は引っ張ってこられないよ等々の情報が錯綜して(頭の中で)めんどくせー事になったぜ・・・。

と思っていた矢先に素晴らしいプラグインを見つけました。

■ PHP Code Widget

です。名前の通りwidgetの中でPHPが実行できるようになる代物です。

プラグインをインストールしたら、外観→ウィジェットにPHP Codeという項目が増えてます。ここにPHPのコードを書くことで実行してくれます。

タイトルを「最近の投稿」と入力して

<ul class="recentEntry">
<?php
foreach(wp_get_recent_posts(5) as $post){
	$title = $post['post_title'];
	$title = str_replace("<br/>", "", $title);
    echo '<li><a href="'. get_permalink($post['ID']) . '" title="' . $post['post_title'] . '">' . $title . '</a></li>';
}
?>
</ul>

という内容を書きました。タイトルから<br/>を削除して「最近の投稿」の項目に加えるという形です。
MRB氏のサイトを参考にさせてもらいました。

これで思惑通りのwidgetが完成しました。このプラグイン、アイデア次第で色々できそうですね~。