Skip to content

Kleine Hilfe bei WordPress erbeten

Ich bräuchte mal etwas WordPress-Unterstützung. Wieder einmal gibts im Design Tagebuch einen Kommentar-Rekord. 370 Kommentare an einem Tag! Der Wahnsinn. Robert hat mit seinem Kommentar den Finger auf eine kleine Wunde gelegt. Ich nutze in der Sidebar Most Commented und würde gerne die stark kommentierten Aktionen und Gewinnspiele von den echten Designdiskussionen trennen. Ich bräuchte also in der entsprechenden Code-Zeile eine “exclude”-Anweisung um x Post-IDs auszuklammern. Aktuell steht hier “<?php mdv_most_commented(5, ’<li>’, ’</li>’, true, 30); ?>” Oder gibts eine andere Lösung hierfür? Wer kann weiterhelfen?

Achim Schaffrinna

Achim Schaffrinna ist Designer und Autor. Hier im Design Tagebuch, 2006 von mir gegründet, schreibe ich über die Themen Corporate Identity und Markendesign. Ich konzipiere und entwerfe Kommunikationsdesign-Lösungen und unterstütze Unternehmen innerhalb von Designprozessen. Designanalyse ist Teil meiner Arbeit. Kontakt aufnehmen.

Dieser Beitrag hat 13 Kommentare

  1. 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) :)

  2. Upps sorry tippfehler

    statt (Zeile 23)
    $request .= ” AND $wpdb->posts.ID != ” . $id;

    it richtig:
    $request .= ” AND $wpdb->posts.ID != ” . $id;

  3. 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?

  4. 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.

  5. 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

  6. 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

Schreibe einen Kommentar

Die Netiquette ist zu beachten. Vor dem Hintergrund einer transparenten, sachlich-fairen Debatte wird die Nutzung eines Klarnamens empfohlen.

Folgende HTML-Elemente können verwendet werden: <b> <i> <img src="bildurl"> <a> <blockquote>

An den Anfang scrollen