Intereting Posts
Как узнать значение настраиваемого поля страницы? Как получить 1 или 2 конкретных сообщения в верхней части моего блога WordPress? Версия AMP на первой странице без плагина Некоторые сомнения в том, как показывать сообщения в пользовательской теме? Отфильтровать результаты из сериализованной строки для использования в статистике Удалить "? Repeat = w3tc" из любого URL-адреса Как получить только определенное количество изображений из сообщения (за вычетом выделенного изображения)? Как стилизовать пункт меню текущей страницы при использовании ходунки Доступный виджет WP для определенной области Код плагина не будет работать должным образом внутри класса Длинные заголовки сообщений не переходят на следующую строку Комплексный мета-запрос с 3 ключами Функция удаления сообщения, это дети, и это большие дети (на полпути уже есть) Как показать содержимое сообщения, прежде чем читать больше тегов (выдержка) для сообщений с защитой паролем? Запрос сообщений с нескольких сайтов в сети?

Ответы, не связанные с потоком, со ссылкой на исходный комментарий

Я объясню, что я пытаюсь выполнить.

Я хотел бы иметь регулярные не-поточные (плоские / классические) комментарии с ответной ссылкой на каждый комментарий. Когда кто-то отвечает на комментарий, ответ будет заканчиваться вверху (или внизу) в качестве последнего комментария так же, как и в по-умолчанию не-threaded комментариях, но в отличие от стандартного не-threaded комментария ответ должен отображать ссылку на оригинальный комментарий / автор.

На форуме wordpress есть предлагаемое решение:

http://wordpress.org/support/topic/reply-to-link-for-chronological-non-threaded-comments

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

add_action('comment_post', 'print_reply_link', 10, 2); function print_reply_link( $comment_id, $approved ){ if( $approved ){ $comment = get_comment( $comment_id ); if ( $comment->comment_parent ) { $parent = get_comment( $comment->comment_parent ); $parent_link = esc_url( get_comment_link( $comment->comment_parent ) ); printf( ' in reply to <a href="%1$s">%2$s</a>', $parent_link, $parent->comment_author ); } } } 

Это возвращает пустую страницу с именем «в ответ на имя автора ». После перезагрузки сообщения комментарий ответа отображается правильно, но без ссылки на исходный комментарий

Мои навыки кодирования действительно очень простые, поэтому я не имею никакой идеи, как я должен действовать. Был бы очень благодарен за любую помощь.

Solutions Collecting From Web of "Ответы, не связанные с потоком, со ссылкой на исходный комментарий"

Это мое решение, а не предлагаемое решение, предлагаемое на форумах WordPress. Оказывается, это довольно легко, но включает в себя несколько шагов.

1) Перейдите в wp-admin-> Настройки-> Обсуждение и выключите потоковые комментарии. Это отключит потоки, которые мы хотим, но также удалим возможность «ответить» на конкретный комментарий. Мы должны вернуть это обратно.

2) Добавьте скрипт ниже к функции functions.php вашей темы или к плагину.

 function load_script_for_fake_threading() { if (is_singular()) wp_enqueue_script('comment-reply'); } add_action('wp_enqueue_scripts','load_script_for_fake_threading'); 

3) Печать комментариев обрабатывается обратным вызовом wp_list_comments . TwentyEleven использует функцию twentyeleven_comment() в своих functions.php . Если ваша тема не имеет обратного вызова, вам нужно будет создать ее. По умолчанию используется контент метода start_el класса Walker_Comment в «wp-includes / comment-template.php». Скопируйте это или скопируйте обратный вызов темы и переименуйте функцию в fake_threaded_comment .

3) Найдите функцию wp_list_comments в comments.php вашей темы и измените обратный вызов. Он должен выглядеть так:

 wp_list_comments(array('callback'=>'fake_threaded_comment')); 

4) Теперь мы собираемся немного обмануть. В этом обратном вызове «fake_threaded_comment» должен быть вызван вызов функции comment_reply_link . Мы должны отредактировать его так, чтобы мы проходили жестко закодированные аргументы «depth» и «max_depth». Мы устанавливаем «depth» на 1 и max_depth на 2. Это приведет к возврату нашей кнопки «Ответить» / ссылке.

 comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply <span>&darr;</span>', 'themetextdomainname' ), 'depth' => 1, 'max_depth' => 2 ))); 

5) Установите ссылку на родительский комментарий. На стороне функции обратного вызова вы, возможно, заметили ссылки на $comment . $comment->comment_parent – это идентификатор get_comment_link($comment->comment_parent) комментария, а get_comment_link($comment->comment_parent) указывает URL-адрес родительского комментария (а не полную get_comment_link($comment->comment_parent) привязки). get_comment($comment->comment_parent) получит данные родительского комментария. Итак, что-то вроде …

 $pcom = get_comment($comment->comment_parent); echo '<a href="'.get_comment_link($comment->comment_parent).'">This is a reply to '.$pcom->comment_author.'</a>'; 

Вот и все. Теперь вы можете комментировать некоторые комментарии, но после опубликования комментарий появится в конце или в начале списка комментариев в зависимости от порядка загрузки.

Протестировано с TwentyEleven на WordPress 3.4.1 (немного устаревшее, но оно уже на моем dev-сервере). Я уверен, что есть вещи, которые могут сделать те или плагины, чтобы сломать это, но я не думаю, что тема с хорошим поведением или плагин нарушил бы ее.

Это мое доброе дело за день. Пожалуйста, дайте мне знать, если что-то пойдет не так.