Intereting Posts

Извлечение почтовых категорий

Я в середине помогаю коллеге переконфигурировать базу данных WordPress для использования на другой платформе. В базе данных содержатся подробные сведения о всех постах и ​​сопроводительных метаданных и т. Д.

Одна из вещей, за которые я застрял, – это определить, как соотнести каждое сообщение со своей категорией WordPress. По сути, я бы хотел, чтобы вытащить каждое сообщение с соответствующей категорией в электронную таблицу, и, чтобы иметь возможность сделать это, я, очевидно, должен знать их отношения в таблицах.

Может ли кто-нибудь указать мне в правильном направлении? Любая помощь была бы искренне оценена. Спасибо.

Solutions Collecting From Web of "Извлечение почтовых категорий"

В WordPress есть таблица, называемая * wp_term_relationships *, чтобы отслеживать несколько типов отношений, включая пост-категорию.

Пойдем по столу:

  1. wp_posts – содержит все сообщения, страницы и другой контент. Вы хотите опросить все строки, у которых есть -> post_type = post . Вы можете опросить только опубликованные сообщения -> post_status = publish

  2. wp_term_relationships – столбец object_id будет содержать идентификатор сообщения, а term_taxonomy_id будет содержать идентификатор категории.

  3. wp_term_taxonomy – эта таблица будет содержать информацию о каждой таксономии. Не все таксономии являются категориями WordPress. Таким образом, вы захотите опросить только те термины, которые имеют -> taxonomy = category .

  4. wp_terms – В этой таблице содержится информация о терминах . У вас уже есть term_id в таблице выше, но вы не знаете, что это имя. Вы можете получить это отсюда.

Ваш оператор SQL будет выглядеть так:

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"