获取帖子的附件网址 - WordPress

时间:2013-02-05 21:52:48

标签: php wordpress attachment custom-post-type

我正在尝试创建PDF列表(每月创建的简报)。我创建了一个名为“newsletters”的自定义帖子类型,并将其限制为仅支持“标题”。

然后我使用高级自定义字段插件为此帖子类型添加文件上传按钮。因此,每个帖子都有一个标题和一个上传pdf的按钮。

然后我编写了以下函数来输出附件列表。

function list_newsletters(){

    $args = array( 'post_type' => 'newsletters' );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
        $permalink = get_permalink();
        $title = get_the_title();
        $id = get_the_ID();
        $attachment = wp_get_attachment_url($id);
        echo '<li><a href="'.$attachment.'">'.$title.'</li>';
    endwhile;

}

然而,wp_get_attachment_url($ id)似乎不起作用。我认为这是因为我应该提供附件ID而不是帖子ID。我在网上浏览过,无法找到找到特定帖子附件ID的明确方法。

只是澄清每篇文章只会包含一个附件。

提前谢谢

1 个答案:

答案 0 :(得分:1)

此示例取自get_posts() Codex页面

$attachments = get_posts(array( 
    'post_type' => 'attachment',
    'numberposts' => -1,
    'post_status' =>'any',
    'post_parent' => $post->ID
));

if ($attachments) {
    foreach ( $attachments as $attachment ) {
        echo apply_filters( 'the_title' , $attachment->post_title );
        the_attachment_link( $attachment->ID , false );
    }
}