it-swarm.com.de

Beitragskategorien extrahieren

Ich bin gerade dabei, einen Kollegen bei der Neukonfiguration einer Wordpress-Datenbank für die Verwendung auf einer anderen Plattform zu unterstützen. Die Datenbank enthält im Wesentlichen Details zu allen Posts und zugehörigen Metadaten usw.

Eines der Dinge, an denen ich festhalte, ist zu bestimmen, wie jeder Beitrag mit seiner Wordpress-Kategorie korreliert werden soll. Im Grunde möchte ich jeden Beitrag mit der entsprechenden Kategorie in eine Tabelle ziehen können, und um das zu können, muss ich deren Beziehung innerhalb der Tabellen genau kennen.

Kann mich jemand in die richtige Richtung weisen? Jede Hilfe wäre aufrichtig dankbar. Vielen Dank.

1
marchon

Wordpress hat eine Tabelle mit dem Namen * wp_term_relationships * , um verschiedene Arten von Beziehungen zu verfolgen, einschließlich der Post-Kategorie.

Lass uns Tisch für Tisch gehen:

  1. wp_posts - enthält alle Posts, Seiten und anderen Inhalte. Sie möchten alle Zeilen abrufen, die -> post_type = post haben. Möglicherweise möchten Sie nur veröffentlichte Beiträge abrufen -> post_status = publish

  2. wp_term_relationships - Die Spalte object_id enthält die Beitrags-IDs und die term_taxonomy_id Halten Sie die Kategorie-ID.

  3. wp_term_taxonomy - Diese Tabelle enthält die Informationen zu jeder Taxonomie. Nicht alle Taxonomien sind Kategorien in WordPress. Sie möchten also nur Begriffe mit der Taxonomie -> = Kategorie abfragen.

  4. wp_terms - Diese Tabelle enthält die Begriffsinformationen. Sie haben bereits die term_id in der obigen Tabelle, aber Sie wissen nicht, wie sie heißt. Sie können es von hier bekommen.

Ihre SQL-Anweisung sieht folgendermaßen aus:

SELECT wp_posts.post_title, wp_posts.ID, wp_terms.name FROM wp_posts
  LEFT JOIN wp_term_relationships ON wp_posts.ID=wp_term_relationships.object_id 
  LEFT JOIN wp_term_taxonomy ON wp_term_taxonomy.term_taxonomy_id=wp_term_relationships.term_taxonomy_id 
  LEFT JOIN wp_terms ON  wp_terms.term_id=wp_term_taxonomy.term_id 
  WHERE wp_posts.post_type = "post" AND wp_posts.post_status = "publish" AND wp_term_taxonomy.taxonomy = "category"
1
gdaniel