我需要从我的 wordpress 媒体库中删除重复的图像

     2023-02-24     254

关键词:

【中文标题】我需要从我的 wordpress 媒体库中删除重复的图像【英文标题】:I need to remove duplicate images from my wordpress media library 【发布时间】:2014-04-12 00:22:04 【问题描述】:

我正在尝试从我的 wordpress 媒体库中删除重复的图像。

帖子本身不重复,但每个帖子的每个附件图片出现两次。

我环顾四周,但没有人给出明确的答案。有人说使用这样的东西:

  <?php 
    $p = get_posts(array('numberposts'=> -1));
    foreach($p as $t) 
      $s = get_children(array('post_type' => 'attachment', 'numberposts' => -1 )); 
      foreach ($s as $u) 
        var_dump($u);
      
    
  ?>

但是好像还是少了点,像这样给我带来了附件列表,但我还是不知道怎么比较。

在我看来,我需要使用一些 sql 查询并直接从数据库中删除媒体文件。不过我不太确定该怎么做。

理论上我需要尝试查找帖子,foreach 帖子获取附件,如果附件文件名 == 文件名则删除文件名。

帮助表示赞赏。

【问题讨论】:

文件不会在数据库中。它们保存在您的 /uploads/ 文件夹中。你有多少个文件? @henrywright 现在它更像是 3000 【参考方案1】:

在您的主题文件夹中创建一个文件,然后粘贴第一种或第二种方式的解决方案:

第一种方式(与他们的标题比较 - 推荐):

<?php

require('../../../wp-blog-header.php');
global $wpdb;

$querys = $wpdb->get_results(
    "
    SELECT a.ID, a.post_title, a.post_type
    FROM $wpdb->posts AS a
       INNER JOIN (
          SELECT post_title, MIN( id ) AS min_id
          FROM $wpdb->posts
          WHERE post_type = 'attachment'
          GROUP BY post_title
          HAVING COUNT( * ) > 1
       ) AS b ON b.post_title = a.post_title
    AND b.min_id <> a.id
    AND a.post_type = 'attachment'
    ");

echo "<style>td padding:0 0 10px;</style>";
echo "<h2>DUPLICATES</h2>\n";
echo "<table>\n";
echo "<tr><th></th><th>Title</th><th>URL</th></tr>\n";

foreach ( $querys as $query )

    $attachment_url = wp_get_attachment_url($query->ID);
    $delete_url = get_delete_post_link($query->ID);
    $delete_url = get_delete_post_link($query->ID);
    echo "<tr>
        <td><a style=\"color: #FFF;background-color: #E74C3C;text-decoration: none;padding: 5px;\" target=\"_blank\" href=\"".$delete_url."\">DELETE</a></td>
        <td>".get_the_title($query->ID)."</td>
        <td><a href=\"".$attachment_url."\">".$attachment_url."</a></td>
        </tr>\n";


echo "</table>";

?>

第二种方式(与他们的网址比较) 它的工作方式是,它会相互检查每个文件。因此,如果您有像 file.jpg 和 file1.jpg 这样的文件,那么它会将它们作为重复项捕获。此外,如果您有像 file1.jpg 和 file11.jpg 这样的文件,那么即使它们可能是完全不同的文件,它也会将它们视为重复文件。 :

<?php

require('../../../wp-blog-header.php');

$args = array(
    'post_type' => 'attachment',
    'numberposts' => -1,
    'orderby' => 'name',
    'order' => 'ASC',
    'post_status' => null,
    'post_parent' => null, // any parent
);

$newArray = array();

$attachments = get_posts($args);
$attachments2 = $attachments;


if ($attachments)

    foreach($attachments as $post)
        $attachment_url = wp_get_attachment_url($post->ID);
        $delete_url = get_delete_post_link($post->ID);
        $newArray[] = array("att_url" => $attachment_url, "del_url" => $delete_url);
    

    echo "<table>";
        $newArray2 = $newArray;
        echo "<tr><td><h2>DUPLICATES</h2></td></tr>";
        foreach($newArray as $url1)
            $url_del = $url1['del_url'];
            $url1 = $url1['att_url'];
            $url11 = substr($url1,0,strrpos($url1,"."));
            foreach($newArray2 as $url2)
                $url2 = $url2['att_url'];
                $url2 = substr($url2,0,strrpos($url2,".") - 1);

                if($url2 == $url11)
                
                    echo "<tr><td><a href=\"".$url_del."\">DELETE</a></td><td><a href=\"".$url1."\">".$url1."</a></td></tr>";
                
            
        
    echo "</table>";
    echo "<table>";
        echo "<tr><td><h2>ALL ATTACHMENTS</h2></td></tr>";

        foreach($attachments as $tst1)
            echo "<tr><td>".$tst1->guid."</td></tr>";
        
    echo "</table>";

?>

然后尝试在浏览器中访问该文件,它会显示所有重复项的列表。

【讨论】:

如何在 Wordpress 的媒体库中删除图像的永久链接(登录页面)?

】如何在Wordpress的媒体库中删除图像的永久链接(登录页面)?【英文标题】:Howtodeletethepermalink(landingpages)ofimageinthemedialibraryinWordpress?【发布时间】:2019-01-0120:42:07【问题描述】:我注意到上传到wordpress网站的每张图片都会有... 查看详情

如何从我的 WordPress 前端删除 jquery?

】如何从我的WordPress前端删除jquery?【英文标题】:HowcanIremovejqueryfromthefrontsideofmyWordPress?【发布时间】:2010-11-1213:16:56【问题描述】:我的wordpress网站下载起来有点重。在前端,它不必要地包含jquery。在我的萤火虫中,它看起... 查看详情

使用 WordPress REST API 删除媒体

】使用WordPressRESTAPI删除媒体【英文标题】:DeletingmediausingtheWordPressRESTAPI【发布时间】:2020-12-0217:23:10【问题描述】:我正在尝试使用带有cookie身份验证的rest-api从WordPress库中删除媒体。我可以创建一个文件(POST)并检索(GET)文件内... 查看详情

从我的 .csv URL 列表中删除 Wordpress Post

】从我的.csvURL列表中删除WordpressPost【英文标题】:DeleteWordpressPostfrommy.csvURLlist【发布时间】:2015-12-0704:52:39【问题描述】:我有一个.csv文件,其中包含我想在我的wordpress博客中删除的URL列表(大约3000个URL)删除它的更快方法... 查看详情

从 Wordpress 媒体库中获取单个特定图像

】从Wordpress媒体库中获取单个特定图像【英文标题】:GetasinglespecificimagefromWordpressMediaLibrary【发布时间】:2014-01-0623:57:03【问题描述】:我已将图片上传到Wordpress媒体库。我知道我可以查看图像然后获取该特定图像的URL,然后使... 查看详情

如何从我的字符串末尾删除“\n”[重复]

...都有“\\n”。显然,当您打印它时您看不到它,因为它只需要换行。我想删除它,因为它给我带来了一些麻烦 查看详情

如何在 wordpress 媒体库中显示自动生成的 PDF 缩略图?

】如何在wordpress媒体库中显示自动生成的PDF缩略图?【英文标题】:HowtodisplayautomaticallygeneratedPDFthumbnailsinwordpressmedialibrary?【发布时间】:2020-11-0703:27:24【问题描述】:我在Wordpress媒体库中显示PDF的缩略图时遇到问题(显示PDF时... 查看详情

如何从我的列表中删除重复项? [复制]

】如何从我的列表中删除重复项?[复制]【英文标题】:HowcanIremoveduplicatesfrommylist?[duplicate]【发布时间】:2021-06-3014:16:05【问题描述】:我正在使用SwiftUI在视图中生成这个动态列表(显示生成列表的一部分):薰衣草柠檬石灰石... 查看详情

Wordpress 503 错误 - 如何从我的网站中删除 rocket-loader.js?

】Wordpress503错误-如何从我的网站中删除rocket-loader.js?【英文标题】:Wordpress503error-HowdoIremoverocket-loader.jsfrommywebsite?【发布时间】:2021-01-3117:51:51【问题描述】:如何从我的网站中删除可能是503错误来源的脚本?<scriptsrc="https:/... 查看详情

如何从我的 xml 文件中删除 BOM 字符[重复]

】如何从我的xml文件中删除BOM字符[重复]【英文标题】:HowdoIremovetheBOMcharacterfrommyxmlfile[duplicate]【发布时间】:2010-09-2216:01:55【问题描述】:我正在使用xsl来控制我的xml文件的输出,但是正在添加BOM字符。【问题讨论】:与纯文... 查看详情

如何在wordpress插件中添加媒体上传器[重复]

】如何在wordpress插件中添加媒体上传器[重复]【英文标题】:Howtoaddthemediauploaderinwordpressplugin[duplicate]【发布时间】:2013-07-1404:23:13【问题描述】:我阅读了一些关于如何将媒体上传器集成到wordpress插件中的教程。我根据教程做媒... 查看详情

Wordpress 在插件中选择和裁剪

】Wordpress在插件中选择和裁剪【英文标题】:Wordpressselectandcropinplugin【发布时间】:2015-06-1507:47:41【问题描述】:我需要在我的插件中上传图片并使用wp.media来完成这项任务。根据https://codex.wordpress.org/Javascript_Reference/wp.media它的... 查看详情

Swift:如何从我的表格视图中删除重复项?

】Swift:如何从我的表格视图中删除重复项?【英文标题】:Swift:Howtoremoveduplicatesfrommytableview?【发布时间】:2017-06-1519:25:51【问题描述】:这里的问题是我的表格视图中有重复项,我知道原因,但我不知道如何修复它并实施不同... 查看详情

我怎样才能从我的手机图库中获取图像到我的应用程序中[重复]

】我怎样才能从我的手机图库中获取图像到我的应用程序中[重复]【英文标题】:howcanigetimagefrommyphonegalleryintomyapplication[duplicate]【发布时间】:2021-07-0215:54:59【问题描述】:我想从我的库中添加一张图片然后保存。当我单击AddIma... 查看详情

如何从我的 Eclipse 项目中删除 javascript 验证?

】如何从我的Eclipse项目中删除javascript验证?【英文标题】:HowdoIremovejavascriptvalidationfrommyeclipseproject?【发布时间】:2011-03-0902:16:26【问题描述】:我在我的项目中使用eclipse,在搞乱我的eclipse设置时,我打开了Javascript支持。现... 查看详情

Wordpress:删除附件字段

】Wordpress:删除附件字段【英文标题】:Wordpress:Removeattachmentfields【发布时间】:2014-11-1117:01:17【问题描述】:如何删除Wordpress附件媒体库中的附件字段,例如description和alt?以下代码用于旧版Wordpress(3.5之前):functionremove_attac... 查看详情

如何在 WP 中组织上传的媒体?

...ediainWP?【发布时间】:2013-03-2003:37:52【问题描述】:我是WordPress新手,来自Joomla。我怎样才能(如果我能做到...)使用WordPress将上传的媒体组织到文件夹和子文件夹中?如果我进入我的后端管理面板,我有Media子面板,我可以在... 查看详情

在 foreach 循环中使用媒体 ID 获取 WordPress 图像

】在foreach循环中使用媒体ID获取WordPress图像【英文标题】:GetWordPressimagesusingmediaIDinaforeachloop【发布时间】:2015-06-1107:41:00【问题描述】:我已经看到如何获取媒体库中的所有图像,反之亦然,从帖子库中获取图像,精选缩略图... 查看详情