查找附件所附的帖子

时间:2012-03-01 作者:Pat

我有一个使用此数组构建的附件ID列表:

$all_images = get_posts( array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
) );
是否可以从此列表中获取图像ID,并找到图像附加到的帖子的标题和永久链接?

我知道这是可行的,因为媒体库显示了这一点,但我找不到正确的方法来处理抄本。

我尝试过这段代码,但它将标题和永久链接返回到附件本身,而不是它所附加到的帖子:

$parent = get_post_field( \'post_parent\', $imgID);
$link = get_permalink($parent);

3 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

因此,如果您从以下内容开始:

$all_images = get_posts( array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
) );
那么$all_images 是对象的数组。逐步完成每个步骤:

foreach ( $all_images as $image ) {}
在该foreach中,可以使用$post 对象:

  • $image->ID 是附件帖子的ID$image->post_parent 是附件帖子的父帖子的ID,因此,让我们使用它来获取您想要的内容,使用get_the_title()get_permalink():

    // Get the parent post ID
    $parent_id = $image->post_parent;
    // Get the parent post Title
    $parent_title = get_the_title( $parent_id );
    // Get the parent post permalink
    $parent_permalink = get_permalink( $parent_id );
    
    差不多就是这样!

    总而言之:

    <?php
    // Get all image attachments
    $all_images = get_posts( array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => -1,
    ) );
    // Step through all image attachments
    foreach ( $all_images as $image ) {
        // Get the parent post ID
        $parent_id = $image->post_parent;
        // Get the parent post Title
        $parent_title = get_the_title( $parent_id );
        // Get the parent post permalink
        $parent_permalink = get_permalink( $parent_id );
    }
    ?>
    

SO网友:Stephen Harris

这个$images, 是post对象(附件)的数组。您可以使用wp_list_pluck 将其父ID提取到数组中。(array_uniquearray_filter 分别删除重复ID和空ID-这可能/可能不可取)。

您可以让它们在ID中循环并使用get_permalinkget_the_title 要获取帖子的永久链接和标题:

$images = get_posts( array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => -1,
) );
$parents = array_filter(wp_list_pluck($images,\'post_parent\'));
$parents = array_unique($parents);
echo "<ul>";
foreach ($parents as $id){
    echo "<li><a href=\'".get_permalink($id)."\' >".get_the_title($id)."</a></li>";
}
echo "</ul>";

SO网友:magic-boy

我们可以简单地使用https://wordpress.org/plugins/find-posts-using-attachment/

我希望这是最好的方式!

结束

相关推荐

POSTS_PER_PAGE分页冲突(&P)

我有一个自定义查询来显示我的自定义帖子类型。posts_per_page 设置为“5”。在“每页管理帖子”设置为“10”(设置=>阅读=>博客页面最多显示10篇帖子)中,我的模板每页列出5篇帖子。如果我有15篇帖子,它必须在3页中显示,but on third page I get 404 error. 因此,我的分页使用管理设置(每页10篇文章)。我怎样才能修复它?global $paged; query_posts(array( \'post_type\' =&g