我正在尝试将文本存储在WordPress上的图像标题中。我有代码可以将图像附加到帖子上,然后使用第二段代码我可以在页面中显示它们。
这是将图像附加到帖子上的原因。
<?php
if ($attachments = get_children(array(
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $post->ID
)));
foreach ($attachments as $attachment) {
$mynewarray = wp_get_attachment_image_src($attachment->ID, 'full');
$anotherarray [] = $mynewarray[0];
} ?>
这会显示每个图像,我只需更改[2]即可调用不同的图像。
<?php echo $anotherarray[2]; ?>
一切运作良好,但我希望将文字存储在标题中,我几个月前就开始这样做了,花了好几天试图获取标题,放弃了,现在回到这里。如此迷失,任何帮助表示赞赏。
感谢您的建议,但没有任何工作,我认为这是因为我将所有图像作为数组附加到帖子上。然后使用数组部分将图像设置为div的背景。作为smiler问题列出的帖子中的方法在这种情况下不起作用。
答案 0 :(得分:0)
每个附件在posts
表中都有自己的行。该行的post_excerpt
列包含标题。
因此,假设您知道附件的ID,这将获得附件的标题。
$attachment = get_post( $attachment_id );
$caption = $attachment->post_excerpt;
阅读本文以获取更多详细信息,尤其是有关来自post_meta的ALT标记。
https://wordpress.org/ideas/topic/functions-to-get-an-attachments-caption-title-alt-description
修改强>
您的代码中似乎有一个循环。难道你不能像这样抓住每个附件的post_excerpt吗?除非出现严重错误,否则这应该有效。
foreach ( $attachments as $attachment ) {
$att = get_post( $attachment->ID );
$caption = $att->post_excerpt;
/*... */
$mynewarray = wp_get_attachment_image_src($attachment->ID, 'full');
$anotherarray [] = $mynewarray[0];
}
您也可以尝试get_post_field。那个很好,因为它会破坏字段中的内容,因此它适合html显示。
foreach ( $attachments as $attachment ) {
$caption = get_post_field( 'post_excerpt', $attachment->ID );
/* ... */
}
答案 1 :(得分:0)
查看此功能wp_prepare_attachment_for_js($attachment_id)
- link
它将返回以下字段:
id
title
filename
url
link
alt
author
description
caption
name
status
uploadedTo
date
modified
menuOrder
mime
type
subtype
icon
dateFormatted
nonces
editLink
sizes
width
height
fileLength
compat