Dans notre cas, nous allons modifier le script pour cette fonction ### Function: Display Highest Rated Page/Post
Ouvrez le fichier postratings-stats.php et allez à la ligne 217.
Nous allons trouver la requête qui nous permet d’aller récupérer les informations dans notre base de donnée, nous allons la modifier comme ci dessous.
$highest_rated = $wpdb->get_results("SELECT DISTINCT $wpdb->posts.*, (t1.meta_value+0.00) AS ratings_average, (t2.meta_value+0.00) AS ratings_users, (t3.meta_value+0.00) AS ratings_score , (t4.meta_value) AS image FROM $wpdb->posts LEFT JOIN $wpdb->postmeta AS t1 ON t1.post_id = $wpdb->posts.ID LEFT JOIN $wpdb->postmeta As t2 ON t1.post_id = t2.post_id LEFT JOIN $wpdb->postmeta AS t3 ON t3.post_id = $wpdb->posts.ID LEFT JOIN wp_postmeta AS t4 ON t4.post_id = wp_posts.ID WHERE t1.meta_key = 'ratings_average' AND t2.meta_key = 'ratings_users' AND t3.meta_key = 'ratings_score' AND t4.meta_key = 'image' AND $wpdb->posts.post_password = '' AND $wpdb->posts.post_date < '".current_time('mysql')."' AND $wpdb->posts.post_status = 'publish' AND t2.meta_value >= $min_votes AND $where ORDER BY $order_by DESC, ratings_users DESC LIMIT $limit");
Avec cette requête nous allons donc pouvoir récupérer l’url de notre miniature qui est contenu dans un champs personnalisé ‘image’.
Vous pouvez l’adapter à votre guise pour récupérer d’autres champs personnalisés par exemple.
Maintenant nous allons ouvrir le fichier wp-postratings.php et nous allons modifier la fonction function expand_ratings_template qui se trouve à partir de la ligne 934.
Par défaut nous avons ceci.
// Get post related variables
if(is_null($post_ratings_data)) {
$post_ratings_data = get_post_custom($post_id);
$post_ratings_users = intval($post_ratings_data['ratings_users'][0]);
$post_ratings_score = intval($post_ratings_data['ratings_score'][0]);
$post_ratings_average = floatval($post_ratings_data['ratings_average'][0]);
} else {
$post_ratings_users = intval($post_ratings_data->ratings_users);
$post_ratings_score = intval($post_ratings_data->ratings_score);
$post_ratings_average = floatval($post_ratings_data->ratings_average);
}
Nous allons le transformer comme ceci.
// Get post related variables
if(is_null($post_ratings_data)) {
$post_ratings_data = get_post_custom($post_id);
$post_ratings_users = intval($post_ratings_data['ratings_users'][0]);
$post_ratings_score = intval($post_ratings_data['ratings_score'][0]);
$post_ratings_average = floatval($post_ratings_data['ratings_average'][0]);
//MODIF ICI
$img = $post_ratings_data['image'][0];
} else {
$post_ratings_users = intval($post_ratings_data->ratings_users);
$post_ratings_score = intval($post_ratings_data->ratings_score);
$post_ratings_average = floatval($post_ratings_data->ratings_average);
//MODIF ICI
$img = $post_ratings_data->image;
}
Ensuite dirigez vous vers les lignes 1000 ou il y a une succession de str_replace.
Nous allons rajouter ceci.
$value = str_replace("%THUMB%", $img, $value);
Le tour est joué.
Dans les options de template de wp-postratings, vous allez pouvoir utiliser %THUMB% pour afficher une miniature de votre article.
<a href="%POST_URL%" title="%POST_TITLE%"><img class="top-articles" src="http://localhost/wordpress/wp-content/themes/votre theme/thumb.php?src=%THUMB%" alt="%POST_TITLE%" width="91" height="67"/></a>
Le principe général est exposé, j’espère que cela vous aura été utile.












aurelien
Fonction très intéressante, mais ne semble pas fonctionner avec le version 1.5 du plug-in. Ca pourrais être aussi intéressant de voir comment il est possible d’intégré les résultats sous forme de vignette comme par ici : http://www.fubiz.com