在帖子页面之外列出WordPress帖子和相关附件

时间:2012-06-14 作者:William

我在尝试创建一些新功能时遇到了困难。基本上,我有一个自定义页面设置,它显示一个带有特定标记的所有帖子的列表。它需要做的是在帖子名称旁边显示与该帖子相关的每个附件。我可以在实际的贴子页面上实现这一点,但由于这是一个自定义页面,它不想显示附件url。

以下是我目前掌握的情况:

$args = array 
    (
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'audio\',
        \'numberposts\' => -1,
    );

    query_posts(\'portfolio-tags=apple&post_type=portfolio&posts_per_page=-1&orderby=title&order=asc\'); // query to show all posts independant from what is in the center;
    if (have_posts()) :
        echo \'<ul>\';
        while (have_posts()) : the_post(); ?>
            <li>
                <span><?php echo the_title();?></span>
                <span><a href="<?php echo get_attachment_url($attachment->ID);?>" target="_blank">Demo</a></td>
            </li>
        <?php  endwhile;
        echo \'</ul>\';
    endif;
    wp_reset_query();
任何帮助都将不胜感激。我已经在这个问题上纠结了一段时间,希望我忽略了一个非常简单的解决方案。

2 个回复
SO网友:Eugene Manuilov

首先不要使用query_posts 函数,使用WP_Query 而不是类。

其次,您忘记获取帖子的附件。您可以通过调用get_children 作用

$args = array (
    \'post_type\' => \'attachment\',
    \'post_mime_type\' => \'audio\',
    \'numberposts\' => -1,
);

$the_query = new WP_Query( \'portfolio-tags=apple&post_type=portfolio&posts_per_page=-1&orderby=title&order=asc\' );
if ( $the_query->have_posts() ) :
    echo \'<ul>\';
    while ( $the_query->have_posts() ) : 
        $the_query->the_post();
        $images =& get_children( \'post_type=attachment&post_mime_type=image\' ); ?>
        <li>
            <span><?php echo the_title();?></span>
            <?php foreach ( $images as $attachment_id => $attachment ) : ?>
                <span><a href="<?php echo get_attachment_url( $attachment_id );?>" target="_blank">Demo</a></td>
            <?php endforeach; ?>
        </li>
    <?php  endwhile;
    echo \'</ul>\';
endif;
wp_reset_postdata();

SO网友:user1370773

我已经修好了。我忘了在get\\u children参数中添加以下内容:post\\u parent=$post->ID

结束