画像から投稿を取得

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

画像の一覧から投稿へリンクしたい、ということで調べてみた。

画像に紐付いた投稿はpost_parent としてデータベースに保存されているそうで、
$post = get_post(‘画像ID’); $ID = $post->post_parent; echo get_permalink($ID);
こんな感じで取得できるところまでは確認した。

画像自体をカテゴリー分けしたいということでMedia Library Categoriesなどを使用する想定だが、未実装なのでアイデアのみ。

追記
投稿タイプwork に添付された画像を投稿へのリンク付きで

<?php $query = new WP_Query( 
  array( 
    'post_type' => 'work', 
    'posts_per_page' => -1,
    'fields' => 'ids'
  ) 
);
$image_query = new WP_Query( 
  array( 
    'post_type' => 'attachment', 
    'post_status' => 'inherit', 
    'post_mime_type' => 'image', 
    'posts_per_page' => -1, 
    'post_parent__in' => $query->posts, 
    'order' => 'DESC' 
  ) 
);
if( $image_query->have_posts() ){
  while( $image_query->have_posts() ) {
      $image_query->the_post();
      $imgurl = wp_get_attachment_url( get_the_ID() );
      $attachment_id = attachment_url_to_postid( $imgurl );
      $post = get_post($attachment_id);
      $pid = $post->post_parent;
      $link = get_permalink($pid);
	  echo '<a href="'.$link.'"><img src="'.$imgurl.'"></a>';
  }
} ?>

ACFで添付ファイルにカスタムフィールドを付けることも可能なので、ラジオボタン等で画像の分類も可能。

2019.7.17追記:
実装完了。これを、URLとかテーマファイルとか、どうやって実装するか悩みましたが、結局、
・画像はACFで分類を付ける
・アーカイブのURLに画像分類のパラメータを付け、パラメータの有無で読み込むテーマファイルを分岐
・上記image_queryの後でACFを取得しforeach
・パラメータの値とACFの値が同じなら画像を表示
としました。