Intereting Posts
Структура meta_value postmeta для загрузки продукта woocommerce автоматически установите «Лучшее изображение» так же, как и og: i, которое установлено в настраиваемом поле Почему wp_get_attachment_image_src возвращает неправильные размеры? Недостаток меню WordPress показать метаномену таксономии в шаблоне Передача строки meta_box в post__in? wp_list_categories с описанием категории Может ли WP дать значение идентификатор сообщения? Подключаемые действия WordPress, связанные с запланированными сообщениями, не выпущены Показывать комментарии верхнего уровня, упорядоченные по количеству ответов Вставить изображение в сообщение из внешнего url Создание настраиваемых полей при загрузке изображений Как настроить мой контент, чтобы показывать полные сообщения? Групповые сообщения по первому письму категорий заголовков Показывать значение get_sub_field, если оно существует

Проблема в получении комментариев пользователей

Я пытаюсь отображать комментарии конкретных пользователей в пользовательской области. Я успешно это сделал, но проблема заключается в структуре постоянной ссылки. этот код получает url как permalinks disabled, если я включаю permalinks из моих настроек, то эти URL-адреса начинают давать 404.

вот код im, использующий:

<? if(get_query_var('author_name')) : $curauth = get_userdatabylogin(get_query_var('author_name')); else : $curauth = get_userdata(get_query_var('author')); endif; $querystr = " SELECT comment_ID, comment_post_ID, post_title, comment_content FROM $wpdb->comments, $wpdb->posts WHERE user_id = $uid AND comment_post_id = ID AND comment_approved = 1 ORDER BY comment_ID DESC LIMIT 5 "; $comments_array = $wpdb->get_results($querystr, OBJECT); if ($comments_array): ?> <ul> <? foreach ($comments_array as $comment): setup_postdata($comment); echo "<li><a href='". get_bloginfo('url') ."/?p=".$comment->comment_ID."'>Comment on ". $comment->post_title. "</a><br />". $comment->comment_content . "</li>"; endforeach; ?> </ul> <? endif; ?> 

Таким образом, это получает URL-адрес как www.mysite.com/p?=xxxx .. если permalinks включены как mysite.com/post-perma-links/, он начинает давать 404 на этих ссылках, сгенерированных с помощью вышеуказанного кода. остальная часть функции отлично работает,

SO возможно получить URL-адрес permalink в этом случае вместо p? = Xxx? помощь приветствуется

Привет @ Аяз Малик:

Вам нужно использовать функцию get_comment_link() . Я переписал ваш код с помощью некоторых улучшенных методов и включил вызов функции вместо того, что у вас было:

 global $wpdb; $sql =<<<SQL SELECT {$wpdb->comments}.comment_ID, {$wpdb->comments}.comment_post_ID, {$wpdb->comments}.comment_content, {$wpdb->posts}.post_title FROM {$wpdb->comments} INNER JOIN {$wpdb->posts} ON {$wpdb->comments}.comment_post_id={$wpdb->posts}.ID WHERE 1=1 AND {$wpdb->comments}.user_id = %d AND {$wpdb->comments}.comment_approved = 1 ORDER BY {$wpdb->comments}.comment_ID DESC LIMIT 5 SQL; $sql = $wpdb->prepare($sql,$uid); // $uid is assumed pre-defined before this code $comments = $wpdb->get_results($sql, OBJECT); if ($comments) { echo '<ul>'; foreach ($comments as $comment) { setup_postdata($comment); $link = get_comment_link($comment->comment_ID); echo "<li><a href='{$link}'>Comment on {$comment->post_title}</a><br />" . "{$comment->comment_content}</li>"; } echo '</ul>'; }