サポート » テーマ » get_children()の’post_parent’

  • 解決済 showgo

    (@showgo)


    get_children()関数のパラメータ’post_parent’は何を意味していますか?

    やろうとしたことは、
    各記事投稿画面からアップした添付ファイルへのリンクを表示させようといった感じです。

    当初は投稿画面からアップするとその記事に紐付き、’post_parent’でその投稿のポストIDを
    指定するとそのファイル情報を取得できるかと思っておりましたが、
    メディアライブラリに一緒くたに格納されているだけなんでしょうか?

    get_children()した配列を見ても
    どのファイルも[post_parent]に0の値が入っているようですし、
    メディアライブラリには階層もないようですので、
    このパラメータでいったい何を指定してどのように使うのか理解できません。

    どなたか教えてください。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • post_parentには取得したい記事のIDを”与えて”そのパラメータを取得するのではないですか?

    get_children(array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image'))

    とか?

    トピック投稿者 showgo

    (@showgo)

    すいません。説明が上手く書けなかったので何が聞きたいかわかりにくいですよね…。
    実際にやろうとしたことを書くのでおかしな点を指摘していただけると助かります。

    方々検索して以下のようなコードを書きました。

    <?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>

    当方、全て独学で試行錯誤しながらやってますので突っ込みどころ満載かも知れませんが、
    また、知識が足りない故に上手く伝えられず申し訳ないですが
    どなたか指摘してくださると助かります。

    トピック投稿者 showgo

    (@showgo)

    今、管理画面を見ていたらメディアライブラリの一覧で
    「リンク先」という項目に記事名が入っているものがあります。

    これについては私がやりたかったように記事とファイルが紐付いているようですが、
    この「リンク先」というのはどこで設定されるのでしょうか?

    自分でも気付かないうちになっていて方法がわかりません…。

    トピック投稿者 showgo

    (@showgo)

    自己解決しました!

    再度添付ファイルを各記事投稿画面にて設定し直すとファイルアップロード画面上部の
    「ギャラリー」タブにファイルが登録されました。
    (当初登録されていなかったのはアップロード後「変更を保存」ボタンを押さずに閉じてしまっていたのでしょうか…?)

    その上で上記コードの

    $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');

    に変更することでやりたいことが実現できました。

    お騒がせしてすいいませんでした。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「get_children()の’post_parent’」には新たに返信することはできません。