post_parentには取得したい記事のIDを”与えて”そのパラメータを取得するのではないですか?
get_children(array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image'))
とか?
すいません。説明が上手く書けなかったので何が聞きたいかわかりにくいですよね…。
実際にやろうとしたことを書くのでおかしな点を指摘していただけると助かります。
方々検索して以下のようなコードを書きました。
<?php
$posts = get_posts('numberposts=-1&category=6&orderby=post_date&order=DESC');
foreach($posts as $post):
setup_postdata($post);
$files = get_children('post_parent=$post->ID&post_type=attachment&post_mime_type=application/pdf');
$keys = array_keys($files);
$num = $keys[0];
$file_url = wp_get_attachment_url($num);
?>
・・・
<a href="<?php echo clean_url($file_url); ?>"><img …></a>
・・・
<?php endforeach; ?>
やりたかったことは…
カテゴリーIDが6の記事をピックアップして新しい順に並べます。
該当の記事の投稿時にそれぞれpdfファイルを1ファイルアップロードしています。
並べたリストの項目にそのpdfファイルのリンクを表示したい。
結果としては、表示されたリスト中のpdfファイルへのリンクは
全て最も最近アップロードしたpdfへのリンクになっていました。
get_children()の結果を見てみようとprint_r($files);をすると、
全レコードが全てのアップロードされているpdfファイルの情報を持っていることがわかりました。
私のつもりとしては、’post_parent=$post->ID’とすることで
取得したい記事の投稿時にアップしたpdfファイルと特定できるかと思っていたのですが…。
全レコードが全ファイルの情報を持っているということは、
個別投稿時にファイルをアップロードしようとそこに紐付く情報はなく
メディアライブラリからアップロードするのと同じでただ格納されるだけなのでしょうか?
結果的に現状は、
取得したしたいファイル名を入力するカスタムフィールドを作成して
下記のようにして対処していますが、わざわざファイル名を指定しないと出来ないものでしょうか?
(「Get Custom Field Template」プラグインを使用しています)
<a href="<?php bloginfo('home') ?>/wp-content/upload/<?php echo c2c_get_custom('file') ?>"><img …></a>
当方、全て独学で試行錯誤しながらやってますので突っ込みどころ満載かも知れませんが、
また、知識が足りない故に上手く伝えられず申し訳ないですが
どなたか指摘してくださると助かります。
今、管理画面を見ていたらメディアライブラリの一覧で
「リンク先」という項目に記事名が入っているものがあります。
これについては私がやりたかったように記事とファイルが紐付いているようですが、
この「リンク先」というのはどこで設定されるのでしょうか?
自分でも気付かないうちになっていて方法がわかりません…。
自己解決しました!
再度添付ファイルを各記事投稿画面にて設定し直すとファイルアップロード画面上部の
「ギャラリー」タブにファイルが登録されました。
(当初登録されていなかったのはアップロード後「変更を保存」ボタンを押さずに閉じてしまっていたのでしょうか…?)
その上で上記コードの
$files = get_children('post_parent=$post->ID&post_type=attachment&post_mime_type=application/pdf');
を
$files = get_children('post_parent=' . $post->ID . '&post_type=attachment&post_mime_type=application/pdf');
に変更することでやりたいことが実現できました。
お騒がせしてすいいませんでした。