ウェブデザインとプログラムのナインマイルズ

s9yドキュメント

プラグインの問題

  1. このセクションのオリジナルドキュメント
  2. .. (エキスパートへの質問)

あなたのかかえる問題が次の中にありますか?

検索プラグインでいくつかの単語がヒットしない。

MySQLのストップワード

Serendipityの検索関数では、SQLのフルテキスト検索機能を利用しています。
MySQLではこの機能に「ストップワード」が設定されています。
通常、ストップワードによる単語での検索を行うと、(ほぼ) 全てのエントリが返ってきますので、効率向上のためにMySQLはこれらの単語を無視します。

もしあなたのブログの全てのエントリに現れるような単語を探すのなら、そんな検索は不要ですよね? どうでしょうか。 たとえそんな検索をしようとしてもできませんが。
MySQLは、ストップワード一覧に載っている単語による検索結果は返しませんし、その回避策は一切ありません。

ここにMySQLの標準ストップワードの一覧があります。

長いエントリが切り詰められる。

フォームでの切り詰め

不幸にもウェブブラウザでは、一つのエントリに対するサイズ上限が65Kに制限されています。
もし本当に長いエントリを書きたい場合、最も手っ取り早い解決策は、エントリ入力を2つのパートに分けることです。 一つを「エントリ本文」、そしてもう一つをそれに続く「拡張本文」とします。
何はともあれ、この方法で130Kまでの投稿ができるようになります。

スパムブロックプラグインの設定が保存されない。

スパムブロックプラグインの設定保存

他のプラグインが全て正常に動いているのなら、あなたのサーバはおそらくスパムワードに対するフォーム防御によってあなたを守ろうとしています。
このcatch-22 (※訳者注:相反する規則の意) をご覧ください: ある単語がスパムであることをSerendipityに明示したい際に、それをフォームから行う必要があるのに、プロバイダはその単語がスパムであるとして、フォームをブロックしてしまう!

例えば「.」のような、何らかの空ではない文字を使うことで、スパムワードを無視することができます。
もしその入力欄が空だったら、Serendipityは変更無しと判断するでしょう。

phpMyAdminのようなツールを使えば、データベースに登録されているスパムワードを手動で変更することが可能です。

Serendipity