Kor*_*hot 9 wordpress pageload responsive-design picturefill
我正在使用一些促销/广告滑块与WP Analytics点击事件在WP网站上工作.效果很好,现在我想在正确的分辨率上提供正确的图像.
我正在使用picturefill来提供图像.硬编码时工作正常,所以我知道它有效.当我试图获取WP上传的图像的图像源时没有.我知道这是因为我的(缺乏)PHP技能.
图片需要什么:
<span data-picture data-alt="">
<span data-src="filename_default.jpg"></span>
<span data-src="filename_small.jpg" data-media="(min-width: 400px)"></span>
<span data-src="filename_medium.jpg" data-media="(min-width: 768px)"></span>
<span data-src="filename_big.jpg" data-media="(min-width: 1200px)"></span>
<!-- Fallback content for non-JS browsers. -->
<noscript>
<img src="external/imgs/small.jpg" alt="">
</noscript>
</span>
Run Code Online (Sandbox Code Playgroud)
我有url或id或图像存储在:$ attachment_id
我以为这样做:
<?php
$attachment_id = get_field('advimg');
$large = "adv-pos-a-large";
$default = "adv-pos-a-default";
$small = "adv-pos-a-small";
?>
Run Code Online (Sandbox Code Playgroud)
所述get_field( 'advimg'); 来自ACF.
<span data-picture data-alt="">
<span data-src="<?php wp_get_attachment_image_src( $attachment_id, $default ); ?>"></span>
<span data-src="<?php wp_get_attachment_image_src( $attachment_id, $small ); ?>" data-media="(min-width: 400px)"></span>
<span data-src="<?php wp_get_attachment_image_src( $attachment_id, $default ); ?>" data-media="(min-width: 768px)"></span>
<span data-src="<?php wp_get_attachment_image_src( $attachment_id, $large ); ?>" data-media="(min-width: 1200px)"></span>
<!-- Fallback content for non-JS browsers. -->
<noscript>
<img src="external/imgs/small.jpg" alt="">
</noscript>
</span>
Run Code Online (Sandbox Code Playgroud)
但它没有用.我玩过:
wp_get_attachment_image_src wp_get_attachment_image_url wp_get_attachment_image_link
我必须有星期五,因为它没有工作,有些东西对我说,这不是那么难......我今天才看到它.
希望你们能投入其中.
提前致谢,
/保罗
编辑/最终代码/修复
<?php
$attachment_id = get_field('advanced_custom_field_name_here');
$small = wp_get_attachment_image_src( $attachment_id, 'adv-pos-a-small' );
$default = wp_get_attachment_image_src( $attachment_id, 'adv-pos-a-default' );
$large = wp_get_attachment_image_src( $attachment_id, 'adv-pos-a-large' );
?>
<span data-picture data-alt="alt desc here">
<span data-src="<?php echo $default[0]; ?>"></span>
<span data-src="<?php echo $small[0]; ?>" data-media="(min-width: 400px)"></span>
<span data-src="<?php echo $default[0]; ?>" data-media="(min-width: 768px)"></span>
<span data-src="<?php echo $large[0]; ?>" data-media="(min-width: 1200px)"></span>
<!-- Fallback content for non-JS browsers. Same img src as the initial, unqualified source element. -->
<noscript>
<img src="<?php echo $default[0]; ?>" alt="alt desc here">
</noscript>
</span>
Run Code Online (Sandbox Code Playgroud)
Aid*_*ran 16
wp_get_attachment_image_src令人困惑的名字.(更好的名称是wp_get_attachment_image_atts).它实际上返回一个图像附件文件的图像属性"url","width"和"height"的数组.对于图像src,使用返回数组中的第一个元素:
$img_atts = wp_get_attachment_image_src( $attachment_id, $default );
$img_src = $img_atts[0];
Run Code Online (Sandbox Code Playgroud)
此外,请确保将ACF图像字段返回类型设置为附件ID,以便$attachment_id = get_field('advimg');为您提供所需的ID.
| 归档时间: |
|
| 查看次数: |
15272 次 |
| 最近记录: |