前提・実現したいこと
wp で固定ページのコメントをカスタマイズしました。表示項目追加、ラジオボタン設定などfunction.phpに設定しました。
固定ページAとC → 項目1,2,3,4,5
固定ページB → 項目1,2,4,5
ここに質問の内容を詳しく書いてください。
テーマはcocoonです。
固定ページA,Cでは 名前、お住い、画像(アバター領域を使って複数のアバターからラジオボタンで画像を選択してコメント欄に表示)、メールアドレス、コメント欄の順に表示しています。
固定ページBでは、画像の選択や表示は不要なので省きたいのです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード // /*コメント項目の追加20210327*/ add_filter( 'comment_form_default_fields', 'add_comment_fields' ); function add_comment_fields( $fields ) { $fields['jyuu'] = '<p class="comment-form-jyuu"><label for="jyuu">' . __( 'お住まい(都道府県または国)' ) . '</label>' . '<input id="jyuu" name="jyuu" type="text" size="25" /></p>'; return $fields; } //comment-post.phpに設定// //コメント送信先 add_action( 'comment_post', 'add_comment_meta_values', 1 ); function add_comment_meta_values( $comment_id ) { if ( isset( $_POST['jyuu'] ) ) { $jyuu = wp_filter_nohtml_kses( $_POST['jyuu'] ); add_comment_meta( $comment_id, 'jyuu', $jyuu, false ); } } //管理画面にコメント追加項目を表示 function manage_comment_columns($columns) { $columns['jyuu'] = "お住まい"; return $columns; } function add_comment_columns($column_name, $comment_id) { if( $column_name == 'jyuu' ) { $jyuu = get_comment_meta( $comment_id, 'jyuu', true ); echo attribute_escape($jyuu); } } add_filter( 'manage_edit-comments_columns', 'manage_comment_columns' ); add_action( 'manage_comments_custom_column', 'add_comment_columns',null, 2); //コメント一覧に追加項目を表示// add_filter( 'get_comment_author_link', 'attach_area_to_author' ); function attach_area_to_author( $author ) { $jyuus = get_comment_meta( get_comment_ID(), 'jyuu'); if ( $jyuus ) { foreach ($jyuus as $jyuu) $author .= '(' . $jyuu . ')'; } return $author; //コメント者の後に続けて出力。 } //スレッドの内容20210327 function thread_comment($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>"> <div id="comment-<?php comment_ID(); ?>"> <div class="comment-listCon"> <div class="comment-info"> <?php echo get_avatar( $comment, 100 );//アバター画像 ?> <?php printf('<span class="admin">名前:<cite class="fn comment-author">%s</cite></span> ', get_comment_author_link()); //投稿者の設定 ?> <?php printf('<span class="required">お住まい:<cite class="fn comment-jyuu">%s</cite></span> ', get_comment_jyuu_link()); //お住まいの設定 ?> /* <?php echo get_comment_meta( $comment->comment_ID, ‘jyuu’, true ); ?><br>*/ /* get_comment_meta($comment->comment_ID, 'jyuu', true) printf( __( '<span>お住まい:</span><cite class="fn">%s</cite>' ), get_comment_meta($comment->comment_ID, 'jyuu', true) );*/ <span class="comment-datetime">投稿日:<?php printf('%1$s %2$s', get_comment_date('Y/m/d(D)'), get_comment_time('H:i:s')); //投稿日の設定 ?></span> <span class="comment-id"> ID:<?php //IDっぽい文字列の表示(あくまでIDっぽいものです。) $ip01 = get_comment_author_IP(); //書き込んだユーザーのIPアドレスを取得 $ip02 = get_comment_date('jn'); //今日の日付 $ip03 = ip2long($ip01); //IPアドレスの数値化 $ip04 = ($ip02) * ($ip03); //ip02とip03を掛け合わせる echo mb_substr(sha1($ip04), 2, 9); //sha1でハッシュ化、頭から9文字まで出力 //echo mb_substr(base64_encode($ip04), 2, 9); //base64でエンコード、頭から9文字まで出力 ?> </span> <span class="comment-reply"> <?php comment_reply_link(array_merge( $args, array( 'depth' =>$depth, 'max_depth' =>$args['max_depth']))) ?> </span> <span class="comment-edit"><?php edit_comment_link('編集',' ',''); //編集リンク ?></span> </div> <?php if ($comment->comment_approved == '0') : ?> <em>あなたのコメントは現在承認待ちです。</em> <?php endif; ?> <div class="comment-text"></div> <?php comment_text(); //コメント本文 ?> <?php //返信機能は不要なので削除 ?> </div> </div> <?php } //お住まいの情報をデータベースに追加する add_action( 'comment_post', 'save_comment_meta_data_jyuu' ); function save_comment_meta_data_jyuu( $comment_id ) { $jyuu = explode(',', $_POST['jyuu']); foreach ($jyuu as $jyuu) echo update_comment_meta( $comment_id, 'jyuu', $jyuu, true); } /*アバター選択制2021.03.28*/ //get_avatarの画像URLを書き換える function new_get_avatar_data($args,$id_or_email){ $check_avatar =null; $user = null; $hash = null; if($args['found_avatar'] == true){ if ( ! empty( $id_or_email->user_id )){ $user = get_user_by( 'id', (int) $id_or_email->user_id ); $email = $user->user_email; } if ( ( ! $user || is_wp_error( $user ) ) && ! empty( $id_or_email->comment_author_email ) ) { $email = $id_or_email->comment_author_email; } if(! empty($email)){ $hash = md5( strtolower( trim( $email ) ) ); } $uri = 'http://www.gravatar.com/avatar/' . $hash . '?d=404'; $headers = @get_headers($uri); if (preg_match("|200|", $headers[0])) { $check_avatar = TRUE; } } if(!empty($id_or_email)){ $flower = get_comment_meta($id_or_email->comment_ID);} if(is_object($id_or_email) && isset( $id_or_email->user_id ) && empty($check_avatar) && ! empty($flower)){ $flower = $flower['flower'][0]; if($flower == 'hasu'){ $args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/hasu.png';//ハスの画像 } elseif($flower == 'bara'){ $args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/baraw.png';//バラの画像 } elseif($flower == 'kiku'){ $args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/kiku.png';//キクの画像 } elseif($flower == 'ran'){ $args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/ran.png';//スズランの画像 } elseif($flower == 'tulips'){ $args['url'] = 'https://cft-info.com/wp-content/uploads/2021/03/tulips.png';//チューリップの画像 } return $args; } else{ return $args; } } add_filter('get_avatar_data','new_get_avatar_data',10,2); //コメント欄に項目を追加 add_filter( 'comment_form_defaults','change_comment_form_flower'); function change_comment_form_flower($default) { $commenter = wp_get_current_commenter(); /*******メール入力欄の下に花選択を表示させる*****************************/ /* $default['fields']['email'] .= '<p class="comment-form-author">' .*/ /* $default['fields']['jyuu'] .= '<p class="comment-form-jyuu">' . */ $default['fields']['email'] .= '<p class="comment-form-email">' . '<label for="flower">'. __('お花を選んで下さい') .'</label> <input type="radio" id="flower" class="flower" name="flower" value="hasu"> <label for="hasu"> <img src="https://cft-info.com/wp-content/uploads/2021/03/hasu.png" alt="ハスの画像" width="100" height="100" border="0"> </label> <input type="radio" id="flower" class="flower" name="flower" value="bara"> <label for="baraw"> <img src="https://cft-info.com/wp-content/uploads/2021/03/baraw.png" alt="バラの画像" width="100" hight="100" border="0"> </label> <input type="radio" id="flower" class="flower" name="flower" value="kiku"> <label for="kiku"> <img src="https://cft-info.com/wp-content/uploads/2021/03/kiku.png" alt="キクの画像" width="100" height="100" border="0"> </label> <input type="radio" id="flower" class="flower" name="flower" value="ran"> <label for="ran"> <img src="https://cft-info.com/wp-content/uploads/2021/03/ran.png" alt="ランの画像" width="100" height="100" border="0"> </label> <input type="radio" id="flower" class="flower" name="flower" value="tulips"> <label for="tulips"> <img src="https://cft-info.com/wp-content/uploads/2021/03/tulips.png" alt="チューリップの画像" width="100" height="100" border="0"> </label> </p>'; return $default; } //ラジオボタンの情報をデータベースに追加する add_action( 'comment_post', 'save_comment_meta_data_flower' ); function save_comment_meta_data_flower( $comment_id ) { $flowers = explode(',', $_POST['flower']); foreach ($flowers as $flower) echo update_comment_meta( $comment_id, 'flower', $flower, true); } // // ステータス(フォーマット)に表示されるアバターのサイズを100x100ピクセルに変更20210407 add_filter( 'twentytwelve_status_avatar', 'my_twentytwelve_status_avatar' ); function my_twentytwelve_status_avatar(){ return 100; } // 作成者別(Author)アーカイブに表示されるアバターのサイズ // シングルページの投稿者情報(部分)に表示されるアバターのサイズ add_filter( 'twentytwelve_author_bio_avatar_size', 'my_twentytwelve_author_bio_avatar_size' ); function my_twentytwelve_author_bio_avatar_size(){ return 100; } ### 試したこと 固定ページのCSSで何とかしようとしましたがうまくいきませんでした。 初心者でfunction.phpもよくわからないまま、試行錯誤してます。 アバターのサイズも大きくしたのですがなりません。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/20 15:37
2021/04/21 02:51 編集
2021/04/21 03:32
2021/04/21 04:05