投稿、タクソノミー、タームの関係

投稿、タクソノミー、タームの関係について確認します。また関連するテーブルについても取り上げます。

用語整理

  • タクソノミー ( taxonomy 分類種類 )
    • カテゴリ
      • 親子階層にできる
    • タグ
      • 親子階層にできない
  • ターム ( term 分類名称 )
    • カテゴリ名
    • タグ名

例を示します。

  • タクソノミー
    • 地域カテゴリー
  • ターム
    • 東京都, 埼玉県, 茨城県 …

関連テーブル

下記テーブルについて確認します。

テーブル 概要
wp_posts 投稿情報を管理
wp_term_relationships 投稿とタームを紐づけ
wp_term_taxonomy タクソノミー情報と紐づくタームを管理
wp_terms タームを管理

wp_posts

mysql> SELECT `wp_posts`.`ID`,
    ->        `wp_posts`.`post_type`,
    ->        `wp_posts`.`post_name`
    -> FROM wp_posts
    -> WHERE `wp_posts`.`ID` = 1;
+----+-----------+-------------+
| ID | post_type | post_name   |
+----+-----------+-------------+
|  1 | post      | hello-world |
+----+-----------+-------------+
1 row in set (0.00 sec)

wp_term_taxonomy

mysql> SELECT *
    -> FROM `wp_term_relationships`;
+-----------+------------------+------------+
| object_id | term_taxonomy_id | term_order |
+-----------+------------------+------------+
|         1 |                2 |          0 |
|         1 |                3 |          0 |
|         1 |                4 |          0 |
+-----------+------------------+------------+
3 rows in set (0.00 sec)

wp_term_relationships

mysql> SELECT *
    -> FROM `wp_term_taxonomy`;
+------------------+---------+----------+-------------+--------+-------+
| term_taxonomy_id | term_id | taxonomy | description | parent | count |
+------------------+---------+----------+-------------+--------+-------+
|                1 |       1 | category |             |      0 |     0 |
|                2 |       2 | category |             |      0 |     1 |
|                3 |       3 | post_tag |             |      0 |     1 |
|                4 |       4 | post_tag |             |      0 |     1 |
+------------------+---------+----------+-------------+--------+-------+
4 rows in set (0.01 sec)

wp_terms

mysql> SELECT *
    -> FROM `wp_terms`;
+---------+------------------+------------------------------------------------+------------+
| term_id | name             | slug                                           | term_group |
+---------+------------------+------------------------------------------------+------------+
|       1 | カテゴリーA         | %e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bca |          0 |
|       2 | カテゴリーB         | %e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bcb |          0 |
|       3 | タグA             | %e3%82%bf%e3%82%b0a                            |          0 |
|       4 | タグB             | %e3%82%bf%e3%82%b0b                            |          0 |
+---------+------------------+------------------------------------------------+------------+
4 rows in set (0.00 sec)

結合して表示

投稿に カテゴリーA タグA タグB が紐づいています。

SELECT `wp_posts`.`ID`,
       `wp_posts`.`post_type`,
       `wp_posts`.`post_name`,
       `wp_term_taxonomy`.`taxonomy`,
       `wp_term_taxonomy`.`parent`,
       `wp_term_taxonomy`.`count`,
       `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_relationships`.`term_taxonomy_id` = `wp_term_taxonomy`.`term_taxonomy_id`
LEFT JOIN `wp_terms`
ON `wp_terms`.`term_id` = `wp_term_taxonomy`.`term_id`
WHERE `wp_posts`.`ID` = 1;
mysql> SELECT `wp_posts`.`ID`,
    ->        `wp_posts`.`post_type`,
    ->        `wp_posts`.`post_name`,
    ->        `wp_term_taxonomy`.`taxonomy`,
    ->        `wp_term_taxonomy`.`parent`,
    ->        `wp_term_taxonomy`.`count`,
    ->        `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_relationships`.`term_taxonomy_id` = `wp_term_taxonomy`.`term_taxonomy_id`
    -> LEFT JOIN `wp_terms`
    -> ON `wp_terms`.`term_id` = `wp_term_taxonomy`.`term_id`
    -> WHERE `wp_posts`.`ID` = 1;
+----+-----------+-------------+----------+--------+-------+------------------+
| ID | post_type | post_name   | taxonomy | parent | count | name             |
+----+-----------+-------------+----------+--------+-------+------------------+
|  1 | post      | hello-world | category |      0 |     1 | カテゴリーB         |
|  1 | post      | hello-world | post_tag |      0 |     1 | タグA             |
|  1 | post      | hello-world | post_tag |      0 |     1 | タグB             |
+----+-----------+-------------+----------+--------+-------+------------------+
3 rows in set (0.00 sec)
【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。