Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um (nicht) personalisierte Werbung anzuzeigen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Funktionen beeinträchtigt werden.
zwingend erforderlich
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.
Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Ich kümmer mich drum… poste hier gleich eine Änderungs-Anleitung :)
Bittesehr ;)
https://phpfi.com/316900 (gepatchtes Plugin)
Folgende Änderungen müssten übernommen werden:
Statt:
mdv_most_commented(5, ’’, ’’, true, 30);
Aufruf mit:
mdv_most_commented(5, ’’, ’’, true, array(123, 456, 789));
…wobei 123, 456, 789 Artikel sind welche ignoriert werden sollen
(gibt es keine zu ignorierenden Artikel, einfach leeres array übergeben oder weglassen)
Im Plugin selbst:
function mdv_most_commented($no_posts = 5, $before = ”, $after = ”, $show_pass_post = false, $duration=”) {
ersetzen durch (ist abwärtskompatibel)
function mdv_most_commented($no_posts = 5, $before = ”, $after = ”, $show_pass_post = false, $duration=”, $postings_ignore = NULL) {
sowie VOR
if(!$show_pass_post) $request .= ” AND post_password =””;
einfügen:
// Patch: Ignorierte Postings nicht anzeigen
if($postings_ignore != NULL && is_array($postings_ignore))
foreach($postings_ignore as $ig)
if(is_numeric($id) && $id > 0)
$request .= ” AND $wpdb->posts.ID != ” . $id;
// Ende Patch
(siehe verlinkte phpfi-Seite) :)
Upps sorry tippfehler
statt (Zeile 23)
$request .= ” AND $wpdb->posts.ID != ” . $id;
it richtig:
$request .= ” AND $wpdb->posts.ID != ” . $id;
Ich bekomms noch hin. :(
also:
$request .= ” AND $wpdb->posts.ID != ” . $ig;
(jetzt aber)
Warum nicht posts.ID NOT IN (0,1,2,3,4,5,N)? Und wäre es nicht vielleicht sogar noch einfacher einfach ein Tag als “dirty” zu definieren welches Beiträge ausschließt?
Danke erst einmal Denis! So ganz scheints noch nicht rund zu sein. Bist Du sicher, dass die “30” nach dem “true” in der Sidebar des Original-Codes raus muss? Es wird aktuell “none found” angezeigt, offensichtlich weil der Zeitraum nicht definiert ist. Aber auch selbst, wenn ich die “30” wieder integriere, werden die gewünschten Posts “468, 407” nicht ausgeklammert.
Hab das nur kurz überflogen, aber ist in dem “Patch” nicht ein dreher mit $id und $ig? Beim Prüfen ob der Paramter numerisch und größer 0 ist, ist anstelle $ig noch $id eingesetzt. Es soll ja der übergebene Array-Value $ig geprüft werden.
// Patch: Ignorierte Postings nicht anzeigen
if($postings_ignore != NULL && is_array($postings_ignore))
foreach($postings_ignore as $ig)
–>> if(is_numeric($ig) && $ig > 0) <posts.ID != ” . $ig;
// Ende Patch
Sehe gerad, das der Editor den Code durcheinander gebracht hat..
Also nochmal ohne Kommentare
// Patch: Ignorierte Postings nicht anzeigen
if($postings_ignore != NULL && is_array($postings_ignore))
foreach($postings_ignore as $ig)
if(is_numeric($ig) && $ig > 0)
$request .= “ AND $wpdb->posts.ID != “ . $ig;
// Ende Patch
Danke Oliver, aber das wars auch noch nicht. Nun wird “None found” ausgegeben, weil offensichtlich kein Zeitraum definiert ist.
???
Hast Du den Methodenaufruf von Dennis verwendet? Wenn ja, fehlt da noch ein Parameter, da du den Array an die Duration-Stelle übermittelst und das zu einem ungütigen SQL-Statement führt. Hab leider kein WordPress zur Hand um das zu prüfen, ist aber eine Erklärung, da “None found” bei leerem DB-Result ausgeliefert wird.
Methoden
function mdv_most_commented ($no_posts = 5, $before = ”, $after = ”, $show_pass_post = false, $duration=”, $postings_ignore = NULL)
Aufruf mit:
mdv_most_commented(5, ‘’, ’’, true, 30, array(432));
Die “li” natürlich wieder einsetzen..
Wie gesagt, der Aufruf erfolgt aktuell mit
php mdv_most_commented(5, ”, ”, true, 30, array(468, 407));
Ausgeklammert werden die beiden Posts jedoch nicht.
In meiner Datei war noch eine kleiner Fehler.. Letzter Parameter im Funktionskopf “$postings_ignore=NULL” fehlte.
Hab das gerad mal mit WordPress getestet. Funktioniert bei mir mit der Fassung, die ich dir geschickt hatte.
Gruss
Gemeinsam hats dann geklappt. Danke an Denis und Oliver für die Hilfe! Auch an Dich Salz. Nun wir in der Rubrik “Heiß diskutiert” auch wirklich nur diskutiert. In “Aktionen | Gewinnspiel” sind hingegen die Beiträge aufgeführt, in denen durch Anheften eines Kommentars die Teilnahme an der Verlosung erfolgt. Eine saubere Sache, wie ich finde.