Miniature wp-postratings

Miniature wp-postratings

L’excellent plugin wordpress wp-postratings permet de pouvoir voter pour les articles de son blog.

On peux avec ce dernier afficher un top des meilleurs articles par exemple.
Cependant on ne peux pas y faire figurer une miniature de son article (on suppose que pour la gestion des miniatures de vos articles vous utilisez un champs personnalisé qui contiendra l’url de votre miniature)

Nous allons voir ensemble comment faire cela.

Auteur : zorrito

Son site web | Articles de zorrito

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.

Vous aimez ce billet? Partagez le!

  • Tweet
  • Facebook
  • Diggit
  • Delicious
  • Diggit
  • Diggit
  • Diggit

partenaire

Billet(s) sur le même sujet


Commentaires


  1. aurelien
    18 septembre 2009

    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

    Répondre

Laisser un commentaire

Rss Feeds   Twitter Followers Email Updates

Mes réalisations




Liens de la communauté

Il n'y a pas encore eu de soumission de lien, soyez le premier.


Soumettre Plus