是否将图片库添加到自定义帖子类型?

时间:2014-03-24 作者:Dan Ross

我正在将数据从外部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附加到帖子时,这会给我带来其他问题。

2 个回复
最合适的回答,由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] 父帖子内容的快捷码。

SO网友:Dave Hilditch

这里有一个很好的PHP解决方案,它可以将gallery编辑器添加到自定义帖子类型编辑器中-很好,如果你和我一样,你可以使用PHP创建自定义帖子类型,并使用WPAllImport导入数据。在这种情况下,我希望确保使用默认库,以便允许客户端编辑/添加/删除导入的图像。

下面的代码将库编辑器添加到自定义post type编辑器界面:

https://gist.github.com/alexdunae/897503

结束

相关推荐

Custom gallery in wp3.5

我使用了我在3.4中为一个光滑的小自定义库找到的教程,但升级到3.5后,它就不再工作了。我仍在努力学习php,但似乎无法再次使用它,因为我要么出错,要么什么都没有。无论如何,在升级之前,用户所要做的就是点击“添加媒体”,上传他想在帖子中显示的任何图像[在本例中是产品],设置图像的顺序,第一个图像是顶部/全尺寸图像,然后在文本字段中键入他的描述,当他点击“提交”时,将以上所有内容以良好的格式显示出来,如下所示:single.php xxxxxxxxxxxxxxxxxxxxxxxxxxxxx