2016-08-22 5 views
1

Похоже, я пробовал так много вещей, поэтому я прихожу сюда за помощью. Вещи, которые работали для других людей, не работали для меня. Я пытаюсь получить вложенные комментарии, но я не могу заставить их работать. Моя ситуация нечетна, поскольку форма комментария ответа отображается под комментарием, на который вы пытаетесь ответить, но когда вы нажимаете сообщение, это не работает. Кроме того, если вы посмотрите на URL-адрес, он не изменится с # comment- (некоторое значение) на # reply- (некоторое значение). Я вижу, что js правильно загружается на вкладке Chrome Inspector. Я должным образом задерживаю ответ на комментарий.Wordpress Ответить Ссылка на комментарий

Я попытался присвоить сценарий по-разному, сбросив мои постоянные ссылки по умолчанию и многочисленные изменения кода, но, похоже, не может заставить ничего работать. Любая помощь будет принята с благодарностью. Я пробовал искать, но не смог найти решение или кого-то с аналогичной проблемой.

[Изменить]: Я не вижу, чтобы комментарий-reply.js был правильно загружен на вкладке моего инспектора. Я попытался заставить его загрузить, поставив blahblahblah выше моего wp_head в моем header.php, и он загрузился, но не имел никакого эффекта.

Вот код, я использую, и файл он находится в:

single.php:

<?php 

     if(comments_open()) { 

       comments_template(); 

      } 

      ?> 


     <?php endwhile; 

    endif; 

?> 

comments.php:

<?php if(have_comments()): ?> 

<h4 id="comments"><?php comments_number('No Comments', 'One Comment', '% Comments'); ?></h4> 

<ol class="commentlist"> 
<?php wp_list_comments(array(
    'callback' => 'ericshio_custom_comments', 
    'max-depth' => 'x', 
)); ?> 
</ol> 

<?php else : ?> 

    <p class="no-comments">No comments yet</p> 

<?php endif; ?> 

<?php 

    $comments_args = array(
     // Change the title of send button 
     'label_submit' => __('Post', 'ericshio'), 
     // Change the title of the reply section 
     'title_reply' => __('Write a Reply or Comment', 'ericshio'), 
    ); 

?> 

<?php comment_form($comments_args); ?> 

functions.php:

/* Custom Comments */ 

function ericshio_enqueue_comments_reply() { 
    if(get_option('thread_comments')) { 
     wp_enqueue_script('comment-reply'); 
    } 
} 

add_action('comment_form_before', 'ericshio_enqueue_comments_reply'); 

function ericshio_custom_comments($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-author vcard"> 
      <?php echo get_avatar($comment, $size='48', $default='<path_to_url>'); ?> 

      <?php printf (__('<cite class="fn">%s</cite> <span class="says"> says:</span>'), get_comment_author_link()) ?> 
</div> 

     <?php if ($comment->comment_approved == '0') : ?> 
     <em><?php _e('Your Comment is Awaiting Moderation.') ?> </em> 
     <br /> 
     <?php endif ; ?> 

     <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars(get_comment_link($comment->comment_ID)) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?> </a> <?php edit_comment_link(__(' (Edit) '), ' ', ' ') ?> </div>        

     <div class="comment-wrapper"> 

     <?php comment_text() ?> 

     <div class="reply"> 
      <?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))); ?> 

     </div> 

     </div> 

    </div> 
<?php 

} 
+1

вот почему я не трогают WordPress – Isaac

+0

хахаха, что вы используете?: P – ERIC

+0

Система комментариев в Wordpress смехотворно странна и сложна. Особенно для меня, поскольку я очень новичок во всем этом. Кроме того, в кодексе не содержится много информации по этому вопросу, особенно по сравнению с другими ссылками. – ERIC

ответ

1

Вам необходимо прочитать это b Из-за той же проблемы со мной в прошлом, поэтому я решил эту проблему отсюда.

https://codex.wordpress.org/Template_Tags/wp_list_comments#Comments_Only_With_A_Custom_Comment_Display

Ссылка: codex.wordpress.org

EDIT:

В header.php, добавьте эту строку wp_head():

if (is_singular()) wp_enqueue_script('comment-reply'); 

Этот код добавляет комментарий-ответ javascript на отдельные страницы сообщений.

Итак, ваш комментарий форма имеет новый параметр, который вы должны добавить:

<?php comment_id_fields(); ?> 

<a id="respond"></a> 

<h3><?php comment_form_title(); ?></h3> 

Это делает комментарий форму название «Оставить комментарий»

<?php comment_form_title('Leave a Reply', 'Leave a Reply to %s'); ?> 

%s будет заменить на имя человека. Это произойдет только тогда, когда javascript не работает.

<div id="cancel-comment-reply"> 

<small><?php cancel_comment_reply_link() ?></small></div> 

Это только общие принципы, которые вам понадобятся использовать.

Refernce: OttoPress

+0

Эй, я прочитал это через кучу раз. Что именно от него решила ваша проблема? – ERIC

+1

Основная проблема вашего ответа - комментарий. прав? – Noman

+0

Да, это правильно :) – ERIC

Смежные вопросы