web-dev-qa-db-ja.com

wp_get_attachment_imageは異なる画像サイズを返す

それはバグですか?

wp_get_attachment_image( $attachment_id, 'post-thumb-size-small');

TemplateとAJAX callで呼び出される同じコードは、同じ画像SRCを返しますが、画像の幅と高さは異なります。

テンプレート呼び出しからのダム:

<img width="286" height="189" src="http://localhost/site/files/2012/02/post-image-31-286x189.jpg" class="attachment-post-thumb-size-small" alt="post-image-3" title="post-image-3">

AJAX callからのダンプ

<img width="220" height="145" src="http://localhost/site/files/2012/02/post-image-31-286x189.jpg" class="attachment-post-thumb-size-small" alt="post-image-3" title="post-image-3">

私は混乱しています、間違っていますか?

index.phpコード

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <?php include 'post.php'; ?>

    <?php endwhile; endif; ?>

post.phpコード

<div class="container">

<?php
if( in_array( $post_type, array( 'audio', 'video', 'quote', 'link'))) {
  $theme->theme_post->display_post_element( $post_type, $post_size, $post);
}
?>
</div>

display_post_element機能コード

    function display_post_element( $post_type, $post_size, $post) {
$attachment_id = get_post_meta( $post->ID, '_view_attachment_id', true);
        if( $post_type == 'single_image') {
            $img = wp_get_attachment_image_src( $attachment_id, 'full');

            if( is_array( $img)):                
            ?>
            <div class="preview-thumb">
                <a href="<?php echo $img[0]; ?>" class="lightbox"><?php echo wp_get_attachment_image( $attachment_id, 'post-thumb-size-' . $post_size); ?></a>
                <a href="<?php echo $img[0]; ?>" class="lightbox zoom"></a>
            </div>
            <?php
            endif;
        }
}

ajaxの呼び出しコードで投稿を読み込む:

function load_posts_ajax() {
    global $post;
    $query_string = $_POST['query_string'];

    query_posts( $query_string . '&posts_per_page=' . get_option( 'posts_per_page') . '&post_status=publish&offset=' . (int)$_POST[ 'off']);

    if ( have_posts() ) : while ( have_posts() ) : the_post();
        include TEMPLATEPATH . '/post.php';
    endwhile; endif;

    die;
}
4
user12859

サイズに合わせたハンドル

私はビルトイン画像サイズのためのすべての異なるものを扱うクラスを書きました。

  1. 組み込みサイズを再定義するには、拡張クラス(リンクされたソースの上位ファイル)を使用してください。
  2. クラスの設定を解除してその使用を完全にスキップするには、wh0に設定するだけです。

http://static.steffenvogel.de/wp-content/uploads/2011/07/octocat_construction.gif

要点を表示するには、オクトキャットをクリックしてください。

1
kaiser