首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制媒体库还是分类?

复制媒体库还是分类?
EN

Stack Overflow用户
提问于 2015-03-13 09:14:25
回答 2查看 243关注 0票数 1

我想到了一个插件Wordpress (我的目标是创建),它将基本使用媒体库的相同功能(上传/查看/设置图片描述等)。

是否有一种方法“复制”媒体库,然后按您的意愿使用/修改它?

背景:我想为不同的客户分类这些照片(网站所有者上传的照片)。我认为内置的媒体库应该用于特定网站的照片(如标识、产品照片等)。我不想把内置的“媒体库”和特定客户的照片混为一谈。

准则也许有更好的方法。(在媒体中为每个客户创建类别更好吗?)如果有,请告诉我。我在找指引-不是解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-22 11:31:56

解决方案1:首先使用查询帖子,然后对每个查询帖子使用如下代码:

代码语言:javascript
复制
$images = get_children( array(
    'post_parent'    => get_the_ID(),
    'post_type'      => 'attachment',
    'post_mime_type' => 'image',
    'numberposts'    => -1
    ) );
foreach ( (array) $images as $image ) {
    print wp_get_attachment_url( $image->ID );
}

我不喜欢这个解决方案,因为它会生成许多SQL查询。

解决方案2:编写自己的SQL查询,该查询将同时选择所有图像。它应该是这样的:

代码语言:javascript
复制
// change this to your custom post type, attachment in your case.
$post_type = 'attachment';

    global $wpdb;
    $where = get_posts_by_author_sql( $post_type );
    $query = "SELECT * FROM $wpdb->posts p where p.post_type = 'attachment' AND (p.post_mime_type LIKE 'image/%')  AND (p.post_status = 'inherit') AND p.post_parent IN (SELECT $wpdb->posts.ID FROM $wpdb->posts  {$where} ) ORDER BY p.post_date DESC";
    $results =  $wpdb->get_results( $query );

    if ( $results ) {

      foreach ( (array) $results as $image ) {
        print wp_get_attachment_url( $image->ID );
      }
    }

我构建这个插件的方式是创建一个自定义post类型,类似于媒体上传类型,然后根据您的意愿修改它(例如添加一个类别)。

我喜欢插件的想法,所以让我知道,然后你完成,祝你好运。

编辑:如果您实际上希望将所有图像文件复制到另一个目录,您可以使用以下方法进行如下操作:

代码语言:javascript
复制
$source = wp_upload_dir(); // get WordPress upload directory
$dest= "wp-content/My-new-Directory"; // where you would like to copy

mkdir($dest, 0755);
foreach (
 $iterator = new \RecursiveIteratorIterator(
  new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS),
  \RecursiveIteratorIterator::SELF_FIRST) as $item
) {
  if ($item->isDir()) {
    mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
  } else {
    copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
  }
}
票数 1
EN

Stack Overflow用户

发布于 2015-03-22 01:12:08

理论上你可以复制整个媒体画廊。

媒体库(在管理面板中)基本上是一个post类型的存档。有疑问的Post类型是附件

通过定义自定义post类型,您可以添加复制附件功能所需的所有操作、显示和功能挂钩。

如果您想通过使用层次化或非结构化的分类法来对附件进行分类,则可以为附件post类型注册自定义分类法。

这两种方式都是半复杂的,也许是不必要的。您能不能更详细地描述一下您的使用情况,以便我能更好地帮助您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29028510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档