この配列を使用して作成された添付ファイルIDのリストがあります。
$all_images = get_posts( array(
'post_type' => 'attachment',
'numberposts' => -1,
) );
このリストから画像IDを取り出して、画像が添付されているPOSTのタイトルとパーマリンクを見つけることは可能ですか?
メディアライブラリがそれを示しているのでそれが実行可能であることを私は知っている、しかし私はコーデックスでこれをするための正しい方法を見つけることができない。
私はこのコードを試しましたが、添付されている投稿ではなく、タイトルとパーマリンクを添付ファイル自体に返します。
$parent = get_post_field( 'post_parent', $imgID);
$link = get_permalink($parent);
だから、あなたがこれで始めるなら:
$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
は添付ファイル投稿のparent postの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 );
}
?>
$images
は、投稿オブジェクト(添付ファイル)の配列です。 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>";