サポート » 使い方全般 » ディスカッションの設定が反映されません

  • 解決済 yohey

    (@yohey)


    急に気がついたのですが、【設定】ー【ディスカッション】のチェックが反映されないようです。

    『投稿のデフォルト設定』で【他のブログからの通知・・・】をoffにしても、ヘッダー領域の”<link rel=”pingback”・・・>”が消えません。
    また、『他のコメント設定』で【名前とメールアドレスの入力を必須に・・・】をoffにしても、名前欄の必須項目注意が出現しコメントを送信できません。(メアド欄とurl欄はfunctions.phpで消しています。注意も出ません)

    いつから効かなくなったのか、原因が何なのかも不明です。
    WPのバージョンは3.9-jaで、使用テーマはMagazine Basicを子テーマで管理しています。

    名前欄を未記入のまま(匿名表示)コメントを投稿できるようにしたいです。
    確認すべき箇所、修正すべき箇所をご教示ください。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • フォーラム「【重要】お読みください」に掲載されている問題解決のためのチェックリストの内容を試してみられましたか?

    トピック投稿者 yohey

    (@yohey)

    すみません・・・
    自分なりに検索していたつもりですが解決に至らないもので・・・
    『名前とメールアドレスの入力を必須に・・・』のチェックボックスをoffにしても反映されないという事例を見つけきれませんでした。

    当方で編集した箇所ですが、まず『名前とメールアドレスの入力を必須に・・・』のチェックボックスをoffにして、style.cssに以下を記述しました。

    #email{display:none;}
    
    #url{display:none;}

    結果としてemailとURLの入力欄は消えましたが、コメント送信の際画面の端に『このフィールドは入力必須です』との警告が出てしまい、当然その”フィールド”は表示されていないためコメント送信が出来ませんでした。

    その後、上記のcssを削除して『名前とメールアドレスの入力を必須に・・・』のチェックボックスをoffにしたまま、functions.phpに以下を記述しました。

    add_filter( "comment_form_defaults", "my_comment_notes_before");
    function my_comment_notes_before( $defaults){
    $defaults['comment_notes_before'] = '';
    return $defaults;
    }
    
    add_filter('comment_form_default_fields', 'mytheme_remove_url');
    function mytheme_remove_url($arg) {
    $arg['url'] = '';
    $arg['email'] = '';
    return $arg;
    }

    結果としてemailとURLの入力欄は消えたのですが、名前欄を未入力のままコメント送信すると『このフィールドは入力必須です』との警告が出てしまい、名前欄への入力が必須のままになっているようです。
    ちなみにemailとURLに対する未入力の警告は出ませんし、名前欄は入力さえすればコメント送信も出来ます。
    functions.phpへの追記を誤っているのでしょうか・・・

    テーマを”Twenty Fourteen”に切り換えてテストしたところ、名前とメールアドレス、URLも未入力のまま投稿できました。
    その際の名前欄は”テストピース”となります。

    よろしくお願い致します。

    テーマを”Twenty Fourteen”に切り換えてテストしたところ、名前とメールアドレス、URLも未入力のまま投稿できました。
    その際の名前欄は”テストピース”となります。

    テーマがTwentyfourteenだと希望どおりに動いて、Magazine Basicだとうまくいかない訳ですね。その結果から考えてみたのですが、Magazine Basicが特別なことをしている、例えば[設定]→[ディスカッション]の設定を無視しているのではないでしょうか?

    Magazine Basic を入れてみました。名前とメールアドレスを空にしてコメントを入れて[コメントを送信]をクリックすると、確かに「このフィールドは入力必須です。」と表示されますが、入力チェック方法がTwentyfourteenと異なるようです。Twentyfourteenは画面が切り替わってからエラーが表示されますが、Magazine Basicは画面が切り替わらずにポップアップ表示されますね。

    Magazine Basic を入れた状態でHTMLソースを見ると、コメントフォームのinputタグに下記のような特別な属性が付いていました。

    <input id="author" name="author" type="text" required size="30" placeholder="Name *" aria-required="true" />
    <input id="email" name="email" type="email" required size="30" placeholder="Email *" aria-required="true" />
    <input id="url" name="url" type="url" size="30" placeholder="Website" />
    <textarea id="comment" name="comment" required cols="45" rows="8" placeholder="Comment *" aria-required="true"></textarea>

    [名前とメールアドレスの入力を必須にする]のチェックを外しても、この属性は付いたままです。試しに aria-required="true" を消しても入力必須でしたが、required を消すと入力無しでも大丈夫になりました。

    Magazine Basicのfunctions.phpに下記の記述がありました。このフィルターを子テーマで変更すれば良さそうです。

    add_filter( 'comment_form_default_fields', 'mb_html5_fields' );
    function mb_html5_fields( $fields ) {
    	$fields['author'] = '<p class="comment-form-author"><input id="author" name="author" type="text" required size="30" placeholder="' . __( 'Name', 'magazine-basic' ) . ' *" aria-required="true" /></p>';
    	$fields['email'] = '<p class="comment-form-email"><input id="email" name="email" type="email" required size="30" placeholder="' . __( 'Email', 'magazine-basic' ) . ' *" aria-required="true" /></p>';
    	$fields['url'] = '<p class="comment-form-url"><input id="url" name="url" type="url" size="30" placeholder="' . __( 'Website', 'magazine-basic' ) . '" /></p>';
    
    	return $fields;
    }

    トピック投稿者 yohey

    (@yohey)

    ghvst様

    ご回答ありがとうございます。
    また、Magazine Basicでの動作テストまでして頂き、深く感謝致します。

    ご指摘の箇所のrequired属性を消したところ、当方でも名前欄の入力無しで問題なくコメント投稿できるようになりました。

    ありがとうございました。

    yoheyさん、やりたかったことができて良かったです。

    ご指摘の箇所のrequired属性を消したところ、

    他の方の参考になると思うので差し支えなければ教えて頂きたいのですが
    どのような消し方をなさいましたか?(親テーマで何々、子テーマで何々など)

    トピック投稿者 yohey

    (@yohey)

    ghvst様

    ありがとうございました。
    参考までに修正方法を記述しておきます。
    万が一当方の修正方法に誤りがある場合は補足していただければ助かります。

    =============
    使用テーマ
    Magazine Basic(3.0.4)

    WPバージョン
    3.9-ja

    症状
    ディスカッション『名前とメールアドレスの入力を必須に・・・』のチェックボックスをoffにしても設定が反映されず、名前を未記入のままコメント送信すると『このフィールドは入力必須です』とのポップアップが出現する

    修正理由
    ユーザーから気軽にコメントしていただくため、名前欄とメアド欄の入力必須条件を外したい
    =============

    以下修正方法です。

    当方では子テーマを利用した修正をしておりますので、あらかじめ子テーマ用の『functions.php』を作る必要があります。

    ・Magazine Basic親テーマの『functions.php』内にある以下の記述を、子テーマの『functions.php』にコピーして修正します。(修正箇所をわかりやすくするため【】を追記しています)

    add_filter( 'comment_form_default_fields', 'mb_html5_fields' );
    if ( ! function_exists( 'mb_html5_fields' ) ) :
    /**
     * Adds HTML5 fields to comment form
     *
     * This function is attached to the 'comment_form_default_fields' filter hook.
     *
     * @param	array $fields
     *
     * @return	Modified comment form fields
     *
     * @since 3.0.0
     */
    function mb_html5_fields( $fields ) {
    	$fields['author'] = '<p class="comment-form-author"><input id="author" name="author" type="text" 【required】 size="30" placeholder="' . __( 'Name', 'magazine-basic' ) . ' *" aria-required="true" /></p>';
    	$fields['email'] = '<p class="comment-form-email"><input id="email" name="email" type="email" 【required】 size="30" placeholder="' . __( 'Email', 'magazine-basic' ) . ' *" aria-required="true" /></p>';
    	$fields['url'] = '<p class="comment-form-url"><input id="url" name="url" type="url" size="30" placeholder="' . __( 'Website', 'magazine-basic' ) . '" /></p>';
    
    	return $fields;
    }
    endif; // mb_html5_fields

    ・上記のコードを子テーマの『functions.php』にコピペしたら、墨付カッコで囲ってある『required』という属性を消してください。

    基本的にはこれだけで大丈夫だと思います。

    テーマのMagazine Basicを更新する予定が無い方などは親テーマの『functions.php』を直接編集しても良いかもしれません。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「ディスカッションの設定が反映されません」には新たに返信することはできません。