当前图像wordpress上的标题

时间:2015-05-13 04:55:17

标签: php wordpress image media

我想从媒体库中显示图像的特定标题,我有这段代码,但代码只显示第一张图片的标题而不是当前发布的图片请帮忙,这是我的代码:

<?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 ) ) : '' )
    );?>

1 个答案:

答案 0 :(得分:0)

目前您的代码错误。

在&#39; foreach&#39;你每次attachment循环,但你总是重写$ _title。

想象一下,您有附件ABC,您的foreach正在数组attachment上循环。

  1. 第一个元素是A,您将A的标题保存到$the_title

  2. 第二个元素是B,您将B的标题保存到$the_title,您将覆盖A标题的值<\ n / p>

  3. 第三个元素是C,您将C的标题保存到$the_title,您将覆盖B标题的值<\ n / p>

  4. 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;
    
        }
      }