I'm creating a loop that displays the most visited taxonomies on the website. I know WordPress doesn't track taxonomies and category views. So I inserted a tracker into the posts to create a loop with the most viewed posts and then display that post's taxonomy on the home page.
Code credit to isitwp
function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } } // Remove issues with prefetching adding extra views remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
After inserting the tracker, create a loop to display the most viewed posts
code show as below:
<?php $popular = array( 'post_type' => 'videos', 'posts_per_page' => 8, 'meta_key' => 'post_views_count', // setPostViews($postID) function; 'orderby' => 'meta_value_num', 'order' => 'ASC', 'offset' => 1, ); $popular_loop = new WP_Query( $popular ); if( $popular_loop->have_posts() ){ while( $popular_loop->have_posts() ) : $popular_loop->the_post(); $terms = get_the_terms( $post->ID, 'seasons' ); foreach($terms as $term) { $ids = $term->term_id; $arr = explode( ',', $ids ); $arr_unique = array_unique( $arr ); $str = implode( $arr_unique ); if($term->parent != 0){ /** * Taxonomie has children get the parent ID */ echo '<p>Return parent unique:' . $str . '</p>'; } else { /** * Taxonomie has NO children get the current taxonomy ID */ echo '<p>Return unique:' . $str . '</p>'; } } endwhile; } else { return false; } wp_reset_postdata();
The problem is, because I want it to show name,id,link,image etc.
. The most viewed posts have started repeating themselves in their parent taxonomy and I want to exclude the duplicates so that they are not repeated every time someone visits a post with a different taxonomy. I tried array_unique()
But it keeps returning me with duplicate values.
Is there any way to remove duplicate values within a loop?
P粉5459106872024-02-27 12:17:30
I managed to solve my problem, I apologize if my question was confusing or didn't satisfy some users
code show as below:
'videos', 'posts_per_page' => 8, 'order' => 'ASC', ); $popular_loop = new WP_Query( $popular ); if( $popular_loop->have_posts() ){ // Get the terms array $unique = []; while( $popular_loop->have_posts() ) : $popular_loop->the_post(); // Taxonomy loop post $terms = get_the_terms( $post->ID, 'seasons' ); foreach($terms as $term) { // Get the unique array from loop if( !in_array( $term->term_id, $unique ) ){ $unique[] = $term->term_id; // Get unique ID from Taxonomy echo $term->term_id; // Get Unique name fromt Taxonomy echo $term->name; } } endwhile; } else { echo 'Nothing'; } wp_reset_postdata();