我正在将数据从外部web服务拉入自定义帖子类型。此数据包括图像。如何创建图像库、向其中添加一些现有附件以及将其与帖子关联?
我希望找到的是set_post_gallery
对应于get_post_gallery
功能,但我在codex、google或wp-includes/media.php
.
以下是我设置附件的方式:
$attachment = [
\'guid\' => wp_upload_dir()[ \'url\' ] . \'/\' . basename( $path ),
\'post_mime_type\' => wp_check_filetype( basename( $path ), null )[ \'type\' ],
\'post_title\' => "$mlsNum $id",
\'post_content\' => \'\',
\'post_status\' => \'inherit\'
];
$attachmentId = wp_insert_attachment( $attachment, $path, $this->postId );
// Generate attachment metadata and create resized images.
wp_update_attachment_metadata( $attachmentId, wp_generate_attachment_metadata( $attachmentId, $path ));
这就是我试图检索主题库的方式:
$gallery = get_post_gallery( $post, false );
var_dump( $gallery );
var_dump( $post );
$post
定义,以及
$gallery
为false。我的印象是
wp_insert_attachment
会为帖子创建一个图库并添加附件,但显然不是这样。如果是的话,那么当我将PDF附加到帖子时,这会给我带来其他问题。
最合适的回答,由SO网友:Jörn Lund 整理而成
当您只有要分配给帖子的原始图像文件时,wp_insert_attachment
将完成这项工作。
如果数据库中已存在附件,则可以使用wp_update_post
设置附件的post\\u父级。像这样:
wp_update_post( array(
\'ID\' => $attachment_id,
\'post_parent\' => $parent_post_id,
));
要接收帖子的附件,可以使用
get_children
.
$args = array(
\'post_parent\' => $parent_post_id,
\'post_type\' => \'attachment\',
);
$attachments = get_children( $args );
如果你坚持使用
get_post_gallery
– 将只返回图像附件。您应该添加
[gallery]
父帖子内容的快捷码。