是否显示带有各自附件的自定义帖子列表?

时间:2013-01-07 作者:Mark

我想构造一个查询来显示自定义帖子(“podcast”)的列表,以及它们各自附件的URL。每个自定义post\\u类型(“podcast”)都有1个附件(属于其post\\u父级的mp3文件)。我想要一个无序的列表,显示播客的标题,以及它的附件url(附件的guid),如下所示:

<ul>
<li>Podcast Title - http://..../podcast.mp3</li>
我通过wp查询实现了这一点:

<?php query_posts(\'showposts=1&post_type=podcasts\'); ?>
<ul>
<?php while (have_posts()): the_post(); ?>
<li><?php the_title(); ?><br>
<?php
$args = array( \'post_type\' => \'attachment\', \'post_parent\' => $post->ID );
$attachments = get_posts($args);
if ($attachments) {
  foreach ( $attachments as $attachment ) {
  echo $attachment->guid;
  }
} ?>
</li>
<?php endwhile; ?>
</ul>
但我想知道如何使用原始SQL查询进行解决。我尝试了太多的问题,这让我头晕目眩-任何帮助都将是惊人的!

*编辑:决定同意约翰对WordPress查询的建议。谢谢你,我相信其他人将来也会觉得这很有用。

1 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

相信我们,你想使用WordPress的查询解决方案。它提供了一整套很棒的额外功能,如对象缓存、元数据自动加载等。此外,它几乎可以保证与转发兼容。

所以如何做你所询问的事情。像这样的事情应该会起作用:

<?php
$podcasts = new WP_Query( array(
  \'post_type\' => \'podcasts\',
  \'posts_per_page\' => 10, // the number of podcasts you want to show. use -1 for all of them.
));
foreach ( $podcasts as $podcast ) {
  $attachment = get_posts(\'post_type=attachment&post_status=inherit&post_parent=\'.$podcast->ID);
  if ($attachment) {
    $attachment = $attachment[0];
    ?>
    <li><?php echo get_the_title( $podcast->ID ); ?> - <?php echo wp_get_attachment_url( $attachment->ID ); ?></li>
    <?php
  }
}
?>

结束

相关推荐

how to edit attachments?

在将例如文件附加到帖子时,如何在事后编辑/删除它们?在帖子编辑器中找不到任何内容。谢谢