Php 从数据库中提取特定帖子的对象

Php 从数据库中提取特定帖子的对象,php,wordpress,Php,Wordpress,我有以下代码: $test = get_post_meta($post->ID, 'author', true); var_dump($test); 这会返回这两个ID: 这是我的wp_posts数据库表中的两个ID,如何提取post_title和guid?以下是数据库中显示的内容: 由于您已经在使用WordPress的帮助函数,最简单的方法可能是使用相关的帮助函数和 大概是这样的: if( $_author = get_post_meta( $post->ID, 'author

我有以下代码:

$test = get_post_meta($post->ID, 'author', true);
var_dump($test);
这会返回这两个ID:

这是我的
wp_posts
数据库表中的两个ID,如何提取
post_title
guid
?以下是数据库中显示的内容:

由于您已经在使用WordPress的帮助函数,最简单的方法可能是使用相关的帮助函数和

大概是这样的:

if( $_author = get_post_meta( $post->ID, 'author', true ) ){
    foreach( $_author as $id_string ){
        $guid       = get_the_guid( $id_string );
        $post_title = get_the_title( $id_string );
    }
}
您也可以使用该类(特别是该方法),但这需要编写自己的SQL查询,安全地将其转换为准备好的语句,以防止使用该方法的SQL注入漏洞,总的来说,对于从
posts
表中获取两个字段这样简单的事情来说,似乎比必要的更复杂

global $wpdb;
$_author = get_post_meta( $post->ID, 'author', true );
$format  = array_fill( 0, count($_author), '%d' );
$format  = implode(',', $format);

$sql = "
    SELECT post_title, guid
    FROM   {$wpdb->posts}
    WHERE  ID
    IN ({$format})
    GROUP BY ID
";

$results = $wpdb->get_results( $wpdb->prepare( $sql, array($_author) ) );
上面的函数还没有经过测试,但应该很接近正常工作,只是表明它比使用WordPress已经为您提供的内置函数要复杂一些

WordPress有很多像这样方便的助手函数,通常它们遵循命名约定
获取对象的部分()
,并且通常以
获取对象的部分()开头的函数(省略
获取对象的部分>)会回显值,而不是仅仅返回值