it-roy-ru.com

wp_get_attachment_image возвращает другой размер изображения

Это ошибка?

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

Тот же код, вызываемый в шаблоне и в вызове AJAX, возвращает тот же 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 вызова

<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. Чтобы сбросить класс и полностью пропустить его использование, просто установите w & h в 0.

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

Нажмите на октоката, чтобы увидеть Gist :)

1
kaiser