gpt4 book ai didi

mysql - 如何排序我的 MySQL 记录? | MySQL-WordPress

转载 作者:行者123 更新时间:2023-11-29 08:36:17 24 4
gpt4 key购买 nike

我正在为基于 WordPress 的客户创建一个网站。我的客户希望在主页中显示按类别分组的文章。

例如,假设我们有类别“Cat A”、“Cat B”和“Cat C”。我的客户希望在主页中按以下方式显示类别顺序“Cat B”、“Cat A”和“Car C”,然后在主页中列出每个类别的 6 个帖子。

假设这是我想要显示的结果:

Cat B
---------------------------
Cat B - Article #1
Cat B - Article #2
Cat B - Article #3
Cat B - Article #4
Cat B - Article #5
Cat B - Article #6

Cat A
---------------------------
Cat A - Article #1
Cat A - Article #2
Cat A - Article #3
Cat A - Article #4
Cat A - Article #5
Cat A - Article #6

Cat C
---------------------------
Cat C - Article #1
Cat C - Article #2
Cat C - Article #3
Cat C - Article #4
Cat C - Article #5
Cat C - Article #6

我正在寻找的是一种对要在主页中显示的类别进行排序的方法。

现在,我已经在 WordPress 仪表板中创建了一个页面,从那里我可以根据需要对类别进行排序,然后可以在 wp 选项页面中保存订单选项。问题是,如何根据后端的顺序对前端的类别进行排序。

假设类别如下:

Categories
-----------------
Name | ID
-----------------
Cat A | 100
Cat B | 101
Cat C | 102

在我的 wp_options 表中,我可以存储以下数组:

array(
1 => 101,
2 => 100,
3 => 102
)

数组键可以是订单序列,值可以是类别 ID。

现在,通过知道序列是什么,我如何通过单个 MySQL 查询获得结果?

最佳答案

分类(例如类别或标签)中的每个项目(例如类别或标签)都有名称、slug(可以进入 URL 的短名称)和描述。

如果您愿意专门描述订购类别商品,则可以在该字段中为类别 B 输入 1,为类别 A 输入 2,为类别 C 输入 3。您可以从仪表板执行此操作。

然后,当您检索术语时,您可以使用此查询以适当的顺序获取类别 ID。

SELECT t.term_id, t.name, t.slug
FROM wp_terms t
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'category'
ORDER BY tt.description, t.term_id

但这会占用您的描述字段,或者至少会将一些内部垃圾放入一些(但不是很多)主题用于显示目的的字段中。

您也可以使用 slug 来实现此订购目的。例如,您可以指定“1catb”来代替 slug 的“catb”(为其他 slug 指定“2cata”和“3catc”)。同样,它会对您的显示产生一些影响,这次是对您网站中某些 URL 的形式产生影响。这是您在这种情况下可能使用的查询/

SELECT t.term_id, t.name, t.slug
FROM wp_terms t
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
WHERE tt.taxonomy = 'category'
ORDER BY t.slug, t.term_id

在我看来,将单个 wp_options 行转换为可连接的表太麻烦了,不值得这么麻烦,特别是对于经常显示的网站前门页面。但是您可以为此使用多个 wp_options 行。为您的 wp_options 指定名称和值,如下所示:

   option_name       option_value
mycat_order_001 2
mycat_order_002 1
mycat_order_003 3

然后使用这样的查询来按顺序获取类别名称。

SELECT t.term_id, t.name, t.slug
FROM wp_terms t
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id
JOIN wp_options o ON ( o.option_name LIKE 'mycat_order_%'
AND o.option_value = t.term_id)
WHERE tt.taxonomy = 'category'
ORDER BY o.option_name, t.term_id

这将以正确的顺序提取您的术语。这里的成本是当用户指定所需的订单时更新 wp_options 表的更复杂的代码。

所以有一些替代方案。请记住,简单就是好的。

关于mysql - 如何排序我的 MySQL 记录? | MySQL-WordPress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com