2

コメントフォームに間違った情報(名前やメールアドレスがないなど)を入力すると、wordpressは関連するエラーメッセージを含む空のページを返します。グーグルで検索しましたが、この応答をカスタマイズする方法が見つかりませんでした。

誰かがそれを行う方法を知っていますか?

4

4 に答える 4

2

この特定の問題については、\wp-comments-post.php を直接変更することになりました。テーマ エンジンではカスタマイズできません。

私が行ったことの簡単な説明は、「wp_die()」の使用をバイパスし、代わりに、ブログのコメント投稿が検証されないシナリオでスクリプトに「my_wp_die()」を実行させることです。

次に、一連の例を示します。

1) ユーザーが記事ページにアクセスします (テーマで single.php を呼び出します)
2) ユーザーがコメント フィールドに情報を入力します (検証する場合としない場合があります)
3) 記事の「wp-comments-post.php」へのフォーム投稿パラメータとして URL を使用すると、適切なビジュアルを備えたページに検証結果を返すことができます (サイドバー: サイトのテンプレートをテーマに複製する代わりに、作成した外部のテンプレート ライブラリをフックすることができませんでした。テーマ) とユーザー フォーム フィールド。
4) wp-comments-post.php はmy_wp_die()、検証していない場合 ( /comment.php:function からの重複チェックを含むwp_allow_comment())、またはmy_wp_success()コメントが有効で投稿された場​​合に呼び出されます。
5) wp-comments-post.php は、ユーザーを記事の URL (元のパーマリンク) に戻します。
6) テーマの single.php には、エラー/成功メッセージと新しいコメントが表示されます。

于 2010-01-27T02:44:07.650 に答える
1

エラーページを単純化してカスタマイズすることについて何も見つけることができませんでしたが、wp-comments-post.php を一目見ただけで、エラーが発生すると、エラーページを生成する関数wp_dieが実行されることがわかります。エラーページの出力を制御するいくつかの引数を取るようですが、それらのオプションが何であるかについての詳細を見つけることができませんでした. wp_die を少し調整するだけで、独自のカスタム エラー ページを表示できるようになります。これが役立つかどうかはわかりませんが、開始する場所です。

于 2009-01-27T05:51:05.870 に答える
0

関連するメモとして、エラーページがInternetExplorerに正しく表示されることを確認してください。私は最近問題を経験し、残念ながらそれを理解するのに数時間を費やしたので、これについてのみ言及します。

一言で言えば、WordPressが生成する一般的なエラーページ(たとえば、「ユーザーコメント」の検証が失敗した後)は、「500InternalServerError」のHTTPステータスコードでブラウザに送信されます。奇妙なことに、Internet Explorer(バージョン7より前)は、ページが512バイト未満の場合、 「500」で送信されたエラーページを無視し、代わりに一般的なMicrosoftの「このページを表示できません」というエラーメッセージを表示します。

WordPressの連中はこのバグについて知っており、エラーページが512バイトより大きくなるようにwp_die()関数を作成しました。残念ながら、パフォーマンスのためにgzip圧縮を使用する(つまり、ネットワーク経由で送信される前にWebページを縮小する)Webサーバーを考慮していませんでした。Webサーバーがgzip圧縮を使用している場合、Internet Explorer 5/6は一般的なWordPress(v2.7以前)のエラーページを表示しません。

これに遭遇した他の人々の助けになる場合は、私が開いたWordPressのバグへのリンクや、一時的な回避策の手順など、問題をより詳細に説明するブログ投稿(スクリーンショットを含む)を作成しました。バグが適切に修正されるまで使用されます。詳細については、 http://www.clintharris.net/2009/ie-512-byte-error-pages-and-wordpress/を参照してください。

于 2009-02-05T02:38:42.223 に答える
0

私はこれについて自分自身を困惑させてきました.WPの最新バージョンには、私が見る限り、それ以上の機能強化はないようです.

ただし、私の解決策は、Javascript でクライアント側のフォーム検証を行うことでした。送信ボタンにイベント ハンドラーをアタッチし (例: submit.onclick を使用)、それを JS 検証関数にリンクしてデータをチェックし、失敗した場合はフィードバックを提供します (問題のあるフォーム フィールドの周りの赤い境界線など)。

フォームが送信されないように、データが検証に失敗した場合は preventDefault を使用することを忘れないでください!

もちろん、Javascript が有効になっていない場合でもフォームは送信されます。その場合、ユーザーにはデフォルトの WP エラー ページが表示されます。これを回避するには、前述のように PHP オプションを使用できますが、それはより多くの作業が必要になると思います。

于 2013-08-24T18:29:25.527 に答える