Sådan flytter du din WordPress-blog

Sådan flytter du fra en WordPress blog til en anden og sikrer, at der er et fornuft link mellem de to blogs, så eventuelle læsere af den gamle, kan finde det samme indlæg på den nye. [Læs mere]

Nogle gange sker det, at man må flytte sin blog, således at den får en ny adresse. Et problem er dog, at de gamle blogindlæg ligger i søgemaskinernes index og, måske, blandt folks foretrukne, og det går jo ikke, hvis de pludseligt lægger en kommentar på den gamle blog, som man ikke holder øje med længere.

Men: Takket være PHP — som i øjeblikket er mit svar på alt ;-) — kan man faktisk lave et link, som automatisk linker til det samme indlæg på den nye blog.

Det kræver blot, at du flytter din blog. Men har du en WordPress af nyere dato, er det så nemt som at klø sig i nakken. Måske endda nemmere!

I WordPress klikker du Håndter –> Indlæg –> Eksporter. Eksporter alt det, du har brug for. Når den er færdig står du med en .xml-fil med alt, hvad du har eksporteret.

Nu går du over i din nye blog, som formentlig er gabende tom. Klik på Håndter –> Indlæg –> Importer og klik på "WordPress", formentlig nederst i listen.

Find din fil og upload og importer den. Lad WordPress gøre sit arbejde færdigt og voila! Så har du alle dine indlæg, kommentarer og alt det andet på plads.

Nu skal der så skabes et link i mellem de gamle og de nye indlæg. Her bruger vi PHP-funktionen "str_replace". Den gør det, at den finder et ord eller en sætning, i et område, som du definerer, og erstatter den med noget andet andet, som du så også definerer.

I PHP skriver man: str_replace("1", "2", "3").

  1. Den tekst der skal erstattes
  2. Den tekst der skal erstattes med
  3. Den tekst, som der skal ledes i

I PHP-manualen er der nogle gode eksempler.

Anyway, tilbage til vores WordPress. Det er vigtigt, at du har samme permalink-struktur begge steder. I dette tilfælde, har vi den dato- og navnebaserede, som genererer links som http://www.test.dk/2008/01/11/dette-er-en-test.

Har du det, er det bare at gå i gang.

Vi ved jo, at de sidste led (fra /årstal og frem) er det samme for begge blogs, så str_replace behøver kun gælde for det, der reelt har ændret sig. Forvirret? Lad os tage et eksempel:

For nyligt flyttede jeg min blogcentral.dk/newmedia-blog til blog.larskjensen.dk. Og da det kun er starten af URL'en, der skal ændres, skriver jeg altså:

str_replace("blogcentral.dk/newmedia", "blog.larskjensen.dk", get_permalink($id))

Det sidste led — get_permalink($id) — henter URL-adressen for det pågældende indlæg, og str_replace erstatter "blogcentral.dk/newmedia" med "blog.larskjensen.dk" således at:

http://blogcentral.dk/newmedia/2008/01/06/new-widget-management-in-wordpress-25/

bliver til:

http://blog.larskjensen.dk/2008/01/06/new-widget-management-in-wordpress-25/

Smart, ikk?

Nu skal vi blot have skrevet den tekst ind. Det kan være gøre ved at sætte en parameter til at være vores str_replace og så sætte det ind som et HTML-link ved hjælp af PHP's "echo"-funktion:

<? $newurl = str_replace("blogcentral.dk/newmedia", "blog.larskjensen.dk", get_permalink($id));?>
<a href="<? echo $newurl; ?>"><? echo $newurl; ?></a>

For at hjælpe vores læsere kan vi tilsætte lidt tekst, som forklarer, at bloggen er flyttet og at kommentarer ikke bliver læst, men at de kan finde blogindlægget andetsteds:

<p>Whoops! This blog is closed and comments will not be read. Check <a href="http://blog.larskjensen.dk" target="_blank">blog.larskjensen.dk>/a< instead. If you want to leave a comment, please find this post at its new location:</p>

<? $newurl = str_replace("blogcentral.dk/newmedia", "blog.larskjensen.dk", get_permalink($id));?>
<a href="<? echo $newurl; ?>"><? echo $newurl; ?></a>

Nu har en person, der læser et af dine indlæg på din gamle blog et link, som han/hun kan klikke på og komme til det rigtige indlæg.

Bemærk: Al PHP-kode skal være i mellem en <?-tag og en ?>-tag:

<? php-kode bla bla bla ?>

Nu skal denne kode blot indsættes i den side, som indeholder hvert enkelt indlæg i WordPress. Det er typisk "Enkelt side" i WordPress i temaredigeringen, mens andre temaer, bruger den samme fil (typisk "theloop.php") til enkelte indlæg som til hele forsiden af din blog.

Under "the_content" indsætter du nu din kode. Sørg for at lave et nyt afsnit efter det <div>, så du ikke ødelægger det såkaldte "loop", som henter dine indlæg ind.

Forfatter: Lars K Jensen

Lars er uddannet journalist og arbejder nu med udviklingsprocesser og redaktionel udvikling. Han skriver blandt andet på Medieblogger. Følg ham på Twitter: @larskjensen.

Deltag! Skriv en kommentar: