Problem mit Funktion wp_insert_post

  • Seit geraumer Zeit nutze ich die Funktion wp_insert_post
    um aktuelle Daten meiner Wetterstation einmal täglich zu posten.
    Bis vor wenigen Tagen funktionierte das auch problemlos,
    aber nun gibt die Funktion eine 0 zurück und es wird nicht gepostet,
    weder DRAFT noch PUBLISH generieren einen Beitrag.
    Das Php-Script wird mit einem Cron-Job aufgerufen.

    Es trat einige ein paar Tage nach der neuen WP-Version auf.
    Könnte es mit einem Plugin-Update zu tun haben?
    Hat jemand eine Idee zur Behebung dieses Problem?

    Hier ist mein Script (bzw. der betreffende Ausschnitt):

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Da sich an der Funktion wp_insert_post seit WordPress 4.4.0 nichts geändert hat, liegt es entweder an einem anderen Plugin oder der Parametrisierung per se, also z.B. eine nicht vorhandene Category ID weil diese gelöscht wurde.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Die Parameter (post_author, post_category,...) habe ich als erstes kontrolliert, alles okay.
    Was mich wundert, daß es ohne jegliche Änderung meinerseits vom einen auf den anderen Tag nicht mehr funktioniert hat.
    Gibt es keine Möglichkeit rauszufinden, warum er es nicht macht? Ich sehe lediglich die post_id (0).
    Sonst bleibt ja nur die Möglichkeit, ein Plugin nach dem anderen zu deaktivieren und die Routune immer neu aufzurufen (Try-and-Error).


  • Sonst bleibt ja nur die Möglichkeit, ein Plugin nach dem anderen zu deaktivieren und die Routune immer neu aufzurufen (Try-and-Error).

    Wenn nichts im error.log steht ist das für die meisten Leute der einfachste Weg. Als Entwickler würde ich meine Funktion umschreiben und ein paar Debugingfunktionen einbauen (try, catch usw.)

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Titel und Inhalt lasse ich mir unmittelbat vor dem Aufruf der wp_insert_post per echo ausgeben, beidesist (sinnvoll) bestückt.
    Autor- und Kategorie-ID habe ich auch gescheckt und mit anderen ausprobiert ... kein Erfolg.

    Die Plugins habe ich der Reihe nach alle deaktiviert und getestet ... auch keine Veränderung.

    Die eror.log sollte ich im Ordner "logs" finden? Da sind keine aktuellen Dateien (auch keine access-logs).

    Code
    try {
    $post_id = wp_insert_post ($args);
    } catch (Exception $e) {
    echo "Exception: ", $e-getMessage(),"\n";
    } finally {
    echo "///";
    }


    Das brauchte auch keine Ausgabe außer den "///".

    Jetzt wird lamgsam mysteriös.

  • Auch über ...

    Code
    $post_id = wp_insert_post ($args, $wp_error);


    ... gibt's nur eine 0 zurück.

    Ich verstehe inzwischen nichts mehr und bin völlig ratlos
    und sehe den Wald vor lauter Bäumen nicht mehr.
    Gibt es da keine deutsche Anleitung, ich kann zwar englisch,
    aber irgendwo hört's dann doch mit dem Verstehen auf.
    Wirklich weitergeholfen hat mir hier bisher nichts.

  • Dann aktiviere das error.log des Servers

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Der gepostete Code ist leider unvollständig. Welchen Inhalt hat der zweite Parameter? Wie wird das Ergebnis abgefragt?


    Vielleicht kann mir mal jemand genauere Infos geben, ich sagte ja, daß ich nicht alles verstehe in der Dokumentation.
    Das Error-Log habe ich aktiviert, da steht auch was drin, aber nicht was zeitlich zu dem Problem paßt, z.B.:

    Zitat


    [04-Mar-2019 20:29:56 UTC] PHP Warning: session_start(): Cannot send session cookie - headers already sent in /www/htdocs/########/__pool/wp-content/plugins/wp-gdpr-core/lib/session-handler.php on line 22
    [04-Mar-2019 20:29:56 UTC] PHP Warning: session_start(): Cannot send session cache limiter - headers already sent in /www/htdocs/########2/__pool/wp-content/plugins/wp-gdpr-core/lib/session-handler.php on line 22

    Hier nochmal der relavante Ausschnitt aus meinem Script, das bis zum Tag X funktioniert hat. Und ich habe weder am Script, noch an den Kategorien oder Usern irgendwas verändert. Das WP-Update war einge Tage früher.

    Davor werden nur die Variablen bestückt (siehe Screenshot):

    • oben die Überschrift ($titel),
    • dann der Beitrag selbst ($inhalt),
    • unten die Ausgabe der Post-ID


    Wenn ich Profi wäre, würde ich wohl nicht fragen und so ratlos sein.
    Eure Hinweise sind wahrscheinlich gut gemeint, nutzen mir nur nicht,
    weil ich es nicht verstehe (zum Teil sprachlich, zum Teil vom Sinn her).

    Könnt ihr mir mit Beispielen auf die Sprünge helfen?

    [Blockierte Grafik: https://www.blogpool.de/gfx/wetter-post.JPG]


  • Eure Hinweise sind wahrscheinlich gut gemeint, nutzen mir nur nicht,
    weil ich es nicht verstehe (zum Teil sprachlich, zum Teil vom Sinn her).
    Könnt ihr mir mit Beispielen auf die Sprünge helfen?

    Beispiele nützen Dir nichts, denn der Code hat nach Deiner Aussage funktioniert. Wenn dann muss man es am konkreten Fall bearbeiten. Dazu fehlt uns aber der Gesamtkontext. Das Forum ist ein Ort für Hilfe zur Selbsthilfe. Wenn Du trotz dieser Informationen selbst nicht weiter kommst, musst Du Dir in der Jobbörse Hilfe suchen. Wenn ich mir aber den Screenshot so ansehe, dann würde ich einmal darauf tippen, das erstens die Codierung der Datei nicht stimmt und zusätzlich etwas mit einem Plugin oder dem Theme nicht in Ordnung ist, weil die Shortcodes nicht geparst werden.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Es war ein konkretes Beispiel von heute morgen (siehe Wetterdaten).
    Aber schön, daß man hier solche abwertenden Antworten bekommt
    und sich einige hier scheinbar als die Weisheit in Person vorkommen.
    [COLOR=#ff8000]Vielen Dank für nichts[/COLOR] :(

  • Ein Screenshot ist kein Beispiel. Wir brauchen Code! @b3317133 hat es schon geschrieben. In dem Tonfall bekommst Du hier keine Hilfe. Vielen Dank für das Verschwenden unserer Zeit. Abwertend? Das darfst Du gerne näher erklären.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!