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?

13 Kommentare zu “Kleine Hilfe bei WordPress erbeten

  1. Bittesehr ;)

    http://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

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

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

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

Kommentar verfassen

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