由于每个用户将有多个帖子(课程),因此您的代码更像这样:
<?php
if ( is_user_logged_in() ) {
$user_ID = get_current_user_id();
$post_ID = get_the_ID();
$viewed = get_user_meta( $user_ID, \'viewed_lesson_tracking\', true);
if(empty($viewed)){
$viewed = array();
}
$viewed[] = $post_ID
add_user_meta( $user_ID, \'viewed_lesson_tracking\', $viewed ); // tracks that user has viewed the current post
}
?>
因此,当显示所有已查看课程(帖子)的列表时,您所要做的就是使用WP\\u查询的post\\u in参数。
WordPress不会在整个表中循环。MySQL查询不是这样工作的。在任何给定的时间,每个用户只会有一个查询。你不必担心性能。此外,WordPress会缓存所有查询,如果你在上面有一个缓存插件,你甚至不需要考虑它。