[Wordpress] KK Star Ratings modifizieren?

the.expert

Lieutenant
Registriert
Jan. 2008
Beiträge
892
Hey,
ich benutze folgendes Plugin zum bewerten von Posts:
http://wordpress.org/extend/plugins/kk-star-ratings/

Nun benutze ich auch die Widget Funktion, wo angegeben wird, welche Posts am besten bzw. am neusten sind.

Dort wird mir jedoch nur der Titel angezeigt mit einem Hyperlink zum Post.

Wo muss ich etwas umcoden, um dort die gegebenen Posts als ganzes (excerpt) und nicht nur als Hyperlink des Titels zum Post anzeigen zu können?

Den Code des Plugins habe ich im Anhang hinzugefügt.
 

Anhänge

Zuletzt bearbeitet:
Meinst du das Widget, was du in die Seitenleiste integrieren kannst?
dann musst du natürlich den Code des Widgets anpassen. Dies ist die widget.php im plguin-Verzeichnis.
Ab Zeile 30 heißt es dort:
PHP:
$posts = kk_star_ratings_get($total, $category);
echo '<ul>';
foreach ($posts as $post)
{
   echo "<li><a href='".get_permalink($post->ID)."'>".$post->post_title."</a>";
   if($sr)
   {
	   echo " <span style='font-size:10px;'>(".$post->ratings."/5)</span>";
   }
   echo "</li>";
}
echo '</ul>';
Das kann man erweitern, etwa zu:
PHP:
$posts = kk_star_ratings_get($total, $category);
echo '<ul>';
foreach ($posts as $post)
{
   echo "<li><a href='".get_permalink($post->ID)."'>".$post->post_title."</a>";
   if($sr)
   {
	   echo " <span style='font-size:10px;'>(".$post->ratings."/5)</span>";
   }
   echo "<br /><span>".$post->post_content."</span>";
   echo "</li>";
}
echo '</ul>';
Den inneren span-Tag kann man dann noch mit CSS formartieren.

Was mich nur wundert ist, dass du dann ja komplette Artikel in der Seitenleist hat - die ist dafür doch viel zu klein, oder nicht?
 
ne ich hatte es nicht getestet - nun aber, und du hast recht: Es geht nicht.

Grund dafür: Die Datenbankabfrage fragt den Inhalt nicht mit ab. Daher musst du noch folgende Veränderungen vornhemen:
In der kk-ratings.php ersetze die Zeile 329:
PHP:
$rated_posts = $wpdb->get_results("SELECT a.ID, a.post_title, b.meta_value AS 'ratings' FROM " . $wpdb->posts . " a, $table b WHERE a.post_status='publish' AND a.ID=b.post_id AND b.meta_key='_kk_ratings_avg' ORDER BY b.meta_value DESC LIMIT $total");

durch
PHP:
$rated_posts = $wpdb->get_results("SELECT a.ID, a.post_title, a.post_content, b.meta_value AS 'ratings' FROM " . $wpdb->posts . " a, $table b WHERE a.post_status='publish' AND a.ID=b.post_id AND b.meta_key='_kk_ratings_avg' ORDER BY b.meta_value DESC LIMIT $total");

und die Zeile 334:

PHP:
$rated_posts = $wpdb->get_results("SELECT a.ID, a.post_title, b.meta_value AS 'ratings' FROM " . $wpdb->posts . " a, $table b, $table2 c, $table3 d WHERE c.term_taxonomy_id=d.term_taxonomy_id AND c.term_id=$cat AND d.object_id=a.ID AND a.post_status='publish' AND a.ID=b.post_id AND b.meta_key='_kk_ratings_avg' ORDER BY b.meta_value DESC LIMIT $total");

durch
PHP:
$rated_posts = $wpdb->get_results("SELECT a.ID, a.post_title, a.post_content, b.meta_value AS 'ratings' FROM " . $wpdb->posts . " a, $table b, $table2 c, $table3 d WHERE c.term_taxonomy_id=d.term_taxonomy_id AND c.term_id=$cat AND d.object_id=a.ID AND a.post_status='publish' AND a.ID=b.post_id AND b.meta_key='_kk_ratings_avg' ORDER BY b.meta_value DESC LIMIT $total");

damit hats bei mir funktioniert.
 
Jep! Jetzt funktioniert es, vielen Dank mein Lieber!

Wenn ich jetzt noch ein Zeilenabstand zwischen jedem Post haben will, wo müsste ich ihn implementieren?

Auch funktioniert es nur für bewertete Posts im Falle von "besten Posts".
Bei der Funktion die für die Ausgabe der "neusten Posts" zuständig ist, wird wohl eine andere Funktion im Code gebraucht. Was mir ziemlich mysteriös erscheint...
 
Zuletzt bearbeitet:
Für den Zeilenumbruch, ersetzte die letzte codezeile meines ersten Postings durch:
PHP:
echo '</ul><br />';

Was meinst du mit "neue Postings"? Diese Funktion bietet das Plugin doch gar nicht. Meinst du das Widget "Letzte Artikel"? Das ist von Wordpress selbst bereitgestellt. Hier müsste man natürlich den Code dieses Widgets anpassen...
 

Ähnliche Themen

Zurück
Oben