我有一个使用此数组构建的附件ID列表:
$all_images = get_posts( array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
) );
是否可以从此列表中获取图像ID,并找到图像附加到的帖子的标题和永久链接?
我知道这是可行的,因为媒体库显示了这一点,但我找不到正确的方法来处理抄本。
我尝试过这段代码,但它将标题和永久链接返回到附件本身,而不是它所附加到的帖子:
$parent = get_post_field( \'post_parent\', $imgID);
$link = get_permalink($parent);
最合适的回答,由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_unique
和array_filter
分别删除重复ID和空ID-这可能/可能不可取)。
您可以让它们在ID中循环并使用get_permalink
和get_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>";