从 MySQL 中选择最新的结果,其中有超过 1 行匹配 ID


Selecting most recent result from MySQL where there are more than 1 rows matching ID

我正在使用带有一些自定义字段的wordpress,以缩短这个简短的内容,我回显出所有具有非空post_author meta_key的行,并将同样的名字组合在一起,否则我可能会得到皮特,史蒂夫,皮特 - 当我只需要皮特,史蒂夫。下面是使它工作的 SQL

$wpAuthors = $wpdb->get_results($wpdb->prepare("SELECT DISTINCT(meta_value)
FROM $wpdb->postmeta WHERE meta_value !='' AND meta_key = 'post_author'
ORDER BY meta_key ASC"));

这很好用。但是,如果我将作者从皮特更改为史蒂夫怎么办?当然,wordpress 会为该帖子 ID 创建一个重复的条目,具有不同的自定义字段行 ID(两行上的帖子 ID 类似于 1100,而条目行可能是 3000 和 3001)。现在这里的问题是我的脚本仍然有效,因为 Pete 和 Steve 都在正确的列中输入到数据库中,但我现在需要做的是选择该帖子 id 行的最新副本以获取最新的作者,这有意义吗?希望如此!

define('WP_POST_REVISIONS', false); 将此变量添加到 wp-config.php 中,它将阻止 WordPress 创建后期修订版。

之后安装此插件http://wordpress.org/plugins/wp-optimize/screenshots/.

现在使用上面的 wp 优化插件删除所有帖子修订。