WordPressで構築したサイトに.htaccessでアクセス制限をかけた際、サイトのトップページ以外が404エラーで表示されない時の対処メモ。パーマリンクを再度設定し直すと何故だか直る。一度別のパーマリンクを選択して更新、そしてもう一度もとに戻す。毎度思うけど、なんですかねこれ。こういうもんなの?
ブログなどでカテゴリー一覧を表示させるときに便利なwp_list_categories()のメモ。文字列の箇条書きリストでカテゴリーを出してくれるけど、その時リストの外側に”カテゴリー”という文字が吐き出されてこれが何とも邪魔だったりする。消し方は、title_liパラメータを入れてやるだけ。その他にも色々と使えそうなパラメータが多数存在します。
<?php wp_list_categories("title_li="); ?>
出力結果はこんな感じ。<li class="cat-item cat-item-8"><a href="http://sugiyamayusuke.org/log/category/event" title="eventについてのエントリーです。">event</a> </li> <li class="cat-item cat-item-11"><a href="http://sugiyamayusuke.org/log/category/journal" title="journal に含まれる投稿をすべて表示">journal</a> </li> <li class="cat-item cat-item-9"><a href="http://sugiyamayusuke.org/log/category/memo" title="memoについてのエントリーです。">memo</a> </li> <li class="cat-item cat-item-12"><a href="http://sugiyamayusuke.org/log/category/mono" title="mono に含まれる投稿をすべて表示">mono</a> </li> <li class="cat-item cat-item-13"><a href="http://sugiyamayusuke.org/log/category/music" title="music に含まれる投稿をすべて表示">music</a> </li> <li class="cat-item cat-item-7"><a href="http://sugiyamayusuke.org/log/category/works" title="worksについてのエントリーです。">works</a> </li>
記事に画像アップロードしてもまったく表示されないという現象に見舞われました。よくよく見てみると、リンクURLの部分にhttp://example.org/?attachment_id=22なるものが表示されていました(何をしたというわけでもないけど実際は何らかのことをしているのを忘れているだけな気がする)。
このせいで画像が表示されていなかった様。画像は表示されないのはURLを書き換えれば解決したけど、attachment_idページが意図せず生成され、尚且つ削除もできず困っていました。さらに調べてみるとattachment_idページをそのままにしておくと、このページに対してスパムがやってくるとのこと。それはなんとなく黙ってはいられません。
このattachment_idを非表示にする方法ですが、以下の手順で可能だそう。フォーラムを参考にさせていただきました。
1.以下の内容を記述したattachment.phpを作成
<?php @header(“HTTP/1.1 404 Not found”, TRUE, 404); ?>2.WordPressがインストールされているテーマのフォルダの中にアップロード
WordPressで何らかの親カテゴリーに属する子カテゴリー名だけを表示させるときのメモ。
こちらの記事を参考にさせて頂きました。
[WordPress]カテゴリを複数選択して投稿した際に、任意の指定したカテゴリ名のみを表示
以前、子カテゴリー名のみををすんなり表示できるテンプレートタグが見当たらなかったので、以下のようにしました。
<?php $cat = get_the_category(); $cat = $cat[1]; { echo $cat->cat_name; } ?>
複数選択したカテゴリー(親カテゴリーと子カテゴリーひとつ)の配列の2番目を取得し、表示させるというもの。その時はこれで意図するような表示ができたのでカテゴリーの並びは親カテゴリー→子カテゴリーの配列になるものだと思っていたけれど、それはたまたまだったようです 汗。色々と試した結果、どうやらIDは関係なくカテゴリー名が「ひらがな」「カタカナ」「漢字」「アルファベット」などの言語と、その文字数に関係していそうな気がしてきました。何が正解かは未だはっきりしていません…。
<?php
if(have_posts()) :
while(have_posts()) :
the_post();
$categories = get_the_category();
foreach($categories as $category) :
if(cat_is_ancestor_of(7, $category))
echo $category->cat_name . ' ';
endforeach;
endwhile;
endif;
?>
テンプレートタグ/comments numberを使ってコメント数を表示するとき、パラメータの書き方をいっつも忘れてしまうのでもういい加減メモしておきます!
例)
<?php comments_number('no comment', '1comment', '%comment'); ?>
左から「コメントなしの場合」・「1件の場合」・「複数の場合」の表示方法。
WordPressにて本文の抜粋を取得する際にテンプレートタグthe_excerpt。これを使用すると文末に[...]が表示されるけれど、個別記事へのリンク機能は果たしていません。今回は[...]にパーマリンクを付ける方法を忘れないうちにメモしておきます。
調べてみたところ方法は多数存在するようで、いくつか試してみました。それらはほとんどがfunctions.phpに関数を記述するというものでしたが、何故かどれも上手くいかず…。どうしたものかと考えた倦ねた結果、WP Multibyte Patchプラグインの中身を触ってみることに。(作者様、申し訳ありません…)無理矢理なんだとは思うけれどなんとかこれでいけました。
201行目辺りに記述してあるexcerpt_moreについての一文
$excerpt_more = apply_filters('excerpt_more', ' [...]');
を
$excerpt_more = apply_filters('excerpt_more', '<a href="' . get_permalink() . '">' . __(' ...') . '</a>');
とすることで成功。
2011年4月5日現在
※WP Multibyte Patchプラグインのバージョンアップに伴い、内容が変更されているようです。
$excerpt_more = apply_filters('excerpt_more', $this->conf['excerpt_more']);
の部分を$excerpt_more = apply_filters('excerpt_more', '<a href="' . get_permalink() . '">' . __(' ...') . '</a>');
これでうまくいくと思います。
初心に返ってWordPressを導入する際の基本的な過程と、導入後しておいたほうがいいかなと思う事をまとめておきたいと思います。少々長くなりそうですが。
1.まず、サーバーを借りる
現在の日本語WordPressのバージョン2.9.2(英語版は先日、3.0「セロニアス」がアップデートされました。)を使用する際はPHP バージョン 4.3 以上、MySQL バージョン 4.1.2 以上の要件を満たすサーバが必要です。サーバをレンタルする際はこの要件を確認してからにして下さい。paperboy&co.が提供しているレンタルサーバロリポップやhetemlには先日WordPress簡単インストールという機能が登場したので、とりあえずWordPressを触ってみようという方にとっては比較的楽に導入できると思います。一度簡単インストールを触ってみましたが、本当に簡単であっという間にインストール出来ました。
2.データベースの作成
レンタルサーバでデータベースを作成します。作成方法は、各レンタルサーバに説明があると思います。
※補足 独自ドメインを使う
サーバを借りるだけでもWordPressを始めることはできますが、その際URLは各レンタルサーバ専用のURLを使用することになります。例えば、ロリポップならhttp://○○○.lolipop.jp、さくらサーバならhttp://○○○.sakura.ne.jpなど。これでも問題なくブログを始められますが、折角なら自分専用のURLを使って始めたいところです。ドメイン取得サービスで好きなドメインを取得し、それをサーバに反映させます。これでOKです。方法は各レンタルサーバのサイトに記載されていると思います。
3.WordPressをダウンロードする
WordPressのzipファイルを本サイトからダウンロードし、解凍します。
4.WordPressをサーバにアップロードする
FTPソフトを使用して、サーバにアップロードします。ぼくの環境はMacならCyberduck、windowsならFFFTPを使わせてもらっています。
5.アップロードが完了したらそのURLにアクセスしインストール
例えば、WordPressをサーバー/blogというディレクトリの中にアップロードした場合は、http://example.com/blogにアクセスします。すると、データベース情報を入力する画面が現れるのでそこに先ほど作っておいたデータベースの情報を入力します。その後はブログのタイトルと検索エンジンに登録するか否かを決定したらインストール終了です。
ブログタイトルは後で変更できるのでご安心を。ここまでで一通りの導入作業は終了ですが、その後少なくともしておいた方がいいことまでメモしておきます。
6.別の管理者を新規で作成
デフォルトの管理者adminをそのまま使用するのは少々危険なので、これから使っていくアカウントを別に新たに作成します。管理画面のユーザー>新規追加から行います。新しいアカウントができたら一度ログアウトし、新アカウントでログインします。そしたら、adminは消してしまいましょう。この時、これまでの記事などを管理する権限を新アカウントに継承させておいてください。(この作業をする前に記事を書いている場合のみ)
7.最低限入れておいた方がいいプラグインを入れる
初期段階で入れておきたいプラグインを色々あるとはおもいますが少しだけまとめておきます。
Akismet:
スパム対策のプラグイン(AkismetのAPIキーが必要です。無料で取得できます。)
WP Multibyte Patch:
日本語版 WordPress のマルチバイト文字の取り扱いに関する不具合の累積的修正と強化を行うプラグイン
brBrbr:
キーボード入力の改行を反映させる為のプラグイン
Google XML Sitemaps:
ロボット向けのXMLサイトマップ作成プラグイン(ちょっとしたSEO対策)
Ktai Style:
携帯電話対応 (5キャリアおよびスマートフォン対応) にするプラグイン(対応させたい場合)
WordPress.com Stats:
簡単なアクセス解析をしてくれます。(こちらもAPIキーが必要です。)
他にも色々ご意見はあるとは思いますが、これくらいでいいかと思います。さあ記事を投稿してみましょう。
以上簡単ではありますが、終了です。何か間違いがありましたらお知らせくださいませ。
関連エントリー
WordPressの「改行」についてのメモです。
WP Multibyte Patch
WordPress.com Stats導入における注意点。
WordPressで記事を編集する際に困ったことがあると思います。改行です。複数行の改行を行いたいとき、1行以上はどうしても反映してくれません。それがものすごく不便というか気持ち悪いというか。これは、XHTMLの文法上、brを2つ以上連続で使用することを非推奨としているので、WordPressでそういう仕様にしているみたいです。
WordPressを使い始めた当初この件に直面したのですが、brBrbr というプラグインが解決してくれました。今更ですがメモにしておきます。これを使用することで1行以上の改行が可能になります。
brBrbr
こちらのサイトからzipファイルをダウンロードし、wp-content/pluginsにアップロード&有効化してください。その後、記事を編集する際、ただ改行するだけです反映されます。これでストレスを感じなくなり、心地よく記事が書けるようになりました。
お問い合わせフォームを簡単に設置できるWordPressのプラグイン、ContactForm7の実装についてのメモです。内容は、お問い合わせ先を複数設置して、その送り先を選択させるというものです。
今回のお問い合わせフォームの場合ラジオボタンの選択項目を、福岡・佐賀・長崎・熊本・鹿児島・宮崎と6つ用意し、更に福岡・佐賀宛のメッセージは福岡のメールアドレスに送信。長崎宛のメッセージは長崎のメールアドレスに送信。熊本・宮崎・鹿児島宛のメッセージは熊本のメールアドレスに送信。佐賀・宮崎・鹿児島の専用メールアドレスがない場合です。少し解りづらいので図にしてみます。
といった状況です。そこでこの場合当然必要となってくるのが、
福岡(例 fukuoka@sugiyamayusuke.org)
長崎(例 nagasaki@sugiyamayusuke.org)
熊本(例 kumamoto@sugiyamayusuke.org)
の三つのメールアドレスです。それらのメールアドレスをフォームタグを使用してフォームテンプレートに入れこんであげます。
[radio your-recipient "福岡|fukuoka@sugiyamayusuke.org" "佐賀|fukuoka@sugiyamayusuke.org" "長崎|nagasaki@sugiyamayusuke.org" "熊本|kumamoto@sugiyamayusuke.org" "宮崎|kumamoto@sugiyamayusuke.org" "鹿児島|kumamoto@sugiyamayusuke.org"]
今回、フォームを作る必要があったので、初めてWordPressのプラグインContactForm7を使用させて頂きました。ということで、まず実験的にぼくのブログに実装してみようと試みた際のメモです。
1.ContactForm7をダウンロードし、解凍します。
2.wp-content/wp-plugins/以下にフォルダごとコピーしアップロードします。
(※wordpress管理画面のプラグインの新規追加から簡単インストールする事も可能です。)
3.プラグインの管理画面でContactForm7を有効化します。
4.その後設定画面でフォーム作成します。
基本的にデフォルトの設定で使用可能ですが、欲しい機能を追加したり、見た目のデザインを変更したりと、幅広い用途に合わせたオリジナルのフォームが作成できます。今回はとりあえず、このような形に落ち着きました。フォームに関する詳しい設定内容や、デザインのカスタマイズ方法はまた後日Contact Form 7実践編にてメモすることにします。ひとまず出来てよかったです。とっても使いやすい、便利なプラグインでした。
<?php the_content(); ?>
<?php the_excerpt(); ?>
WordPress の開発者およびユーザーの多くはマルチバイト文字以外の言語圏の人であるため、日本語の取り扱いが考慮されていなかったり、不十分な箇所がまだあります。そこで重要なのがWP Multibyte Patch。WordPress日本語版のマルチバイト文字に関する修正を行うプラグインです。メール送信、トラックバック受信、ピンバック受信、検索等で発生する障害に対して対策を行ってくれるらしいです。WPを触りだした当初(他者制作テンプレート使用)、このプラグインが有効・無効どちらでも何ら影響がなくあまりピンと来なかったのだけど、今回テンプレートを制作する上で有難みを感じたのです。WP日本語版に初めから同梱されている理由をここで理解することになりました。
日本語・マルチバイト特有の問題には以下のものが挙げられます。
—————————————————————————————————
■文字コードに関する問題