是窃听器吗?
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
$theme->theme_post->display_post_element( $post_type, $post_size, $post);
?>
</div>
显示后元素功能代码
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;
}
i在主题构造函数的functions.php中定义了图像大小。i转储get_intermediate_image_sizes(),并在 AJAX 调用中加载所有图像大小
4条答案
按热度按时间vulvrdjw1#
奇怪......你试过用数组设置大小吗?
km0tfn4u2#
这确实是一个bug。我也遇到过同样的问题,因为我们有过类似的情况,所以我认为这与 AJAX 调用有关-,不过,谁知道为什么它会返回错误的维度。***但是,***,我找到了一个解决方法,虽然这是一个相当古老的问题,但我认为其他人可能会遇到这个问题。
我的解决方案是:
首先,使用wp_get_attachment_image_src获取图像的url。
第一个月
(You可以使用get_posts()获取附件ID。)
然后你就有了
$image[0]
中图像的URL,所以我所做的是把它放在正确的维度中:<img src="'.$image[0].'" width="960" height="300" />
这不是理想的,但至少它的工作。它可能是固定在WP 3.5,但我不知道,我仍然使用3.4.2。
0sgqnhkj3#
这不是media.php中
image_constrain_size_for_editor()
末尾的editor_max_image_size
吗?众所周知,它会扰乱wp_get_attachment_image()
的输出。然后稍后在调用周围添加/删除此参数以获取图像src和大小。
goqiplq24#
你可以通过在functions.php中插入这两行代码来删除自动生成的行内高度和宽度