it-swarm.com.de

Wie vermeide ich doppelte Posts mit wp_insert_post auf single.php?

Ich bekomme einen wirklich seltsamen Bug (WP 3.1.3). Mein Ziel ist es, dass Benutzer einen neuen Beitrag erstellen, indem sie einfach auf einem einzelnen Beitrag landen. Um dies zu erreichen, habe ich folgenden Code in meiner single.php:

    <?php
    //-- Set up post values
    $myPost = array(
        'post_status' => 'publish',
        'post_type' => 'post',
        'post_author' => 2,
        'post_title' => 'e3i8ir',
        'comment_status' => 'closed',
        'ping_status' => 'closed',
        'post_category' => array(24),
    );

    //-- Create the new post
    $newPostID = wp_insert_post($myPost);

    ?>

Dies sollte zu jeder Zeit nur einen Datensatz enthalten, oder? Wenn ich diese Funktion verwende, werden jedoch ZWEI Posts erstellt, genau wie bei mir.

Wenn Sie sich die Seite ansehen, wird der Inhalt nur einmal angezeigt. Es ist also nicht so, dass die Seite mehrmals angezeigt wird (und daher zwei Aufrufe von wp_insert_post verursacht).

Hat jemand eine Idee, was das verursachen würde?

Danke im Voraus, --eric

1
TheCosmonaut

versuchen Sie, Ihr Skript in eine Funktion einzufügen und während eines Aktions-Hooks auszuführen. vielleicht der wp_footer hook.

1
dwenaus

Geben Sie zu Beginn des Themas eine eindeutige ID an. Dies ist eine Identifikationszeichenfolge in einem benutzerdefinierten Feld für den neu erstellten Beitrag.

Suchen Sie vor dem Hinzufügen des Posts in benutzerdefinierten Feldern nach Posts mit dieser eindeutigen ID. Wenn Sie es nicht finden, fügen Sie den Beitrag UND das benutzerdefinierte Feld hinzu.

Hier finden Sie Beispiele zum Abfragen von Beiträgen nach benutzerdefinierten Feldern .

0
petermolnar

ein fehlerhafter Fix besteht darin, dass das Post-Feld in der Datenbank als eindeutig markiert ist. Wenn das erste Einfügen erfolgreich ist, schlägt das zweite fehl

dies ist eine schmutzige Lösung, bis Sie eine geeignetere Lösung finden

0
mireille raad