comment.php ファイルの修正
当サイトは記事ページについては現状テーマ「Cocoon」で運用中。
親テーマ内の Cocoon: comments.php (lib/comments.php)の <div class=”comment-content”> ~</div>内を変更。
<?php $comment_content = get_comment_text(); $comment_id = get_comment_ID(); echo '<div class="comment-content">'; if (mb_strlen($comment_content) > 100) { $short_content = mb_substr($comment_content, 0, 100) . '...'; echo '<div class="short-content-' . $comment_id . '">' . wpautop(esc_html($short_content)) . '</div>'; echo '<a href="#" class="read-more-link" data-comment-id="' . $comment_id . '">[全文を表示する]</a>'; echo '<div class="full-content-' . $comment_id . ' full-content" style="display: none;">' . wpautop(esc_html($comment_content)) . '</div>'; } else { echo '<div class="full-content-' . $comment_id . ' full-content">' . wpautop(esc_html($comment_content)) . '</div>'; } echo '</div>'; ?>
custom-comment.js ファイルを作成
親テーマ内の/js/へ。フォルダに、custom-comment.js という名前のファイルを作成し、そこに以下の JavaScript コードを追加します。
document.addEventListener("DOMContentLoaded", function() { var readMoreLinks = document.querySelectorAll('.read-more-link'); readMoreLinks.forEach(function(link) { link.addEventListener('click', function(e) { e.preventDefault(); var commentID = this.getAttribute('data-comment-id'); var fullContent = document.querySelector('.full-content-' + commentID); fullContent.style.display = 'block'; this.style.display = 'none'; }); }); });
functions.php ファイル内に JavaScript を追加
テーマのフォルダ内にある functions.php ファイルを開き、以下のコードを追加
function custom_comment_script() { wp_enqueue_script('custom-comment-script', get_template_directory_uri() . '/js/custom-comment.js', array('jquery'), null, true); } add_action('wp_enqueue_scripts', 'custom_comment_script');
上記のコードでは、/js/custom-comment.js の部分に JavaScript ファイルのパスを指定しています。このファイルを作成してスクリプトを配置します。
結果
上記の修正により、コメントが100文字を超える場合、最初に短縮表示され、それに続いて「全文を表示する」リンクが表示されます。
リンクをクリックすると、コメントの全文がそのままの場所で展開されるようになりました。
なお、こちらのカスタマイズは当環境にて検証済みですが、コメント内要素に追加されるプラグイン(wp ulikeやcommnet image)を使用している場合は別途カスタマイズが必要となります。
COMMENT 追加情報やリクエスト