• hallo,

    bislang lief meine wordpress installation immer auf einer anderen url. nun habe ich ein TLD registriert und nun sind aber in der DB noch überall die links zu der alten domain eingetragen. besonders nervig ist dies da auch die bilder noch auf die alte domain zeigen. so kann ich die uploads nicht mehr bequem bearbeiten da die ja noch immer auf die alte domain verweisen.

    was kann ich tun um das problem zu beheben ohne gleich alle 200 einträge manuell durchkämmen zu müssen?

    gruß

    • 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


  • Den kenne ich bereits und geholfen hat er mir nicht.


    Dann kann dir leider niemand helfen, da du anscheinend nicht lesen kannst (insbesondere den letzten Absatz der FAQ).

    "Eine gut gestellte Frage ist schon halb beantwortet."

  • Ok, danke. Habe den Artikel nur kurz überflogen und als es da hieß das ich in die DB soll und dort in den Optionen die URL ändern soll wusste ich das dies nichts für mich ist. Naja, jetzt habs ich ja anscheinend. Danke.

  • So, jetzt sind alle Links ersetzt soweit. Jetzt noch folgendes:

    Code
    [B]Warning[/B]:  file_exists() [[URL="http://ausgelacht.com/wp-admin/function.file-exists"]function.file-exists[/URL]]: open_basedir restriction in effect. File(/www/htdocs/w007d9ef/wp-content/uploads/2007/01/shoppingcarts.thumbnail.jpg) is not within the allowed path(s): (/www/htdocs/w007fc76/:/tmp:/usr/bin:/www/htdocs/w007fc76:/bin:/usr/local/bin:/usr/share/php) in [B]/www/htdocs/w007fc76/wp-admin/inline-uploading.php[/B] on line [B]226[/B]

    Dieses Problem hängt irgendwie mit dem Server und Domainwechsel zusammen. Der htdocs unterordner w007fc76 ist auch der Ordner in dem alles liegt. Dagegen der htdocs unterordner w007d9ef ist der alte ordner. irgendwo wird jetzt also noch ein verweis auf diesen alten ordner gespeichert. könnt ihr mir da weiterhelfen?

    Schreibrechte beim uploads Ordner sind alle gesetzt. Auch nach dem Umzug habe ich diese neu gesetzt.

  • Noch ein ergänzender Hinweis zu den Attachments, die mit der WP-internen Uploadverwaltung hinzugefügt wurden.
    Wenn das unter der neuen URL auch für die bereits vorhandenen Uploads richtig funktionieren soll, muß zusätzlich zu

    SQL
    UPDATE wp_posts SET post_content =
    replace(post_content, 'www.domain.de', 'domain.com');

    auch das Feld 'guid' entsprechend behandelt werden:

    SQL
    UPDATE wp_posts SET guid =
    replace(post_content, 'www.domain.de', 'domain.com');


    Außerdem wird diese guid auch in RSS-Feeds verwendet, und würde dann dort auch nicht stimen.

    Falls zusätzlich das ganze auf neuem Webspace liegt, müssen auch noch die Einträge in den Metadaten korrigiert werden. Hier ist jeweils der absolute Pfad der Datei auf dem Server hinterlegt. Falls dieser nicht stimmt, werden die Thumbnails für Bilder von der Uploadverwaltung nicht gefunden.
    Das ist aber leider nicht so einfach mit einem SQL-Befehl zu erschlagen.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Falls zusätzlich das ganze auf neuem Webspace liegt, müssen auch noch die Einträge in den Metadaten korrigiert werden. Hier ist jeweils der absolute Pfad der Datei auf dem Server hinterlegt. Falls dieser nicht stimmt, werden die Thumbnails für Bilder von der Uploadverwaltung nicht gefunden.
    Das ist aber leider nicht so einfach mit einem SQL-Befehl zu erschlagen.

    danke, dass ist es wohl. kannst du mir sagen wo ich da genau ran muss?

  • Die Tabelle ist 'wp_postmeta'.
    Hier gibt es je Attachment, sofern es sich um ein Bild handelt, zwei relevante Einträge.
    Zum einen einfach der absolute Dateiname (z.B.):

    Code
    meta_key = '_wp_attached_file'
    meta_value = '/www/htdocs/w007a243/putzlowitsch/wp-content/uploads/2006/11/putzl_1und1_blog.png'

    Das kann man einfach per SQL behandeln.
    Der andere Eintrag ist aber ein serialisiertes Array, was ungefähr so aussieht:

    Code
    meta_key = '_wp_attachment_metadata'
    meta_value = 'a:5:{s:5:"width";i:810;s:6:"height";i:832;s:14:"hwstring_small";s:22:"height='96' width='93'";s:4:"file";s:81:"/www/htdocs/w007a243/putzlowitsch/wp-content/uploads/2006/11/putzl_1und1_blog.png";s:5:"thumb";s:30:"putzl_1und1_blog.thumbnail.png";}'

    Der eigentlich Knackpunkt ist die Längenangabe vor dem String. Die muß stimmen. Falls sich die Länge von altem und neuem Dateipfad nicht unterscheidet, ist man fein raus. Dann kan man auch einfach per SQL Suchen und Ersetzen. wenn doch, müßte man ein kleines PHP-Skript schreiben, was die Metadaten ändert.

    Gruß
    Ingo

    EDIT: Da war ich wohl ein bissl langsam :-) Naja, ich habe zumindest noch eine ausführliche Erklärung mitgeliefert.

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

    Einmal editiert, zuletzt von Putzlowitsch (25. Januar 2007 um 22:40)

  • Danke nochmal für die ausführliche Antwort. Ich hatte das derweil schon mit suchen und ersetzen gemacht. da hatte ich glück da sich beides nicht in der länge unterschieden hat. nun ist alles angepasst.

    vielen dank hier nochmal an alle für eure hilfe :)

  • Das Aktualisieren der guid-Spalte funktioniert bei bei mir gar nicht!

    kann es sein, dass durch

    PHP
    UPDATE wp_posts SET guid = replace(post_content, 'www.domain.de', 'domain.com');

    nur Felder ersetzt werden, bei denen 'http://www..domain.de' der einzige Inhalt ist? Bei mir ist die Domain jedoch immer Teil eines ganzen Pfades. Folge ist, dass gar nichts ersetzt wird.
    Gibt es dafür eine andere MySQL Abfrage, die auch Teile eines Datenbankfeldes finden und gezielt ersetzen kann?

    Grüße,
    Bernd

  • Nein, 'replace' ersetzt schon Teilstrings. Das Problem bei Dir ist, das Du natürlich auf das selbe Feld zugreifen mußt, also wenn in `guid` ersetzt werden soll, sollte als erster Parameter der Replace-Funktion auch `guid` stehen, und nicht `post_content`.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

Jetzt mitmachen!

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