2

我发现了大量教程/代码示例,它们为您提供了获取和回显图像附件 ID 的代码,但没有一个可以与其他任何东西一起使用,例如 Zip 和 Rar 档案——这正是我正在使用的东西。

有谁知道如何从 WordPressattachment.php页面中获取和回显文件(在本例中为 Zip 存档)的 ID?奇怪的是,尝试通过 获取 Zip 存档的 ID 似乎很简单single.php,但我真的很难从内部确定这一点attachment.php

真的无法理解为什么 WordPress 有一个内置的get_post_thumbnail_id();图像,但没有任何其他类型的文件可用。

4

2 回答 2

1

请参阅Codex 页面上 Thumb 旁边的当前帖子的示例显示所有附件(具有讽刺意味的是,鉴于您的评论!)。get_post_thumbnail_id()

基本上,您为所有附件设置了一个get_posts()查询。然后,您只需要根据文件类型扩展名过滤结果,或者如果您知道(并且记录正确),使用.WP_Post.post_mime_typeget_post_mime_type()

(该示例也过滤掉了特色图像/拇指......但无论如何您的过滤器都会处理这个问题)。

但是,如果您可以将 MIME 类型用作过滤器,则可以使用参数设置get_posts()args 'post_mime_types',以仅返回一种(或多种)特定 MIME 类型的附件。您可能希望查看附件的基础数据库条目,以检查它是如何记录的,以便您可以正确匹配它。我希望您的 .zip 文件是 .zip 文件application/zip,但在依赖它之前我会仔细检查。

所以,像:

<?php

$args = array(
    'post_type'   => 'attachment',
    'numberposts' => -1,
    'post_status' => null,
    'post_parent' => $post->ID,
    'post_mime_type' => 'application/zip'
    );

$attachments = get_posts( $args );

?>
于 2013-04-05T13:56:37.300 回答
0

谢谢你的回复,塞普斯特。通过浏览 TwentyTwelve 主题的文件之一,我设法找到了令人尴尬的简单答案;原来答案就像回声一样简单......

<?php the_ID(); ?>

...在 attachment.php 文件中。

于 2013-04-05T16:56:19.170 回答