1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

automatisch Wetter-Info posten

Dieses Thema im Forum "Konfiguration" wurde erstellt von Gast 23756, 4. März 2021.

  1. Gast 23756

    Gast 23756 Gast

    Guten Morgen,

    ich hoffe, ich bin mit meinem Problem hier im richtigen Bereich.

    Ich betreibe eine Wetterstation, deren Wetterdaten in meinem Blog (wuppertal-wetter.de) abrufbar sind.
    Seit geraumer Zeit, habe ich über einen Cronjob eingerichtet, daß die aktuellen Daten morgens täglich automatisch im Blog gepostet werden.

    An und für sich funktioniert das auch, bis auf ganz wenige Ausnahmen.
    Dann wird die Post-ID "0" ausgegeben, aber keine Fehlermeldung
    und es wird auch kein Beitrag generiert.

    Auch die (maximal 5) weiteren Versuche nach einer Wartezeit bringen das gleiche Ergebnis.

    Hat jemand eine Vermutung woran es liegen könnte oder eine Idee wie ich das Problem lösen kann?

    Nach der Erzeugung des Arrays für den Beitrag folgt dann dieser Code:

    $try=0;
    do {
    $try = $try + 1;
    $post_id = wp_insert_post ($args, $wp_error);
    echo '<hr/>';
    if( is_wp_error( $post_id ) ) { echo '[Err: '.get_error_message().']'; }
    echo '[ID: '.$post_id.']['.$try.'. Versuch]<br/><hr>';
    sleep (5);
    if ($try >= 5) break;
    } while ($post_id<=0);
     
  2. Gast 23756

    Gast 23756 Gast

    Kann mir hier keiner helfen?
    Hat niemand eine Idee?
     
  3. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.346
    Zustimmungen:
    587
    Hallo

    cool ... ich auch... in Hagen ;)

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Durch einen echo Befehl - wirst du nie erfahren, was in get_error_message steht.

    Mach doch einfach eine error_log Datei auf und schreib deine Fehlermeldung da rein

    https://www.php.net/manual/de/function.error-log.php
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    /var/tmp/meine-fehler.log ersetzt du einen pfad zu einer beschreibbaren datei.

    "Du hast Mist gebaut!" ersetzt du durch deine Fehlermeldung:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Evtl. ist der Fehler auch vorher - dafür könnte man auch den Debug Mods von WordPress einschalten und dort die Log einschalten
     
  4. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Für jemanden der programmiert sollte es selbstverständlich sein erstens lesbaren Code zu liefern und zweitens alle notwendigen Informationen anzugeben.

    1. Inhalt von $args fehlt
    2. Zustand von $wp_error fehlt
    3. Warum 5 Versuche?
    4. Wie wird der Code ausgeführt?
     
  5. Gast 23756

    Gast 23756 Gast

    Ich komme heute erst dazu, eure Antworten zu lesen.

    @r23:
    Das werde ich gleich mal umsetzen undausprobieren.

    @mensmaximus:
    1. $args=array(
      'post_title' => $titel,
      'post_status' => 'Publish',
      'post_author' => 20,
      'post_type' => 'post',
      'post_content' => $inhalt,
      'comment_status' => 'open',
      'ping_status' => 'open',
      'post_category' => array( 133 ),
      'tags_input' => array( 'Wuppertal-Wetter', 'aktuelle Wetterdaten', 'Temperatur', 'Luftdruck', 'Wind', 'Sonne', 'Regen', 'Vorhersage', 'Unwetterwarnungen', 'Niederschlagsradar', 'Blitze', 'Gewitter', 'UV-Index', 'Webcam', 'Wetterstation Aprather Weg', 'Bauernregel', 't&auml;gliche Wetterinfos' )
      );

      In 99,9% der Fälle läuft's ja auch einwandfrei.
    2. Genau da setzt r23's Info an, die ich gleich ausprobiere, ich bekam ja nichts zurück.
    3. Um zu schauen, ob es wenig später funktioniert (habe ich nur zum Testen eingebaut,diese Schleife.
    4. Über eine PHP in einem Cronjob.
    Bitte meinen Beitrag oben nochmal lesen, da steht alles drin, außer den Args.
     
  6. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Die Codierung Deiner Anwendung scheint nicht UTF8 zu sein. Das kann zu Problemen führen, falls $titel Sonderzeichen enthält
    Ich habe nach dem Zustand von $wp_error gefragt nicht nach dem Inhalt. Es kann keine Fehlerausgabe erfolgen wenn $wp_error nicht TRUE ist. Ich weiß nicht was @r23 da bastelt. WordPress hat eine eingebaute Fehlerbehandlung, die funktioniert aber nur, wenn man sie aktiviert

    Ich lese immer die Fragen, sonst macht antworten ja keinen Sinn. In deinem Beitrag fanden sich keine Antworten auf meine Fragen. Die Erwähnung des Cronjobs sagt nicht ob es sich um einen Cronjob in WordPress oder in Linux handelt, ob eine Methode in einem Plugin ausführt wird oder eine Funktion, die fliegend in die functions.php eingebaut ist.

    Ich bin raus.
     
  7. Gast 23756

    Gast 23756 Gast

    In dieser Zeile >> "$sErr .= '[Err: '.get_error_message().']' <<< bricht das Script ab.
    Der Debug-Log zeigt auch nichts.

    Dann bleibt's halt so ... der Feher mit dem nicht posten tritt ja nur recht selten auf.
     
  8. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.660
    Zustimmungen:
    1.783
    Ja, denn der Aufruf ist von Anfang an falsch: get_error_message() ist eine Methode von WP_Error.

    Empfehlung für jegliche Art von Programmierung: Dokumentation lesen, Codebeispiele nachvollziehen, jeder Unklarheit bzw. Fehlern direkt auf den Grund gehen, erst dann weitermachen.

    Keine Empfehlung: Copy & Paste von unverstandenem fragwürdigem Code oder Konstrukte wie etwas 5 x versuchen, was 1 x schon nicht geht.
     
  9. r23

    r23 Well-Known Member

    Registriert seit:
    9. Dezember 2006
    Beiträge:
    7.346
    Zustimmungen:
    587
    prima! und wer wollte dies wissen?
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden