wordpress get_results

阿里云服务器

在WordPress中,`get_results` 是WPDB类的一个方法,用于执行SQL查询并返回结果。它常用于自定义查询数据库,当WordPress的内置函数(如 `get_posts` 或 `wp_get_archives`)不能满足需求时,`get_results` 就变得非常有用。

要使用 `get_results`,你通常需要首先获取到 `wpdb` 对象的实例,这通常是通过全局变量 `$wpdb` 来实现的。以下是一个基本的使用示例:

```php

global $wpdb;

$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_status = 'publish'" );

foreach ( $results as $row ) {

    echo $row->post_title . '<br>';

}

```

在这个例子中,我们首先全局声明了 `$wpdb` 对象,然后使用 `get_results` 方法执行了一个SQL查询,查询所有状态为“publish”的文章。查询结果存储在 `$results` 数组中,我们可以遍历这个数组来访问每篇文章的标题。

`get_results` 方法有几个参数,其中最常用的是查询字符串。除此之外,你还可以指定返回结果的类型:

- `'OBJECT'`(默认):返回一个包含对象的数组,每个对象都代表数据库中的一行。

- `'ARRAY_A'`:返回一个包含关联数组的数组,每个数组都代表数据库中的一行。

- `'ARRAY_N'`:返回一个包含数字索引数组的数组,每个数组都代表数据库中的一行。

例如,如果你希望以关联数组的形式获取结果,你可以这样做:

```php

$results = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE post_status = 'publish'", ARRAY_A );


foreach ( $results as $row ) {

    echo $row['post_title'] . '<br>';

}

```

在使用 `get_results` 时,请确保你的SQL查询是安全的,特别是当你使用用户输入作为查询的一部分时。为了避免SQL注入攻击,你应该始终使用预处理语句或至少使用 `esc_sql` 函数来清理用户输入。

此外,对于大多数常见的查询需求,WordPress提供了更高级别的函数(如 `get_posts`),这些函数更加便捷且通常更安全。但在需要执行复杂查询或定制查询时,`get_results` 是一个非常有用的工具。