以前の ショートコードキャプションに関する質問 に関しては、キャプションの実際のテキストは投稿以外の場所に保存されているようには見えません。ショートコード自体の中のコンテンツ。
私はwp_get_attachment_metadata
が添付ファイルの情報を格納すると考えていましたが、そうではありません。
私が間違っている?それともWordPressは実際のキャプションをどこにも保存していませんか?
はい、キャプションをDBの独自の場所に格納します。正確な場所を引用することはできませんが、Wordpressでは、「添付ファイル」は投稿タイプであり、各添付ファイルを投稿のように格納します。添付ファイルの投稿タイプの場合、Image Captionをthe_excerpt
、Image Descriptionをthe_content
、およびImage Titleを... the_title
として扱います。
ここで$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に入れることができます。