-2

PHP コードの例:

<?php 
    $image_attributes = wp_get_attachment_image_src( '8' );
?> 
 
<img src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>">

さて、変数をまったく使用したくないとしましょう。代わりに,$image_attributesを直接使用し、後で img タグを使用します。wp_get_attachment_image_src( '8' );$image_attributes[0];$image_attributes[1];$image_attributes[2];

その場合、コードをどのように変更すればよいですか?

なぜ?

例で説明しましょう(私の実際の使用例)。

<?php 
    $attachment_attributes = wp_get_attachment_image_src( '8' ); // returns an array
?> 
 
<media:content url="<?php echo $attachment_attributes[0]; ?>" width="<?php echo $attachment_attributes[1]; ?>" height="<?php echo $attachment_attributes[2]; ?>" type="image/jpeg">

このようにコーディングしているときのように、どうすれば同じことを行うことができますか?

foreach ( $attachments as $att_id => $attachment ) {
    $attachment_attributes = wp_get_attachment_image_src( '8' );
    
    // Should it be done like this? If not, how do I do it?
    $output .= '<media:content height="' . $attachment_attributes[0]; . '" type="image/jpeg">';

    if ( $captiontag && trim($attachment->post_excerpt) ) {
        $output .= "
            <{$captiontag}>" . wptexturize($attachment->post_excerpt) . "</{$captiontag}>";
    }
    $output .= '
        </media:content>';
}
4

1 に答える 1

4

変数を回避しようとする理由はわかりませんが、次のような方法で回避できる場合があります。

<?php

vprintf(
    '<img src="%s" width="%d" height="%d">',
    wp_get_attachment_image_src( '8' )
);

または、「Why」のコードから

<?php

foreach ( $attachments as $att_id => $attachment ) {
    $attachment_attributes = wp_get_attachment_image_src( '8' );

    $output .= '
        <media:content
          url="' . $attachment_attributes[0] . '"
          width="' . $attachment_attributes[1] . '"
          height="' . $attachment_attributes[2] . '"
          type="image/jpeg">';

    if ( $captiontag && trim($attachment->post_excerpt) ) {
        $output .= "
            <{$captiontag}>" . wptexturize($attachment->post_excerpt) . "</{$captiontag}>";
    }
    $output .= '
        </media:content>';
}
于 2012-09-07T19:38:26.500 に答える