您在这里的整个方法都是错误的,所以让我们逐行将其分解:
$a = the_ID();
the_ID
echo是post ID,这不是正确的函数,请使用
get_the_ID()
. 请注意,在WP函数中,以开头
the_
输出数据和以开头的函数
get_
返回数据。
$data = $wpdb->get_results("SELECT `id`,`guid` FROM `wp_posts` WHERE `post_type` = \'local-offer\' group by `post_author`");
这里,您将从post表中获取post ID,其中post类型为
local-offer
, 按文章作者分组,但此SQL查询不必要且速度较慢!你绕过了
WP_Cache
因此,它必须从头开始检索所有内容,而且已经有了一个用于执行此操作的API,
WP_Query
:
$q = new WP_Query( [
\'post_type\' => \'local-offer\',
\'orderby\' => \'author\'
\'order\' => \'ASC\',
\'fields\' => \'ids\'
] );
$data = $q->posts;
这里我们使用
WP_Query
获取帖子,告诉它只获取ID,按作者排序,并且只获取
local-offer
post类型,请参阅文档以了解更多选项,以及使用它创建用于显示内容的post循环。
$result = $wpdb->get_results("SELECT * FROM `wp_postmeta` WHERE `post_id` = ".$a." ");
这里我们有一个SQL查询来获取给定post ID的所有键值对,但是:
这里没有验证,让您很容易受到SQL注入攻击,已经有了一个简单的API调用您可以将其替换为:
$result = get_post_meta( $a );