3

Wordpressのテーマで作業しているときに、次のことに苦労しています。

タイトルが示すように、get_posts() によって返される配列は、投稿が確実に画像を保持しているにもかかわらず、頻繁に空になります。

私は添付ファイル配列を取得するために以下を使用しています:

$attachments = get_posts( array(
    'post_type' => 'attachment',
    'posts_per_page' => -1,
    'post_parent' => $post_id
) );

今、 $post_id は完全に正常に機能します...上記のスニペットの直前にエコーすると、必ず表示されます。エラーがどこにあるのかわかりません。

完全を期すために、添付ファイルの取得を除くすべての点で完全に正常に動作するループ全体を次に示します。

           <?php if (have_posts()) : ?>
            <?php while (have_posts()) : ?>
                <?php the_post(); ?>
                <div class="post" id="post-<?php the_ID(); ?>">
                    <div class="post-border">
                        <div class="post-date"><?php edit_post_link('Edit Post', '', ''); ?></div>
                        <?php if($pagename == 'news'): ?>
                            <div class="post-date">Posted: <?php the_time('F j, Y') ?></div>
                        <?php endif; ?>
                        <h5 class="posttitle"><?php the_title(); ?></h5>
                        <div class="post-entry">
                            <?php the_content(); ?>
                            <?php
                                $post_id = $post -> ID;
                                echo $post_id;
                                $attachments = get_posts( array(
                                    'post_type' => 'attachment',
                                    'posts_per_page' => 20,
                                    'post_parent' => $post_id
                                ) );
                                print_r($attachments);
                            ?>
                        <?php echo "<div class='clearboth'></div>"; ?>
                        </div> <!-- end of .entry -->
                    </div> <!-- end of .post-border -->
                </div> <!-- end of .post -->
            <?php endwhile; ?>
        <?php endif; ?>

誰か提案があれば、私はとても感謝しています!

ベスト、J

4

5 に答える 5

3

添付ファイルは親投稿から継承post_statusされるため、引数に次を追加します。

'post_status' => 'inherit',
于 2013-05-14T18:56:46.487 に答える
1

画像が投稿本文に挿入されるだけでなく、その投稿に添付されていることを確認してください。

「メディア ファイルが編集画面内でアップロードされると、編集中の現在の投稿に自動的に添付されます。Media Add New SubPanel または Media Library >SubPanel を介してアップロードされる場合、添付は解除されますが、添付される可能性があります。 >post に挿入されたときの投稿。Media Library SubPanel には、添付されていないメディアを添付するオプションもあります >items."

于 2013-08-21T13:48:38.143 に答える
1

Wordpress 4.1 で、以前にメディア ライブラリにアップロードされた画像から画像を挿入すると、添付ファイルとして扱われないことがわかりました。そのため、投稿用の画像添付ファイルを作成するには、まず画像をファイルとしてメディア ライブラリにアップロードし (「メディアの追加」ファイルのアップロード)、それから選択して投稿に挿入する必要があります。

于 2015-01-20T15:29:31.887 に答える
0

注意すべきもう 1 つの問題: WP 関数を使用するコマンドライン スクリプトを使用している場合は、有効なログイン ユーザー (admin など) が存在することを確認してください。それ以外の場合get_posts()、通常は公開されていない投稿 (下書きへの添付ファイルやスケジュールされた投稿など) は返されません。それは次のようなもので簡単に達成できますwp_set_current_user(1,'admin');

于 2013-10-01T19:38:22.343 に答える