我正在尝试构建一个MySQL查询,按语言(Polylang插件)选择最后一篇文章,但我无法找到Polylang存储每个文章语言的表格和字段。
有什么线索吗?
SELECT * FROM wp_posts WHERE post_status = 'publish' AND ID IN (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, '"en";i:', -1), ';',1) FROM `wp_term_taxonomy` WHERE `taxonomy` = 'post_translations' ) order by ID desc
我知道回答你的问题已经太晚了,但我会写下来,方便未来用户。
你可以在 wp_term_relationships
和 wp_term_taxonomy
数据表中找到与 Polylang
相关的所有内容。
例如,如果我想要获取 id = 157896
的特定文章的语言。
在 wp_term_relationships
表的 object_id
列中,我应该搜索 157896
,然后就能得到结果。
object_id | term_taxonomy_id
----------------------------
157896 | 26284
157896 | 26130
157896 | 11
在wp_term_taxonomy
中,我们有:
term_taxonomy_id | taxonomy | description
---------------------------------------------
26284 | post_translations | a:2:{s:2:"en";i:157896;s:2:"de";i:157894;}
26130 | category | Description ... ...
11 | language | a:3:{s:6:"locale";s:5:"en_UK";s:3:"rtl";i:0;s:9:"flag_code";s:2:"en";}
26130
是与类别相关的。
26280
表示该帖子已翻译成de
和en
语言,其中en
的帖子编号为157896
,de
的帖子编号为157894
。
11
意味着id = 157896
的帖子以en
(英语)语言发布。
wp_term_relationships
是一个关联表
。
wp_term_taxonomy
表中。它是一个包含您的语言环境和文章ID的数组。查询语句为:SELECT * FROM `wp_term_taxonomy` WHERE `taxonomy` = 'post_translations'
。 - 4lxndr