WordPress(和PHP)新手,我正在尝试让这个PHP代码段与代码段插件配合使用,这样我就可以在帖子中显示所有媒体附件。它正在工作,因为它现在将附件显示为帖子上的缩略图,但由于使用了print\\r功能,它们出现在页面顶部,而不是放置快捷码的位置。我知道要解决这个问题,必须使用return语句,但我不知道如何正确返回数据。如果我使用return语句,它只会将文本“Array”打印到页面上。是否有人可以帮助我了解如何调整此功能,以便此功能返回显示媒体所需的数据?我假设每个附件都必须添加到一个数组中,然后打印该数组的内容,但我不知道怎么做。谢谢
function get_media () {
$attachments = get_posts( array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'post_status\' => null,
\'post_parent\' => get_the_ID()
) );
foreach ( $attachments as $attachment ) {
print_r(wp_get_attachment_image( $attachment->ID, \'thumbnail\' ));
}
}
add_shortcode( \'media\', \'get_media\' ) ;
SO网友:Alexander Holsgrove
正如您所提到的,您的代码存在的问题是,您通过print_r
函数,而您需要构建一个字符串来返回,该字符串将显示在短代码的位置。
尝试一下:
function get_media () {
$attachments = get_posts([
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'post_status\' => null,
\'post_parent\' => get_the_ID()
]);
if ($attachments) {
foreach ($attachments as $attachment) {
$output .= wp_get_attachment_image($attachment->ID);
}
}
return $output;
}
add_shortcode( \'media\', \'get_media\' ) ;