mariasmirnova45 24.06.2023 05:38

Как изменить стандартный способ отображения вложенных комментариев на WordPress-сайте?

Здравствуйте! У меня возникла проблема с отображением вложенных комментариев на моем WordPress-сайте. Я хотел бы изменить стандартный способ отображения, чтобы комментарии были представлены в виде вложенных списков. Я пробовала использовать код ниже, но он не сработал как ожидалось:

function change_comment_layout($comment, $args, $depth) {
    $GLOBALS['comment'] = $comment;
    echo '
  • '; comment_text(); echo '
  • '; }
    Пожалуйста, помогите мне изменить способ отображения вложенных комментариев на моем сайте. Я хотела бы, чтобы каждый вложенный комментарий был помещен внутрь тега
  • внутри родительского комментария. Заранее благодарю!
  • Ответы:

    YuriyC24 24.06.2023 05:51
    Попробуйте использовать функцию WordPress `wp_list_comments()` вместо написания собственной функции для отображения вложенных комментариев.
    activeDoc42 24.06.2023 05:57
    заключается в том, чтобы вы обратили внимание на функцию wp_list_comments().
    LilyM40 24.06.2023 06:03
    Для изменения способа отображения вложенных комментариев на вашем WordPress-сайте, вам нужно внести некоторые изменения в код. Ваш код функции change_comment_layout уже близок к правильному решению, но нам нужно добавить проверку на глубину комментария и использовать рекурсию для отображения всех уровней вложенности. Вот обновленный код, который позволит вам отобразить вложенные комментарии в виде вложенных списков:
    
    function change_comment_layout($comment, $args, $depth) {
        $GLOBALS['comment'] = $comment;
        ?>
        <li  id="comment-">
            
    <?php printf( __( '%s says:' ), sprintf( '%s', get_comment_author_link() ) ); ?>
    comment_approved == '0' ) : ?>
    $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
    <?php }
    Вы можете добавить этот код в файл functions.php своей темы или использовать плагин для добавления этой функции. Затем вам нужно вызвать эту функцию внутри шаблона, где требуется отобразить комментарии:
    
    
      'ol', 'short_ping' => true, 'avatar_size' => 32, 'callback' => 'change_comment_layout' ) ); ?>
    Теперь каждый вложенный комментарий будет помещен внутрь тега
  • внутри родительского комментария. У вас также есть возможность настроить стиль комментариев и размер аватара с помощью аргументов функции wp_list_comments. Надеюсь, это поможет вам изменить способ отображения вложенных комментариев на вашем WordPress-сайте. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться!
  • LanaVolunteer24 24.06.2023 06:03
    Чтобы изменить способ отображения вложенных комментариев на вашем сайте и поместить каждый вложенный комментарий внутрь тега `
  • ` внутри родительского комментария, вам понадобится использовать фильтр `wp_list_comments_args`. Вот пример кода, который вы можете использовать:
    
    function change_comment_layout($args) {
        $args['style'] = 'ul'; // Устанавливаем стиль вложенных комментариев как список
    
        // Добавляем класс "children" для родительского комментария
        $args['callback'] = function($comment, $args, $depth) {
            $GLOBALS['comment'] = $comment;
            echo '
  • 1) { echo 'class="children"'; } echo '>'; comment_text(); echo '
  • '; }; return $args; } add_filter('wp_list_comments_args', 'change_comment_layout');
    Вы должны поместить этот код в файл `functions.php` вашей темы. После этого ваши вложенные комментарии будут отображаться в виде вложенных списков. Надеюсь, это поможет вам решить проблему с отображением вложенных комментариев на вашем сайте! Если у вас есть еще вопросы, не стесняйтесь задавать. Удачи!

  • Добавить ответ