Как я могу присвоить конкретный идентификатор последнему комментарию сообщения

Я довольно новичок в WordPress, и в настоящее время я разрабатываю шаблон для клиента нашей компании. Однако мне нужно присвоить конкретный идентификатор последнему комментарию сообщения.

В основном у меня есть моя собственная функция, вызываемая обратным wp_list_comments() . это связано с тем, что у меня очень настроенная компоновка комментариев.

Теперь, в функции functions.php, я хотел бы просто задать оператор if, например

 if ( is_last_comment() ) : print "last-comment" endif; 

Я посмотрел здесь, в кодексе и на других страницах, и ничего не могу найти.

Я ценю любую помощь.

Заранее большое спасибо.

Solutions Collecting From Web of "Как я могу присвоить конкретный идентификатор последнему комментарию сообщения"

Думаю, вы используете цикл комментариев (?). Если это так, вы можете

Возможность A

сначала count комментарии, установите $i = 0; перед циклом и $i++ в начале / внутри цикла, а затем присоединяем ваш необходимый идентификатор, когда `if ($ count <$ i) $ css_id =" id = 'last-comment' ".

Возможность B

Вы можете взять объект комментариев (?) И использовать $last_comment = count( $comments_obj ); и после цикла echo $comments->$last_comment; , Если это массив, вы должны использовать echo $comments[ $last_comment ]; конечно.


Не уверен, какой из них работает, поскольку я не занимался комментариями какое-то время, но он должен помочь вам на правильном пути.

Я уверен, что есть способ сделать это в комментариях, но если я подхожу к проблеме, я бы, вероятно, сделал бы что-то вроде этого:

Добавить крюк для сохранения нового комментария, который обновляет флаг «последний комментарий» в родительском сообщении;

 add_action( 'wp_insert_comment', 'set_last_comment', 10, 2 ); function set_last_comment_flag( $id, $comment ) { update_post_meta( $comment->comment_post_ID, '_last_comment', $id ); } 

и затем используйте этот флаг для фильтрации классов комментариев.

 add_filter( 'comment_class', 'flag_last_comment', 10, 4) function flag_last_comment( $classes, $class, $comment_id, $post_id ) { if ( get_post_meta( $post_id, '_last_comment', true ) == $comment_id ) $classes[] = 'last_comment'; return classes; } 

Теперь этот флажок содержит последний комментарий, не обязательно нижний, как показано на странице (у вас могут быть потоковые комментарии или несколько страниц комментариев в сообщении). Поэтому я не знаю, как хорошо это сработает для вас.

Если вам нужно настроить таргетинг на последний комментарий, отображаемый на странице, я бы просто использовал javascript для применения любого класса, который вам нужен. Логика, необходимая для того, чтобы понять, что из хоста комментариев, вероятно, будет намного сложнее, чем одна строка jQuery, чтобы вернуться после отображения страницы и найти последний элемент списка.