我想从媒体库中显示图像的特定标题,我有这段代码,但代码只显示第一张图片的标题而不是当前发布的图片请帮忙,这是我的代码:
<?php
$args = array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_status' =>'any', 'post_parent' => $post->ID );
$attachments = get_posts( $args );
if ( $attachments) {
foreach ( $attachments as $attachment ) {
$the_title = apply_filters( 'the_title', $attachment->post_title );
}
}
$output = sprintf(
'<img%4$s src="%1$s" alt="%2$s" class="et-waypoint et_pb_image%3$s%5$s" title="'.$the_title.'"/>',
esc_attr( $src ),
esc_attr( $alt ),
esc_attr( " et_pb_animation_{$animation}" ),
( '' !== $module_id ? sprintf( ' id="%1$s"', esc_attr( $module_id ) ) : '' ),
( '' !== $module_class ? sprintf( ' %1$s', esc_attr( $module_class ) ) : '' )
);?>
答案 0 :(得分:0)
目前您的代码错误。
在&#39; foreach&#39;你每次attachment
循环,但你总是重写$ _title。
想象一下,您有附件A
,B
和C
,您的foreach
正在数组attachment
上循环。
第一个元素是A
,您将A
的标题保存到$the_title
第二个元素是B
,您将B
的标题保存到$the_title
,您将覆盖A标题的值<\ n / p>
第三个元素是C
,您将C
的标题保存到$the_title
,您将覆盖B标题的值<\ n / p>
forloop
完成后,变量the_title
持有最后attachment
个标题。
然后你开始使用该值。
您的解决方案是在the_title
中使用forloop
。
<?php
$args = array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_status' =>'any', 'post_parent' => $post->ID );
$attachments = get_posts( $args );
if ( $attachments) {
foreach ( $attachments as $attachment ) {
$the_title = apply_filters( 'the_title', $attachment->post_title );
/*Use the title*/
echo $the_title;
}
}