Извлеките случайный комментарий из определенного сообщения, покажите его на домашней странице с коротким кодом

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

https://stackoverflow.com/questions/11790239/random-comments-on-page-wordpress/11790460#11790460

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

add_shortcode( 'randomComment', 'randomComment_handler' ); function randomComment_handler($post_id) { extract( shortcode_atts( array( 'post_id' => '0', ), $atts ) ); $out = ""; $comments = get_comments("post_id=$post_id&status=approve"); if ($comments) { $ndx = mt_rand(0,sizeof($comments)) - 1; $comment = $comments[$ndx]; $out = "<div class='randomComment'><div class='randomAuthor'>".$comment->comment_author."</div><div class='randomText'>".$comment->comment_content."</div></div>"; } return $out; } 

и короткий код:

 [randomComment post_id="463"] 

Solutions Collecting From Web of "Извлеките случайный комментарий из определенного сообщения, покажите его на домашней странице с коротким кодом"

Основная проблема с фрагментом кода – это строка:

 function randomComment_handler($post_id) { 

Проверьте Codex на add_shortcode() и посмотрите, можете ли вы найти ошибку.

Спойлер : Это должно быть так:

function randomComment_handler ($ atts, $ content = NULL) {

ps : Вы также должны избегать использования extract() , вместо этого используйте $atts['post_id'] .

Далее рассмотрим добавление третьего параметра в функцию shortcode_atts() .