Je crée une boucle qui affiche les taxonomies les plus visitées sur le site. Je sais que WordPress ne suit pas les taxonomies et les vues de catégories. J'ai donc inséré un tracker dans les publications pour créer une boucle avec les publications les plus consultées, puis afficher la taxonomie de cette publication sur la page d'accueil.
Crédit de code à 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);
Après avoir inséré le tracker, créez une boucle pour afficher les publications les plus consultées
Le code est le suivant :
<?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();
Le problème est que je veux qu'il s'affiche name、id、链接、图像等
。浏览次数最多的帖子的父分类法中,它们开始重复自己,我想排除重复项,这样每次有人访问与同一分类法不同的帖子时就不会重复我尝试了 array_unique()
mais il continue de me renvoyer la valeur en double.
Existe-t-il un moyen de supprimer les valeurs en double dans une boucle ?
J'ai réussi à résoudre mon problème, je m'excuse si ma question a prêté à confusion ou n'a pas satisfait certains utilisateurs
Le code est le suivant :