Wordpress: incluye el título de la página en 'wp obtener imagen adjunta'

De acuerdo, configuré un poco de código que busca todas las páginas que son secundarias del ID 8, luego genera todos los archivos adjuntos (en la galería) de estas páginas como elementos de lista desordenados. Puedes ver el efecto hasta ahora aquí http://goo.gl/eq4UF.

El problema que tengo es que necesito incluir el título de cada página antes de cada una para que puedas identificar fácilmente qué imágenes vienen debajo de cada página. Normalmente, solo agregaría esto, pero los elementos de la lista usan mampostería y se colocan en toda la página usando JS para que nunca aparezcan junto a la primera imagen de la lista.

Por lo tanto, añadiré el título de la página a cada <li> en la <ul> lo que permitirá que el título se ejecute con cada imagen, pero no sé cómo incluir esto en la función de obtención de imágenes adjuntas de wp. Ambos the_title y wp_title no funciona dentro de este bucle. apply_filters( 'the_title', $attachment->post_title ); obviamente toma el título de la imagen, pero ¿hay algo bueno para tomar el título de la página?

Gracias de antemano y espero que haya tenido sentido, R

<?php $postslist = get_pages('number=9999&sort_order=DESC&sort_column=post_date&child_of=8');
foreach ($postslist as $post) :
setup_postdata($post); ?>
<ul class="main-projects-list">
<?php

$args = array(
   'post_type' => 'attachment',
   'numberposts' => -1,
   'post_status' => null,
   'post_parent' => $post->ID,
   'orderby' => 'menu_order',
   'order' => 'ASC',
  );

  $attachments = get_posts( $args );
     if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
           echo '<li class="each-image">';
           echo wp_get_attachment_image( $attachment->ID, 'large' );
           echo '<p>';
           echo apply_filters( 'the_title', $attachment->post_title );
           echo '</p></li>';
          }
     }

?>
</ul>
<?php endforeach; ?>

preguntado el 12 de junio de 12 a las 22:06

1 Respuestas

Puedes intentar esto:

<?php $postslist = get_pages('number=9999&sort_order=DESC&sort_column=post_date&child_of=8');
foreach ($postslist as $post) :
setup_postdata($post); ?>
<ul class="main-projects-list">
<?php

$args = array(
   'post_type' => 'attachment',
   'numberposts' => -1,
   'post_status' => null,
   'post_parent' => $post->ID,
   'orderby' => 'menu_order',
   'order' => 'ASC',
  );

  $attachments = get_posts( $args );
     if ( $attachments ) {
        $post_title = get_the_title($post->ID); // We get the post title
        foreach ( $attachments as $attachment ) {
           $img_title = apply_filters( 'the_title', $post_title . ' - ' . $attachment->post_title ); // We create the image title with the 2 strings
           echo '<li class="each-image">';
           echo wp_get_attachment_image( $attachment->ID, 'large' , false, array('title' => $img_title));
           echo '<p>';
           echo $img_title;
           echo '</p></li>';
          }
     }

?>
</ul>
<?php endforeach; ?>

Respondido el 12 de junio de 12 a las 23:06

Muchas gracias por esto. Necesito el título y el título de la imagen como variables separadas, ya que quiero cargar el título de la página en h2s después de li class="each-image". ¿Puede usted ayudar? - Juan el pintor

Se las arregló para editar lo que juntaste: $main_page_title = apply_filters( 'the_title', $post_title ); $img_title = apply_filters( 'the_title', $attachment->post_title ); echo '<li class="each-image">'; echo $main_page_title; echo wp_get_attachment_image( $attachment->ID, 'large' , false, array('title' => $img_title)); echo '<p>'; echo $img_title; echo '</p></li>'; - Juan el pintor

Utiliza $img_title = apply_filters( 'the_title', $attachment->post_title ); para obtener el título de la imagen en una segunda var. Luego puede usarlo en la función de archivo adjunto de esta manera para obtener la cadena concatenada array('title' => $post_title . ' - ' . $img_title), lo mismo en el párrafo html a continuación. - mateias felipe

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.