如何在Wordpress上排除PNG和JPG附件?

时间:2013-04-30 01:35:49

标签: wordpress

我有一个页面,我想要排除显示在帖子上的所有图片附件。

我使用了这段代码,但它无效:

$attachments = get_posts($args);
if ($attachments) {
    foreach ($attachments as $attachment) {
         if (($attachment->post_mime_type!="image/png") || ($attachment->post_mime_type!="image/jpg"))   {  
             echo substr(apply_filters('the_title', $attachment->post_title), 0, 25);
             echo '.zip';
             echo ' - (';
             echo _format_bytes(filesize( get_attached_file( $attachment->ID ) ));
             echo ')';
         }
    }
}

2 个答案:

答案 0 :(得分:2)

暂时考虑你的(第二个)if陈述......你所说的相当于说什么是有效的是 image/pngimage/jpg!这显然不是你想要的(什么都不会被过滤)。

尝试更换:

if (($attachment->post_mime_type!="image/png") || ($attachment->post_mime_type!="image/jpg"))   {

使用:

if (($attachment->post_mime_type!="image/png") && ($attachment->post_mime_type!="image/jpeg"))   {

你说你希望它不是image/png而不是image/jpg。记住要小心你的布尔逻辑。如果有任何疑问,请尝试通过它运行各种值,以确保它正在执行您正在做的事情(甚至将其写在纸上)。

请注意,png和jpg不是那里唯一的图像类型(不要忘记.gif,.bmp,.webp以及现有浏览器可能显示的许多其他类型)。如果您想要排除所有图像类型,则无法实现此目的。

编辑:JPEG图片的mimetype实际上也是image/jpeg,而不是image/jpg

答案 1 :(得分:0)

如何为该页面创建page.php的变体,并在循环中包含以下内容:

<?php
   ob_start();
   the_content('Read the full post',true);
   $postOutput = preg_replace('/<img[^>]+./','', ob_get_contents());
   ob_end_clean();
   echo $postOutput;
?>