質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2317閲覧

[WordPress]コメント欄にIPアドレスを表示させたい

sawaii

総合スコア2

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/09/10 01:04

WordPress「Lightning」のテーマを使用しています。
プラグイン「ACF」のカスタム投稿タイプで
社内での回覧システムのようなものを作成しています。

記事を見た人がワンクリックで「見たよ」のサインができるように「見たよボタン」を作成したかったのですが、難しく心が折れました。
そこで、現在のコメント欄を使用して、デフォルトで「見ました」とテキストエリアに入れておき、ワンクリックで送信できるようにしました。
(wp-includes/comment-template.php)

$defaults = array( 'fields' => $fields, 'comment_field' => sprintf( '<p class="comment-form-comment">%s %s</p>', sprintf( '<label for="comment">%s</label>', _x( 'Comment', 'noun' ) ), '<textarea id="comment" name="comment" cols="45" rows="2" maxlength="65525" required="required">見ました!</textarea>' ),

そしてコメントのなりすましを防ぐため、コメントの名前の横にIPアドレスを表示させたいと思っています。

調べたところ下記のタグを使用すれば良いことがわかりました。

<?php comment_author_IP( $comment_ID ); ?>

しかし、これをどのファイルのどこに入れれば良いかがわからず困っています。
テーマの「comments.php」ファイルでしょうか?↓

/** * The template for displaying comments. * * The area of the page that contains both current comments * and the comment form. * * @package _s */ /* * If the current post is protected by a password and * the visitor has not yet entered the password we will * return early without loading the comments. */ if ( post_password_required() ) { return; } ?> <div id="comments" class="comments-area"> <?php // You can start editing here -- including this comment! ?> <?php if ( have_comments() ) : ?> <h2 class="comments-title"> <?php printf( _nx( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'comments title', 'lightning' ), number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' ); ?> </h2> <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> <nav id="comment-nav-above" class="navigation comment-navigation" role="navigation"> <h2 class="screen-reader-text"><?php _e( 'Comment navigation', 'lightning' ); ?></h2> <div class="nav-links"> <div class="nav-previous"><?php previous_comments_link( __( 'Older Comments', 'lightning' ) ); ?></div> <div class="nav-next"><?php next_comments_link( __( 'Newer Comments', 'lightning' ) ); ?></div> </div><!-- .nav-links --> </nav><!-- #comment-nav-above --> <?php endif; // check for comment navigation ?> <ol class="comment-list"> <?php wp_list_comments( array( 'style' => 'ol', 'short_ping' => true, ) ); ?> </ol><!-- .comment-list --> <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?> <nav id="comment-nav-below" class="navigation comment-navigation" role="navigation"> <h2 class="screen-reader-text"><?php _e( 'Comment navigation', 'lightning' ); ?></h2> <div class="nav-links"> <div class="nav-previous"><?php previous_comments_link( __( 'Older Comments', 'lightning' ) ); ?></div> <div class="nav-next"><?php next_comments_link( __( 'Newer Comments', 'lightning' ) ); ?></div> </div><!-- .nav-links --> </nav><!-- #comment-nav-below --> <?php endif; // check for comment navigation ?> <?php endif; // have_comments() ?> <?php // If comments are closed and there are comments, let's leave a little note, shall we? if ( ! comments_open() && '0' != get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?> <?php // Don't display to Page if (is_single()) :?> <p class="no-comments"><?php _e( 'Comments are closed.', 'lightning' ); ?></p> <?php endif; ?> <?php endif; ?> <?php comment_form(); ?> </div><!-- #comments -->

わかる方おられましたらアドバイスいただければと思います。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

[comments.php]↓のwp_list_comments記述部分にcallbackを指定し、

<ol class="comment-list"> <?php wp_list_comments( 'callback=customize_comments_list'); ?> </ol><!-- .comment-list -->

[function.php]↓にcallback=customize_comments_listで指定した関数を作成して、無事にIPアドレスを表示することができました。

function customize_comments_list($comment) { $GLOBALS['comment'] = $comment; ?> <?php echo get_avatar($comment,40); ?> <?php echo comment_author($comment_ID) ?><br> <div class="comment_datetime"><?php echo comment_date($comment_ID) ?> <?php echo comment_time($comment_ID) ?> <?php echo comment_author_IP($comment_ID); ?></div> <?php comment_text()?> <?}

投稿2020/09/10 07:04

sawaii

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問