URLs aus WordPress exportieren

calendar-event22. Juni 2018

1–2 Minuten

Durch den Relaunch meiner Website stand ich vor der Herausforderung alles URLs von BeitrÀge, Seiten, Kategorien und Tags hÀndisch aus dem System zu holen. Diese benötige ich um die richtigen Umleitungen in der .htaccess setzen zu können.

Das hÀtte ewig gedauert und ich hÀtte bestimmt auch Fehler gemacht. Also musst etwas besseres her. Mit wenigen Code-Zeilen konnte ich das Problem schnell lösen.

Alle Seiten-URLs aus der WordPress Datenbank ziehen

<?php

include "wp-load.php";

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;
/*
global $wpdb;
$posts = $wpdb->get_results("
	SELECT ID,post_type,post_title
	FROM {$wpdb->posts}
	WHERE post_status<>'auto-draft' AND post_type NOT IN ('revision','nav_menu_item')
");
*/

header('Content-type:text/plain');
foreach($posts as $post) {
	switch ($post->post_type) {
		case 'revision':
		case 'nav_menu_item':
			break;
		case 'page':
			$permalink = get_page_link($post->ID);
			break;
	}
	echo "\n{$permalink}\t{$post->post_title}";
}

Andere URLs aus der WordPress Datenbank ziehen

In dem du eine andere Tabelle abfragst bekommst du auch andere URLs ausgeliefert, so einfach ist das ?

		case 'page':
			$permalink = get_page_link($post->ID);

Also du musst nur wenig im oberen Beispiel Ă€ndern um z.B. an die Beitrags-URLs zu kommen. In Zeile 22 musst du fĂŒr page nur post einsetzen und noch die Permalink-Abfrage anpassen.

		case 'post':
			$permalink = get_permalink($post->ID);

Schon bekommst du fĂŒr jeden Beitrag die entsprechende URL.

Wie wird das umgesetzt?

Da du ja jetzt nicht irgendwo ein Feld hast wo du diese Zeilen hineinschreiben kannst musst du eine .php-Dateien erstellen.

Also einfach das obere Code-Beispiel copy&paste in einen Editor deiner Wahl und dann als .php-Datei abspeichern. Ich habe da so Namen wie export-wp-(CASE)-urls.php vergeben. So konnte ich auch an der aufgerufenen URL sehen was ich gerade fĂŒr URLs aus der Datenbank gezogen haben.

Diese .php-Datei musst du in das Root-Verzeichnis deiner WordPress-Instanz setzen und dann einfach ĂŒber die URL: https://(DEINE-DOMAIN.de)/export-wp-(CASE)-urls.php aufrufen.

Das Ergebnis ist eine einfach Textausgabe, diese kannst du dann ganz einfach weiter verarbeiten.

1 Kommentar zu „URLs aus WordPress exportieren“

Schreibe einen Kommentar

Falls du auf diesen Beitrag mit einem Artikel auf deiner eigenen Webseite geantwortet hast, kannst du hier die URL deines Beitrags eingeben. Dabei sollte es sich um die Permalink-URL handeln. Deine Antwort wird dann (möglicherweise nach der Moderation) auf dieser Seite angezeigt. Falls du deine Antwort aktualisieren oder entfernen möchtest, aktualisiere oder lösche deinen Beitrag auf deiner eigenen Webseite und gib die URL des Beitrags erneut ein. (Erfahre mehr ĂŒber Webmentions.)