Я пытаюсь создать страницу уведомлений, куда автор может перейти, чтобы увидеть все действия в своих сообщениях.
Я пытаюсь получить комментарии ко всем постам авторов — которые у меня работают, но мне также нужно получить два мета-ключа комментариев, один из которых — «Scientific_Name», а другой — «Common_NAME».
Это работает при получении данных комментария, таких как автор комментария, заголовок, контент. Но исключает жизненно важный комментарий мета
$suggestions = $wpdb->get_results( "SELECT $wpdb->posts.guid,
$wpdb->posts.post_title,
$wpdb->posts.ID,
$wpdb->comments.comment_author,
$wpdb->comments.comment_author_email,
$wpdb->comments.comment_date,
$wpdb->comments.comment_content
FROM $wpdb->posts left join $wpdb->comments
ON $wpdb->posts.ID=$wpdb->comments.comment_post_ID
WHERE $wpdb->posts.post_author=".$current_user->id."AND $wpdb->posts.post_status='publish' AND
$wpdb->comments.comment_type='comment'
OR $wpdb->comments.comment_type='suggestion'
");
Я также попробовал следующее, но возвращаю очень неправильные данные:
$suggestions = $wpdb->get_results( "SELECT *
FROM $wpdb->posts as a left join $wpdb->comments as b
ON b.comment_post_ID = a.ID left join $wpdb->commentmeta as c
ON c.comment_id = b.comment_ID
WHERE a.post_author='63'
AND a.post_status='publish' and b.comment_type='comment'
OR b.comment_type='suggestion'
");
после большой работы у меня есть то, что вы видите ниже, но есть так много петель.
$auth_posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE $wpdb->posts.post_author = '".$current_user->id."' AND $wpdb->posts.post_status='publish' AND $wpdb->posts.post_type='species'");
foreach($auth_posts as $auth_post) {
$comments = $wpdb->get_results("SELECT * FROM $wpdb->comments WHERE $wpdb->comments.comment_post_ID = ".$auth_post->ID." AND $wpdb->comments.comment_type='comment' OR $wpdb->comments.comment_type='suggestion'");
if($comments) {
foreach($comments as $comment) {
$comment_meta = get_comment_meta($comment->comment_ID);
echo $auth_post->post_title.'<br>';
echo $comment->comment_author."<br>";
// print_r($comment_meta['scientific_name']);
echo $comment_meta['scientific_name'][0].'<br>';
echo $comment_meta['common_name'][0].'<br>';
}
}
}
Задача ещё не решена.
Других решений пока нет …