post_content per ph ersetzen

  • Hi Ihr,
    ich bin gerade am verzweifeln und habe noch keinen Ansatz gefunden.
    Ich möchte bei meinen Posts das Feld "post_content" per php mit einem bestimmten Inhalt befüllen (der natürlich noch per php verändert wurde).
    Gibt es dabei irgendwelche Rahmenbedingungen was erlaubt ist?
    Wenn ich nur kleine Werte eintrage ist es kein Problem und alles funktioniert. Ich möchte aber die veränderten Werte einer Diviseite einfügen.
    Ich habe es mit $wpdb->update, wp_update_post, $wpdb->query("UPDATE, $wpdb->query($wpdb->prepare("UPDATE, probiert.
    Ich versucht die Werte mit esc_textarea, esc_sql, esc_html, sanitize_textarea_field, ... zu escapen, aber alles klappte nicht. Ich bekomme leider auch keine Fehlermeldungen, sondern sehe nur, dass ncihts eingetragen wurde. Liegt es nun ander Datenmenge, an den Sonderzeichen oder woran sonst?

    Selbst wenn ich einen bestehenden per Adminer aus einem anderen "post_content" herauskopiere und dann versuche es per php in andere Datensätz zu kopieren klappt es nicht.
    Hat jemand von Euch da nen Tip?

    LG Andi

    • 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

  • Moin,
    leider gab es keinerlei Fehlermeldungen. Das war ja das fatale. Ich habe keine Ahnung was da nicht funktioniert, da ich keinerlei Feedback habe :(


    ich habe folgendes probiert:


    PHP
    $my_post = array(
                                          'ID'           => $art->ID,
                                          'post_content' => macheSeitenInhalt($art->ID)
                                      );
      $post_id = wp_update_post( $my_post );
      if (is_wp_error($post_id)) {
        $errors = $post_id->get_error_messages();
        foreach ($errors as $error) {
            echo $error;
        }


    PHP
    $wpdb->query("UPDATE ".$wpdb->prefix."posts SET post_content = '".macheSeitenInhalt($art->ID)."' WHERE ID = ".$art->ID.";");


    und das ganze sowohl escaped als auch ohne...

  • die 1. Hälfte des post_content Codes

  • ... und hier die 2. Hälfte:

  • Gehe mal so vor wie auf der wp_update_post() Seite unter Examples unter "If your updates are not working, there could be an error. It is a good idea to set $wp_error to true and display the error immediately after." beschrieben.

    [FONT=Courier New]$post_id = wp_update_post( $my_post, [COLOR=#ff4d4d]true[/COLOR] );
    if (is_wp_error($post_id)) {
    ...[/FONT]

  • Danke, das hat mich wirklich weitergebracht. Manchmal ist man so lange am basteln, dass man vor lauter Frust nicht mehr die einfachsten Sachen sieht.

    Ich erhielt nun die Fehlermeldung "Der Beitrag konnte nicht in der Datenbank aktualisiert werden". Leider ergab die Suche nichts sinnvolles. Aber als ich es dann auf englisch mit “Could not update post in the database” versucht hatte kam ich weiter.
    Das Problem war, dass die Daten utf-8-codiert sein müssen.
    Also flugs utf8_encode() um meine Werte gebastelt und alles funktioniert wie gewünscht.

    Danke, Du hast mir meinen Tag gerettet :)

  • ok, Danke, da werde ich mich dann noch mit beschäftigen müssen.
    Habe es jetzt so gelöst:


    nun klappt alles :)

Jetzt mitmachen!

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