Hallo an WordPress: Beitragskategorien != Blogrollkategorien

FRUUUUUUUUUUUUUUUUUUUUUUUUST!!!

Das muss ich jetzt mal loswerden. Gestern (bzw heute gegen Mitternacht) kam WordPress 2.1 raus. So viel besser, so viel einfacher, so viel einfach alles. HA! Erst sollen gar nicht alle Plugins funktionieren (naja für mich irrelevant, aber trotzdem) aber ansonsten soll es gaaaaanz einfach gehen.

Also ich frisch ans Werk und brav die Instruktionen ausgeführt und auch Backup gemacht. Und dann wieder brav alle deaktivierten Plugins aktiviert. Es ging soweit ganz gut bis ich zur Auflistung meiner Blogroll-Kategorien komme:

WordPress database error: [Unknown column 'link_count' in 'where clause']
SELECT * FROM wp_categories WHERE cat_ID > 0 AND link_count > 0 ORDER BY cat_name ASC

Begeisterung pur. Irgendwas stimmt also nicht mit der Zuordnung der Links meiner Blogroll zu Kategorien (Tabelle wp_link2cat). Das gleiche Bild im Admin-Bereich. Aber beheben kann ich das auch nicht! Beim Verfassen dieses Beitrags lacht mich die gleiche Fehlermeldung an, da wo es um die Zuordnung des Beitrags zu einer Kategorie geht.

Und hier liegt auch der Grund: ab Version 2.1 sollen Beitrags- und Blogroll-Kategorien ein- und dasselbe sein. Pech nur, dass ich das ganz anders organsiert habe. Man sollte erwarten, dass dies beim Upgrade beachtet wird, aber Pustekuchen. GRUML. In der Admin-Übersicht meiner Beiträge werden die Kategorien schön ordentlich aufgeführt. Und bei meinen Links gibt es auch eine Zuordnung, die allerdings etwas gewöhnungsbedürftig ist. Ich nehme an, es liegt daran, dass die Kategorien per ID angesprochen werden und deshalb etwas seltsam anmuten.

Behebungsversuche meinerseits (Rumbastlen an Datenbank per phpMyAdmin, Neuinstallation von WordPress etc) haben bisher nichts gefruchtet. Ich weiß nicht, ob ich es übers Herz bringe, da noch länger dran rumzubasteln. Eigentlich hab ich ja auch was anderes (Wichtigeres) zu tun. Also nicht wundern. Zwischendurch hab ich noch fast einen Herzinfarkt bekommen, als gar nichts mehr dargestellt wurde und der Aufruf jeder php-Seite von Firefox mit einer Datei-Speichern-Aufforderung quittiert wurde. Aber das geht ja mittlerweile wieder.

Update: Aufgeben konnte ich ja nicht und deshalb bin ich das mal logisch angegangen. Es hat tatsächlich irgendwie funktioniert, wenn auch mit ein wenig Aufwand und ohne Sicherheitsgarantie. Wer einen Fehler in meiner Vorgehensweise findet, bitte einen kurzen Kommentar dazu – Danke. Aber mit folgender Vorgehensweise, funktioniert es zumindest vorläufig bei mir:

  1. Einloggen in Datenbank per phpMyAdmin (wenn das auf dem betreffenden Weblog nicht möglich ist, weiß ich auch nicht…),
  2. Auswahl der Tabelle wp_categories (wenn „wp_“ das Tabellenpräfix),
  3. Anlegen eines neues Feldes (am Ende) mit den Eigenschaften
    Feld link_count
    Typ BIGINT
    Länge/Set 20
    Attribute [leer]
    Null not null
    Standard 0
    Extras [leer]
  4. Speichern des eben erstellen Feldes.
  5. Zurück in WordPress im Admin-Bereich die Blogroll-Kategorie aufrufen,
  6. Manuelles Bearbeiten jedes einzelnen Blogroll-Links,
  7. Kategorien sind noch keine vorhanden, können aber leicht hinzugefügt werden,
  8. werden bereits vorhandenen Kategorienamen verwendet (also Kategorien für Beiträge), dann wird auch die Anzahl Links in der Admin-Kategorie Verwalten » Kategorien entsprechend angepasst.

So, nachdem ich das Wort Kategorie in drei verschiedenen Varianten gebraucht habe, hoffe ich, dass niemand verwirrt wird.

Ganz optimal ist dieser Lösungsansatz nicht, man kann nämlich keine neuen Beitragskategorien anlegen. Möchte ich eine neue Kategorie names Kategorie anlegen, erscheint der Fehler

WordPress database error: [Unknown column ‚links_private‘ in ‚field list‘]
INSERT INTO wp_categories (cat_ID, cat_name, category_nicename, category_description, category_parent, links_private, posts_private) VALUES (‚0‘, ‚Kategorie‘, ‚kategorie‘, “, ‚0‘, ‚0‘, ‚0‘)

HILFE! Wer weiß Rat? Ich bisher (noch) nix finden können.

Update 2: So, hab mir selber geholfen! War ganz einfach. Einfach zwei weitere Felder in wp_categories analog obiger Methode einfügen:

  1.  
    Feld posts_private
    Typ TINYINT
    Länge/Set 1
    Attribute [leer]
    Null not null
    Standard 0
    Extras [leer]
  2.  
    Feld links_private
    Typ TINYINT
    Länge/Set 1
    Attribute [leer]
    Null not null
    Standard 0
    Extras [leer]
  3. Es muss eine Kategorie „Blogroll“ geben. Falls noch nicht vorhanden, als neue Zeile einfügen.

Das sollte auf jeden Fall stimmen. Ich bin erst nicht darauf gekommen, weil in der zweiten Fehlermeldung das Feld link_count fehlte und ich deshalb nicht weiter wusste. Aber dann habe ich eine zusätzliche Instanz von WordPress (mit anderem Tabllenpräfix – einzustellen in wp-config.php) installiert und mir da die Tabellenstruktur angesehen. Dort hat wp_categories genau jene drei zusätzlichen Felder mit den gegeben Eigenschaften. Also sollte es damit funktionieren. Bei mir gab es jedenfalls noch keine Probleme.

Das Einzige, was ich noch nicht rausgefunden habe, ist die Standardkategorie. Bei einer Neuinstallation sind sowohl „Unkategorisiert“ als auch „Blogroll“ als Standardkategorien definiert (einmal für Beiträge, einmal für Links). Wo man das einstellt, habe ich nicht gefunden. Es gibt in der Tabelle wp_options die Zeile „default_category“, aber da steht nur die ID für „Unkategorsiert“ drin.

Veröffentlicht von

juliaL49

Wilde Mischung aus musikinteressiertem Konzertbesucher, fernsehbegeistertem Whovian, radfahrendem Läufer, fotografierendem Atheisten und ausgewandertem Bioinformatiker

7 Gedanken zu „Hallo an WordPress: Beitragskategorien != Blogrollkategorien“

  1. Bei meinem ersten Updateversuch hatte ich genau den gleichen Fehler, allerdings hab ich einfach das Backup eingespielt und am nächsten Tag ging es Problemlos.

  2. Na da hätte ich wohl einfach mehr Geduld zeigen müssen…
    Ich wollte noch erwähnen, dass ich das mit der Blogroll-Standardkateogrie gefunden habe: im Adminbereich unter Einstellungen » Schreiben

  3. Ich hatte leider das gleiche Problem mit den Kategorien. Mit deiner Beschreibung hat das aber super geklappt!

    Danke und Gruss
    dsone

  4. Schön, dass ich jemandem helfen konnte – da hat sich der Ärger ein wenig gelohnt. Lustige Seite übrigens, wie der Name ja schon vermuten lässt…

  5. danke für die hilfreiche anleitung, hab gerade das upgrade auf 2.1 versucht, dabei kamen dann die beschriebenen fehlermeldungen. das upgrade-skript versucht schon die neuen felder der tabelle hinzuzufügen, da aber mein datenbank-user für das blog nur eingeschränkte rechte auf der db hat kann er das nicht durchführen. mit phpmyadmin hat man ja meist die rechte.

    lösung könnte also sein: vor dem upgrade die datenbank-zugriffsrechte für den dbuser hochsetzen, und ggf. nach dem upgrade wieder runtersetzen.

  6. Ich denke die Nutzerrechte könnten eine Ursache für das Fehlschlagen des Update-Skripts sein. Aber bei mir kann das nicht die Ursache gewesen sein, denn der DB-Nutzer hat die entsprechenden Rechte. Und flash schrieb ja auch, dass es bei ihm nur beim ersten Mal schiefgegangen ist. Wirklich seltsame Geschichte. Vielleicht klärt sich ja noch mit der Zeit, was beim Update-Skript der Fehler war.

  7. Mittlerweile (nach 3 Wochen) ist es auch im deutschen WordPress-Forum angekommen. Es gibt einen Beitrag in dem auch andere Lösungsvorschläge gegeben werden. Besonders interessant ist #5, da dort eine Möglichkeit angegeben wird, die upgrade.php zu ändern und so das Herumarbeiten in den Datenbanktabellen mit phpMyAdmin vermieden wird.

Kommentare sind geschlossen.