Script funktioniert nur komplett bei Browser-Aufruf

  • Ich hab gerade ein merkwürdiges Problem. Ich hab ein Script, das die WP Funktionen per require('./wp-blog-header.php'); einbindet. Das ganze Script funktioniert ohne Probleme solange ich es im Browser aufruf, sobald ich es aber über einen Cron (Taskmanager, Externe Dienste etc.) aufruf funktioniert es nur noch teilweise bzw. es geht bis auf eine Sache. Anbei mal die relevanten Stellen:

    PHP
    if ... {
    $quellen = "Quelle1, Quelle2";
    $content_quellen = array("Quelle1","Quelle2");
    } else {
    $quellen = "Quelle1";
    $content_quellen = "Quelle1";
    }
    PHP
    $post = array( 
    'post_title' => $content_title,
    'post_content' => $content_alles,
    'post_excerpt' => $content_excerpt,
    'post_status' => $content_publish,
    'post_category' => $content_id,
    'tags_input' => $content_themen,
    'tax_input' => array('quellen' => $content_quellen) //GEHT NUR IM BROWSER
    );
    $postId = wp_insert_post( $post );

    Sprich tax_input funktioniert nur wenn ich das ganze im Browser aufruf. Jetzt hab ich bisher 2 Vermutungen.

    1. Ich hab ein Fehler in der Array Geschichte, was ich aber bezweifel da es im Browser ja geht.

    2. Die eigene Tax quellen existiert aus komischen Gründen nicht, wenn ich das per Cron ausführen möchte.

    Da die oben gesetzen $quellen noch woanders verwendet werden und auch das funktioniert, ist die if Schleife auch als Fehler auszuschließen. Es kann also nur am insert hängen.

    • 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

  • Bin einen Schritt weiter. Hab mein Script jetzt im Browser getestet ohne als Admin angemeldet zu sein und siehe da der gleiche Fehler.

    Warum wird also die Taxonomy nicht registriert wenn ich nicht als Admin unterwegs bin? Auch der versuch sie im Script zu registrieren scheitert?!

  • Erledigt. Lösung:

    PHP
    'tax_input' => array('quellen' => $content_quellen)

    rausnehmen aus dem post Befehl und dafür danach:

    PHP
    wp_set_object_terms( $postId, $content_quellen, 'quellen' );

    ausführen. Weiß der Geier warum das so sein muss.

Jetzt mitmachen!

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