我想到了一个插件Wordpress (我的目标是创建),它将基本使用媒体库的相同功能(上传/查看/设置图片描述等)。
是否有一种方法“复制”媒体库,然后按您的意愿使用/修改它?
背景:我想为不同的客户分类这些照片(网站所有者上传的照片)。我认为内置的媒体库应该用于特定网站的照片(如标识、产品照片等)。我不想把内置的“媒体库”和特定客户的照片混为一谈。
准则也许有更好的方法。(在媒体中为每个客户创建类别更好吗?)如果有,请告诉我。我在找指引-不是解决办法。
发布于 2015-03-22 11:31:56
解决方案1:首先使用查询帖子,然后对每个查询帖子使用如下代码:
$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查询,该查询将同时选择所有图像。它应该是这样的:
// 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类型,类似于媒体上传类型,然后根据您的意愿修改它(例如添加一个类别)。
我喜欢插件的想法,所以让我知道,然后你完成,祝你好运。
编辑:如果您实际上希望将所有图像文件复制到另一个目录,您可以使用以下方法进行如下操作:
$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());
}
}发布于 2015-03-22 01:12:08
理论上你可以复制整个媒体画廊。
媒体库(在管理面板中)基本上是一个post类型的存档。有疑问的Post类型是附件。
通过定义自定义post类型,您可以添加复制附件功能所需的所有操作、显示和功能挂钩。
如果您想通过使用层次化或非结构化的分类法来对附件进行分类,则可以为附件post类型注册自定义分类法。
这两种方式都是半复杂的,也许是不必要的。您能不能更详细地描述一下您的使用情况,以便我能更好地帮助您。
https://stackoverflow.com/questions/29028510
复制相似问题