NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Classer les Post Type par Popularité
Intermédiaire

---- Cet article a été modifié : 12 janvier 2021

Classer les Posts Types par Popularité (Display Post type by Popularity) :
Nous allons dans ce tutoriel effectuer une Requête qui va nous permettre d’afficher les liens des Posts Types classés par popularité.
La première des actions c’est de créer un Post méta (Vues) qui va nous permettre de récolter le nombre de vues d’un Post Type.

Nous allons lui donner le nom de via_views_count qui sera donc la key a récupérer lors de la requête.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
///////////////////////////////////////
// Popular Posts By views for Posts
///////////////////////////////////////
 
function via_post_views($postID) {
$count_key = 'via_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);
}}
//To keep the count accurate, lets get rid of prefetching
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
 
///////////////////////////////////////
// Tracks Views
///////////////////////////////////////
function via_track_post_views ($post_id) {
if ( !is_single() ) return;
if ( empty ( $post_id) ) {
	global $post;
$post_id = $post->ID;    
}
via_post_views($post_id);}
add_action( 'wp_head', 'via_track_post_views');
 
///////////////////////////////////////
// Get Posts Views
///////////////////////////////////////
function via_get_post_views($postID){
$count_key = 'via_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 Vue";
}
return $count.' Vues';
}

Nous allons construire la colonne Vues qui sera dans le tableau des Articles et qui donnera la valeur des vues des Articles.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
///////////////////////////////////////
// Admin Columns display posts Views
///////////////////////////////////////
 
add_filter('manage_posts_columns', 'via_column_views');
add_action('manage_posts_custom_column', 'via_custom_column_views',5,2);
function via_column_views($defaults){
    $defaults['via_post_views'] = __('Vues');
    return $defaults;
}
function via_custom_column_views($column_name, $id){
        if($column_name === 'via_post_views'){
        echo via_get_post_views(get_the_ID());
    }
}

Classer les Post Type par Popularité

Voici la requête a effectuer pour afficher les Posts Types classés par popularité.
Vous pouvez utiliser votre HTML bien sur pour afficher les résultats.
Ici dans ce tutoriel, il s’agit seulement d’un lien.
Remplacer post par le nom de votre Post Type.

1
2
3
4
5
6
7
8
9
10
11
<!--?php $popularpost = new WP_Query( array( 'post_type' =&gt; 'post', 
'post_status' =&gt; 'publish', 
'posts_per_page' =&gt; 9, 
'meta_key' =&gt; 'via_post_views', 
'orderby' =&gt; 'meta_value_num', 
'order' =&gt; 'DESC'  ) );
while ( $popularpost-&gt;have_posts() ) : $popularpost-&gt;the_post();
?-->
<!--?php the_title();?-->
<!--?php wp_reset_query(); ?-->
<!--?php endwhile; ?-->

Codex

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>