jikkenjo.netjikkenjo.net適当なことを書くか書かないかわからないメモ帳。メニューコンテンツへスキップWordPress3.0新機能、comment_form()が吐き出すソースに違和感4件の返信WordPress3.0(日本語)がリリースされてだいぶ経ちましたが、新しく実装されたcomment_form()を使ってみてどうにも腑に落ちない点があったのでメモしておきます。comment_form()が吐き出すソースがおかしいどうもpタグの対応が取れていない気がします。大元のソースコードを読んでみても原因が掴めないのですが、特定の条件でp閉じタグがひとつ多く出力されていると思います。解決(2010/09/07)コメント欄のgatespaceさんより指摘がありました。不具合の箇所は、カーネルファイルではなく、日本語へのローカライズファイル中にあるとのことでした。日本語訳でのtypoということです。3.0.2以降で修正されるとのことなので、それに期待されるのがよろしいと思います。条件comment_form()を使用するlogin状態にある以上の条件で再現性が確認できました。吐き出されるコードcomment_form()をデフォルト設定のまま、引数を与えずcomments.php内で実行した結果です。このとき、メイン執筆ユーザである「baw」でログイン状態にしてあります(読みやすいよう、多少整形してあります。WordPressが吐き出すソースのインデントは、必ずしも読みやすいというわけではないのが面倒です)。してログインしています。/></form>該当行(8行目)の閉じpタグの対応が行方不明になっているのを読み取っていただけるでしょうか。ログアウト状態なら、この現象に遭遇しません。私の使い方が悪いのかと思い、3.0付属テーマ「twentyten」でも試してみましたが、同じく閉じpの対応が取れていないようでした。そもそもcomment_formの使い勝手が悪いと思います標準化して使いやすくするという設計理論は単純明快で最もだと思いますし、私も全くの同意見です。この関数は酷いと思いませんか。標準化と言っておきながら、引数によってほとんど書き換えられるという、自由といえば聞こえはいいですが、実質縛りがない状態です。実装内容を縛ってもらって、何か特殊なことをやろうと思う人は、この関数を利用しないで各自の責任でformを生成することとしたほうがいい気がします(そもそも、この関数で楽をしようと思っている人は、そこまでカスタマイズしたいと思わない横着者じゃないですか?w)。カスタマイズするとなると、その自由度の高さからほとんど全てを書き換えなければならないですね。こんなのだと、手間はほとんどイコールです。本末転倒な気さえします。まとめここまで非難しておいて、私のミスだったら怖いですね。自由度が高すぎて使い勝手が良くないのは間違いないです。ソースコードが読み解けなかったので、他の方の情報を待ちたいですね。公式フォーラムに張り付いていてみますか。08:34Pタグがひとつ多く出力される件ですが、wp-includesディレクトリに含まれるcomment-template.phpの1537行目末にあるP閉じタグの記述を削除することで訂正することができますよ。この問題がなかったとしても、ソースをクリーンに整理しているとどうしてもコメントフォームがネックになりますね。comment_form()は便利なので、個人的にはcomment-template.phpを編集するようにしています。10:49コメントありがとうございます。実は、現在もcomment_form()は利用しています。タグ云々の記述が邪魔だったので、そこだけは引数で削除しました。指摘してくださった箇所の修正ですが、カーネルファイルを弄るのは、正直気が引けます。アップデートのたびに弄る必要もあるので......。アップデートの期待ということですか。smallなどというわけのわからないタグが利用されている点も気になりますね。確かに、カーネルファイルを直接弄ったほうが、色々と経済的ですよね。考えて見ます、ありがとうございました。11:29こんにちは。comment_form()を検索していてたどり着きました。翻訳ファイル(/wp-content/languages/ja.mo、ja.po)のtypoだそうです。http://ja.forums.wordpress.org/topic/44103.0.2以降で修正される予定だそうですよ。11:38コメントありがとうございます。通りで原因となる箇所を探しても見つからなかったわけですね。見当違いの場所を読み解いていたわけですか......現状はログイン時のみの不具合なため、アップデートを待つこととします。ありがとうございました。コメントを残すメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。WordPress%d人のブロガーが「いいね」をつけました。