WordPressの投稿機能のコメント空を許容する。
所沢市でWebサイト制作を行っているRishunTradingです。
Wordpressでオークションサイトを実現するのに、Wordpressのコメント機能を流用して入札機能を実現していたのですが、Wordpressのバージョン6.1からコメントが空の場合には、デフォルトエラーとして扱われるようになったようです。
そのため、今回は、コメント空を許容する方法について記載します。
1.コメントをどのように使っていたか?
オークションサイトでの入札にWordpressのコメント機能を流用して実現していました。カスタム投稿で商品データを登録し、その投稿データへのコメントを使った入札機能です。コメントには、カスタムフィールドで「入札金額」を入れられるようになっており、当然コメントフィールドが空の場合があるため、コメント空を許容する必要がありました。
2.Wordpressのどこで本事象の制御が行われているか。
WordPressのコメント機能のソースを見てみると以下の箇所でエラーにしている事がわかります。
WordPressのソース
/wp-includes/comment.php
3632行目の以下の部分
$allow_empty_comment = apply_filters( ‘allow_empty_comment’, false, $commentdata );
該当箇所の抜粋
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /** * Filters whether an empty comment should be allowed. * * @since 5.1.0 * * @param bool $allow_empty_comment Whether to allow empty comments. Default false. * @param array $commentdata Array of comment data to be sent to wp_insert_comment(). */ $allow_empty_comment = apply_filters( 'allow_empty_comment', false, $commentdata ); if ( '' === $comment_content && ! $allow_empty_comment ) { return new WP_Error( 'require_valid_comment', __( '<strong>Error:</strong> Please type your comment text.' ), 200 ); } $check_max_lengths = wp_check_comment_data_max_lengths( $commentdata ); if ( is_wp_error( $check_max_lengths ) ) { return $check_max_lengths; } $comment_id = wp_new_comment( wp_slash( $commentdata ), true ); if ( is_wp_error( $comment_id ) ) { return $comment_id; } if ( ! $comment_id ) { return new WP_Error( 'comment_save_error', __( '<strong>Error:</strong> The comment could not be saved. Please try again later.' ), 500 ); } |
3632行目(上記だと9行目)のこの部分で$commentdata(コメント)が空かどうかを判定しており、空の場合には、3634行目(上記だと11行目)でエラー文言を出力しています。
3.コメント空を許容する。
ご使用テーマのfunctions.phpなどに、以下の処理を加えれば、コメント空が許容できます。具体的には、comment.phpの3632行目にフィルターフックをかけ、強制的にtrueを返却するようにしています。
1 2 3 4 5 6 7 | //-------------------------------------------------------------- // コメント投稿:コメント無しを許容 //-------------------------------------------------------------- add_filter('allow_empty_comment', 'customize_allow_empty_comment', 10, 2 ); function customize_allow_empty_comment($allow, $commentdata){ return true; } |
以上です。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル