練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

WordPress のコメント承認機能のメール通知

コメントなし»

ディスカッション設定で

  • コメントが投稿されたとき
  • 承認のためにコメントが保留されたとき

の両方にチェックを入れていると、コメントが投稿されて保留された時に「モデレートしてください」というメールが届いて、そのメールから管理画面をひらいて承認すると、更に「新しいコメントがありました」というメールが届きます。

(WordPress ではコメントとトラックバックは同じ扱いなので、トラックバックの場合も同様)

自分で承認したのですから、表示された時のメールは邪魔なだけですね。
複数人で運営している時に使う機能なのでしょうか。

面倒くさいので、

  • コメントが投稿されたとき

のチェックを外し、

  • 管理者の承認を常に必要とする

のチェックを入れてみました。

あと、

  • すでに承認されたコメントの投稿者のコメントを許可し、それ以外のコメントを承認待ちにする

の設定が優先するか分からない(優先されるなら該当コメントの通知がなくなってしまう)ので、念のためチェックを外しました。

まあコメントもトラックバックも滅多にないんですけどね……。

WordPress 3.0.1 用パッチ

コメントなし»

-- が化けないようにしてみた

そのまま適用。

wp-includes フォルダにある formatting.php から、以下の部分を探します(wptexturize 関数の中にあります)。

$curl = str_replace($static_characters, $static_replacements, $curl);

これをコメントアウトするか削除します。

────
X680x0 が X680×0 に差し替えられてしまうのを修正

正規表現が /(\d+)x(\d+)/ から /\b(\d+)x(\d+)\b/ に変わって、X680x0 にはマッチしなくなりましたが、
680x0 ではマッチするし、それ以外にもいつ影響をうけるか分からないので適用。

wp-includes フォルダにある formatting.php から、以下の部分を探します(wptexturize 関数の中にあります)。

$dynamic_characters = array('/\'(\d\d(?:&#8217;|\')?s)/', '/\'(\d+)/', '/(\s|\A|[([{<]|")\'/', '/(\d+)"/', '/(\d+)\'/', '/(\S)\'([^\'\s])/', '/(\s|\A|[([{<])"(?!\s)/', '/"(\s|\S|\Z)/', '/\'([\s.]|\Z)/', '/\b(\d+)x(\d+)\b/'); $dynamic_replacements = array('&#8217;$1','&#8217;$1', '$1&#8216;', '$1&#8243;', '$1&#8242;', '$1&#8217;$2', '$1' . $opening_quote . '$2', $closing_quote . '$1', '&#8217;$1', '$1&#215;$2');

上の行の , '/\b(\d+)x(\d+)\b/' と、下の行の , '$1&#215;$2' をそれぞれ削除します。

────
WordPress のトラックバック機能を調整

そのまま適用。

wp-includes フォルダにある comment.php から、以下の部分を探します(trackback 関数の中にあります)。

$options['timeout'] = 4;

430 に変更します。

Trackback URL を表示するパッチの方は、comments.php ではなくテーマの single.php の方に入れていたので、今回は触っていません。

────
WordPress 記事編集画面の投稿のタグ機能を修正

そのまま適用。

wp-admin/js フォルダにある post.js から、以下の部分を探します(一か所だけの筈です)。

.keyup

これを .keypress に変更します。

その少し後ろに以下のコードがあるので削除します。

.keypress(function(d){if(13==d.which){d.preventDefault();return false}})

────
WordPress 記事編集画面のクイックタグを改造

そのまま適用。

wp-include/js フォルダにある quicktags.js から、以下の部分を探して削除します。

edButtons[edButtons.length]=new edButton("ed_more","more","<!--more-->","","t",-1);

同じく、以下の部分を探して削除します。

document.write('<input type="button" id="ed_spell" class="ed_button" onclick="edSpell(edCanvas);" title="'+quicktagsL10n.dictionaryLookup+'" value="'+quicktagsL10n.lookup+'" />');

次に、以下の部分を探します。

onclick="edInsertTag(edCanvas, '+a+');"

この直後に ondblclick="edInsertTag(edCanvas, '+a+');" を追加します。

────
WordPress 覚書 記事の編集画面で「カテゴリー」にスクロールバーを出さない

そのまま適用。

wp-admin/css フォルダにある wp-admin.css から、以下の部分を探します。

#linkcategorydiv div.tabs-panel{height:200px;

200px を適当な数値に変更します(うちの場合は 300px)。

────
WordPress 覚書 記事の編集画面の「カテゴリー」でチェック状態で並び替えない

WordPress 3.0.0 からタクソノミー(taxonomy)という機能が強化された関係でチェックリストを表示する関数が少し変わっていたので、対応しました。

wp-admin/includes フォルダにある meta-boxes.php から、以下の部分を探します(post_categories_meta_box 関数の中にあります)。

<?php wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy, 'popular_cats' => $popular_ids ) ) ?>

$popular_ids の直後に , 'checked_ontop' => false を追加します。

[2010-11-16 追記] メタキャラクタのエスケープを漏らしていてきちんと表示されなかったのを修正しました。

WordPress を 3.0.1 にアップデートしてみた

コメントなし»

今まで WordPress 2.8.2 を使っていて、メリットとデメリットを考えて 3.0 がリリースされてもアップデートしていませんでしたが、管理画面で常に 3.0.1 にアップデートしろと表示されるのが鬱陶しくて仕方なくアップデートしました。

とりあえず問題はないっぽいです。
.php ファイルを直接書き換えていたパッチを当て直す手間がかかりましたが。

投稿タグで日本語変換を Enter で確定するとその瞬間にタグが追加されてしまう素晴らしい挙動はそのままでした。

-- が化けないようにしてみた

コメントなし»

ハイフンを二つ繋げた -- が勝手に &#8211; すなわち – に変換されてしまい、いろいろと問題があるので、勝手に変換されないようにしてみました。
他にも「 (tm)」→「™」などの変換もありますが、一式まとめて無効化します。

wp-includes フォルダにある formatting.php から以下の部分を探します(wptexturize 関数の中にあります)。

$curl = str_replace($static_characters, $static_replacements, $curl);

これをコメントアウトするか削除します。

編集画面に「最新の日時に置き換え」ボタンを追加

コメントなし»

WordPress › フォーラム » 管理画面の公開日時の下にオリジナルのボタンを追加したい

とりあえずメモ。
そのうち導入するかも。
ファイルを増やすのはあとあと面倒になりそうなので避けたいけど。

X680x0 が X680×0 に差し替えられてしまうのを修正

コメントなし»

X680x0 と書くと勝手に X680×0 になってしまうのを修正しました。

以下、適用手順。
wp-includes フォルダにある formatting.php から以下の部分を探します(wptexturize 関数の中にあります)。

$dynamic_characters = array('/\'(\d\d(?:&#8217;|\')?s)/', '/(\s|\A|[([{<]|")\'/', '/(\d+)"/', '/(\d+)\'/', '/(\S)\'([^\'\s])/', '/(\s|\A|[([{<])"(?!\s)/', '/"(\s|\S|\Z)/', '/\'([\s.]|\Z)/', '/(\d+)x(\d+)/');
$dynamic_replacements = array('&#8217;$1','$1&#8216;', '$1&#8243;', '$1&#8242;', '$1&#8217;$2', '$1' . $opening_quote . '$2', $closing_quote . '$1', '&#8217;$1', '$1&#215;$2');

上の行の最後 (\d+)x(\d+) で、数字に挟まれた x を探しています。
そして下の行の最後 $1&#215;$2 で、x を × に差し替えています。

と言う訳で、上の行の , '/(\d+)x(\d+)/' と、下の行の , '$1&#215;$2' をそれぞれ削除します。

WordPress でトラックバックを送るときの注意点

コメントなし»

WordPress でトラックバックを送信した直後に、記事内容に間違いを見つけたり書き加えたいことを思いついたりした場合。

すぐに編集画面を開いて書き換えて「更新」ボタンを押すと、送信処理が完了していないトラックバック(「トラックバック送信先」のテキストボックスに入ったままになっているもの)を、再度送信してしまうっぽい。

その結果、同じトラックバックをいくつも送信してしまうことになるようです。

だから、記事の公開直後に編集する際は「トラックバック送信先」が空になったか確認し、なってなければしばらく待ってから再度編集画面を開き直す。

# 一度送信したら「送信中」、エラーになったら「送信エラー 再送信しますか?」のように分けてくれればいいのになぁ。

WordPress のトラックバック機能を調整

コメントなし»

SiteMix のブログからはてなダイアリーにトラックバックを送ったら、送信出来ているのに「トラックバック送信先」に残ってしまいました。

以下のサイトを参考に、wp-includes/comment.php のタイムアウトの値を30秒に変更。

WordPressから(公式ブログへの)トラックバック不調の件 « 雑多なブログ

ん? もしかして記事投稿時に相手サーバの応答が遅いと、完了画面が出るまで30秒待つ事になるのかな?
次にトラックバックを送るときに確認してみます。

次に、トラックバック URL がどこにも記載されていなかったので、以下のサイトを参考に表示されるようにしてみました。

WordPressでTrackback URLのボックスを表示 | Tech de Go

WordPress は面倒が多いなりよ……。

あとついでに、面倒でそのままにしていた SiteMix の方も、クイックタグとか投稿タグを修正をしたり。

また、こちらのブログで使っている proSlate テーマで、記事の編集リンク(管理者としてログインしていると表示される)が

(Edit) - 2010年 4月 29日 Posted in PC

のように日時の先頭に (Edit) と出て違和感があるので

2010年 4月 29日 Posted in PC - (Edit)

と、末尾に表示されるようにしてみました。

SiteMix で使えない WordPress プラグイン

コメントなし»

My Link Order

データベースのエラーが起きて、動作しません。
SiteMix ではデータベースに関して、ユーザに権限が与えられていない機能があるようです。

WP-Referrers

全くログが記録されません。
エラーが全く表示されないのではっきりしないが、恐らくデータベースのエラーが起きているのだと思います。

最近試した無料ブログ

コメントなし»

前の記事で書いた通り、So-net ブログを移転したのですが、移転先は SiteMix(サイトミックス)というところで、TOK2.com と同じ運営元です。

決め手はこのようなところです。

  • 比較的自由度が高い(WordPress でプラグインやテーマのインストールが出来る)。
  • 容量が大きい(1.5GB)
  • 1ファイルあたりのサイズ制限もあまり厳しくない(10MB)。
  • 広告があまり大きくない(今のところは)。

SiteMix 自体は「WordPress 標準装備の無料ホームページ」で、同じスペースに通常のウェブページを置くこともでき、また CGI が使えたりというところも長所だと思います。
(データベースは有料オプション)

もう一つ、WordPress.com も試しましたが、いろいろ悩むところがありました。

  • 文字のサイズが小さすぎる上、無料アカウントだと CSS の編集が出来ない。
  • 日本語への対応が不十分。
  • アカウントが絶対に削除できない(ブログの削除はできるがアカウントは永久に削除させてもらえない)。

文字のサイズが小さすぎる上に、自分で CSS を編集して大きく出来ないというのが決定打です。
有料プランにするくらいなら、レンタルサーバーで自分で WordPress を入れた方がよいと思いますし(最近は WordPress のインストールを簡単に行う機能がついているところもあります)。

広告がほとんど気にならず、容量も 3GB あるなど素晴らしいサービスだと思うので、字が小さい英語のブログをガシガシ書くなら向いてるかも知れません。