web-dev-qa-db-ja.com

キャプションはどこかに保存されていますか?

以前の ショートコードキャプションに関する質問 に関しては、キャプションの実際のテキストは投稿以外の場所に保存されているようには見えません。ショートコード自体の中のコンテンツ。

私はwp_get_attachment_metadataが添付ファイルの情報を格納すると考えていましたが、そうではありません。

私が間違っている?それともWordPressは実際のキャプションをどこにも保存していませんか?

5
Dan Gayle

はい、キャプションをDBの独自の場所に格納します。正確な場所を引用することはできませんが、Wordpressでは、「添付ファイル」は投稿タイプであり、各添付ファイルを投稿のように格納します。添付ファイルの投稿タイプの場合、Image Captionをthe_excerpt、Image Descriptionをthe_content、およびImage Titleを... the_titleとして扱います。

3
matt

ここで$post_idは現在の投稿です。このコードは投稿のすべての添付ファイル、およびそれらのタイトルの説明とキャプションを出力します。

$q = new WP_Query( array(
    'post_parent' => $post_id,
    'post_type' => 'attachment'
));
if($q->have_posts()){
    while($q->have_posts()){
        $q->the_post();
        ?>
        <h3><?php the_title(); ?></h3>
        <?php

        if ( wp_attachment_is_image( $post->id ) ) {
            $att_image = wp_get_attachment_image_src( $post->id, "large");
            ?>
<img src="<?php echo $att_image[0];?>" width="<?php echo $att_image[1];?>" height="<?php echo $att_image[2];?>"  class="attachment-large" alt="<?php $post->post_excerpt; ?>" />
            <?php
        }

        // caption
        the_excerpt();

        // description
        the_content();
    }
}
wp_reset_query();

添付ファイルは、添付されている投稿のすべての子です。これを使用して、独自のカスタムギャラリーコードを作成できます。また、カスタムフィールドには、画像の寸法、EXIFデータなど、多くのデータがあります。コメントを付けることもできます。

あなたは内側のループからコードを取り出してあなたのテーマのattachment.phpに入れることができます。

0
Tom J Nowell