Heute geht es weiter mit dem gestern begonnenen Popularity Contest Fix für WordPress 2.9 weiter.
Nachdem ich im Lauf des tages festegestellt habe, dass diverse Views bei Home statt an der richtigen Stelle gezählt werden, folgt hier nun der zweite Teil der Reparatur.
Damit Tag-Aufrufe nicht bei Home, sondern bei Tag gezählt werden, ersetze
else if (($api && $type == 'archive') || (is_archive() && !is_category())) {
durch
else if (($api && $type == 'archive') || (is_archive() && !is_category() && !is_tag())) {
und ersetze etwas weiter unten
$result = $wpdb->query("
UPDATE $wpdb->ak_popularity
SET tag_views = tag_views + 1
, total = total + $this->tag_view
WHERE post_id IN (".implode(',', $ids).")
");
durch
$result = $wpdb->query("
UPDATE $wpdb->ak_popularity
SET tag_views = tag_views + 1
, total = total + $this->tag_value
WHERE post_id IN (".implode(',', $ids).")
");
Weiter musste ich fast ganz am Ende der Datei die Zeile
add_action('the_content', 'akpc_view');
durch
add_action('the_post', 'akpc_view');
ersetzen, damit die Methode überhaupt getriggert wird. Dies gilt dann allerdings nur für die Cache-unfreundlichen Aufrufe ohne jQuery (siehe Artikel von gestern).
Die Search-Spalte scheint für die PageViews der Suchmaschinen zu sein. Ob diese funktioniert, vermag ich derzeit nicht einzuschätzen. Selbst wenn dies nicht so sollte, kann ich sie nicht fixen, da ich deren Aufrufe nicht simulieren kann. Weiter scheint es so zu sein, dass Cat-Aufrufe von Artikeln, die mehreren Kategorien angehören, nicht gezählt werden. Sry.
Wird das Plugin eigentlich noch vom ursprünglichen Autor betreut? Die aktuelle Version 2.0b2 jedenfalls ist von Juni 2009 und damit dann doch schon ein wenig älter und sollte dringend korrekt angepasst werden.
Ähnliche Beiträge: