在 MySQL 上通过 Polylang 语言查询 WordPress 帖子

Mat*_*sso 5 mysql wordpress polylang

我正在尝试构建一个 MySQL 查询来按语言(Polylang 插件)选择最后一篇文章,但我找不到 Polylang 存储每篇文章的语言的表和字段。有什么线索吗?

xin*_*qiu 8

以下 mysql 查询将找到所有以 Polylang 插件语言发布的 WordPress 帖子:

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
Run Code Online (Sandbox Code Playgroud)


Ras*_*kul 4

我知道现在回答你的问题已经太晚了,但我会写下来,供未来的用户使用。

Polylang您可以找到与inwp_term_relationshipswp_term_taxonomytable相关的所有内容。

例如,如果我想获取 id = 的特定帖子的语言157896

在我应该搜索的列wp_term_relationships中,我会得到object_id157896

object_id | term_taxonomy_id
----------------------------
  157896  |     26284
  157896  |     26130
  157896  |      11
Run Code Online (Sandbox Code Playgroud)

我们有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";}

Run Code Online (Sandbox Code Playgroud)

26130与类别相关

26280表示此帖子翻译为deen语言,帖子编号为enis 157896,帖子编号de157894

11表示帖子id = 157896en(英语)语言。

wp_term_relationships是一张pivot桌子。