在get_row()中限制结果的最佳实践?

时间:2013-05-20 作者:Derfder

这是我的查询,用于检查标题是否存在(它位于循环中,因此为[$i])。

$wpdb->get_row("SELECT * FROM wp_posts WHERE post_title = \'" . $titles_arr[$i] . "\'", \'ARRAY_A\');
无论如何,我想知道如何使用LIMIT 0,1000query only the last 1000 added posts 当使用get\\u row()函数时,返回到数据库。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

这本质上是SQL 问题唯一可能的WordPress相关组件是,如果您询问数据库结构,which is in the Codex. 或者您可以只查看数据库本身。

帖子ID递增,从不重复。最高的IDs是最后添加的。查询很简单。

SELECT * 
FROM {$wpdb->posts} 
WHERE post_title = \'{$titles_arr[$i]}\'
ORDER BY {$wpdb->posts}.ID DESC
LIMIT 0,1000
请注意,我使用$wpdb->posts 而不是硬编码表名。您的查询将在前缀不同于的网站上中断wp_ 在多站点上(我很肯定)。

请注意$wpdb->posts 除了简单的post 职位类型。如果你特别想post 发布类型您需要添加进一步的条件。

SELECT * 
FROM {$wpdb->posts} 
WHERE post_title = \'{$titles_arr[$i]}\'
AND {$wpdb->posts}.post_type = \'post\'
ORDER BY {$wpdb->posts}.ID DESC
LIMIT 0,1000
可能还需要进一步的条件,以防止结果包括“草稿”或“待定”帖子、或“修订”或其他一些内容。

结束

相关推荐

WP_QUERY元_按数组键查询

我有一个自定义的post类型,它的meta位于一个数组中。我需要做的是基于该元数组中键的值进行查询。$args = array( \'post_type\' => \'my-cpt\', \'posts_per_page\' => -1, \'orderby\' => \'meta_value\', // Sort by this value \'meta_key\