You are here:  Home » PHP » 除了特色图像之外,如何获取WordPress中的所有帖子附件

最近,在为客户端开发自定义项目时,我们必须从自定义帖子类型中获取所有帖子附件,并将其显示在一个位置。因为我们正在创建一个网格显示,所以我们将每个帖子的特色图像用作分隔符。这就是为什么在获取所有帖子附件时,我们需要排除特色图片,因此它不会出现两次。在本文中,我们将向您展示如何在WordPress中获取除特色图像之外的所有帖子附件。

您所要做的就是将以下代码粘贴到循环中。

<?php if ( $post->post_type == "data-design" && $post->post_status == "publish" ) {
		$attachments = get_posts( array(
			"post_type" => "attachment",
			"posts_per_page" => -1,
			"post_parent" => $post->ID,
			"exclude"     => get_post_thumbnail_id()
		) );

		if ( $attachments ) {
			foreach ( $attachments as $attachment ) {
				$class = "post-attachment mime-" . sanitize_title( $attachment->post_mime_type );
				$thumbimg = wp_get_attachment_link( $attachment->ID, "thumbnail-size", true );
				echo "<li class="" . $class . " data-design-thumbnail">" . $thumbimg . "</li>";
			}
			
		}
	}
?>

上面的代码首先检查帖子类型是否为数据设计并发布帖子状态。根据您的尝试,您可能不需要第一个条件。然后我们只需运行get_posts查询。那里的一切都非常自我解释。我们必须强调的关键是排除功能。该行确保特色图像不会显示。如果您将该线移开,则会显示特色图像。在指定所有参数后,我们只需指定拉动每个附件时要执行的操作。我们正在为类变量提取附件类型。然后$ thumbimg变量只是使用wp_get_attachment_link以特定的缩略图大小拉动图像,并且它还将图像超链接到单个附件页面。在最后一步,我们简单地回应它。

我们在循环中运行此代码,并单独调用特色图像,该图像链接到单个帖子。最终结果看起来像这样:

Attachment Grid

评论被关闭。