在WordPress和Lightbox中使用高级自定义字段

时间:2012-07-12 作者:Owen O\'Neill

我正在使用ACF Plugin. 我希望有一个可以上传图像的字段,结果将在Lightbox中显示完整图像,然后将完整图像的大小调整为该字段的缩略图(如普通Lightbox)。

到目前为止,我这里有剧本,这就是我现在的位置:

<div class="single last">
<a href="<?php echo the_field(\'image_gallery\'); ?>" rel="lightbox" title="<?php the_title(); ?>">

<?php
$main_car_pic = addslashes(the_repeater_field(\'image_gallery\'));
$reg_ext = "#.jpg#i";
$thumb_ext = "-150x150.jpg";
$car_thumb = preg_replace($reg_ext, $thumb_ext, $main_car_pic);

echo $car_thumb
?>
ACF Repeater字段工作不正常,我无法工作。为什么有人有过ACF和调整缩略图图像大小的经验。。希望我所做的代码能对你有所帮助,如果你能发表评论,我会非常感激,我可以提供任何可能有帮助的东西。

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

这里发生了很多事情。首先,您应该将转发器字段图像存储为ID(这可能需要更改子字段的设置并可能重新上载一些图像),然后使用所有WordPress核心API函数来处理它。(您可能会遇到wp_get_attachment_image_src.) 这就消除了您的正则表达式,使您的图像大小能够充分利用add_image_size, 等

其次,您需要在链接到的页面上遵循repeater字段的代码示例。get_repeater_field() 返回一个对象,您可以使用类似while 声明和get_sub_field(). (作为旁白:get_field( \'a_repeater_field\' ) 返回可以使用foreach 声明。)

最终代码如下所示:

<?php if( get_field(\'image_gallery\') ) {
    while( the_repeater_field(\'image_gallery\') ) {
        $large_img_src = wp_get_attachment_image_src( get_subfield(\'an_image_subfield\'), \'large\' );
        echo \'<a href="\' . $large_img_src[0] . \'">\' . wp_get_attachment_image( get_sub_field(\'an_image_subfield\'), \'thumbnail\' ) . \'</a>\';
    }
} ?>
可以用数组或自定义图像大小替换“缩略图”和“大”

结束

相关推荐

Log hits on advertiser images

我们网站上有一些“赞助商”图片,链接到我们的。。好吧,赞助商!Source<a href=\"http://www.amazon-below-water.com/\" target=\"_blank\" alt=\"Amazon Below Water\"><img src=\"<?php bloginfo(\'template_url\'); ?>/images/BelowWater.png\" alt=\"\" /></a> <a href

在WordPress和Lightbox中使用高级自定义字段 - 小码农CODE - 行之有效找到问题解决它

在WordPress和Lightbox中使用高级自定义字段

时间:2012-07-12 作者:Owen O\'Neill

我正在使用ACF Plugin. 我希望有一个可以上传图像的字段,结果将在Lightbox中显示完整图像,然后将完整图像的大小调整为该字段的缩略图(如普通Lightbox)。

到目前为止,我这里有剧本,这就是我现在的位置:

<div class="single last">
<a href="<?php echo the_field(\'image_gallery\'); ?>" rel="lightbox" title="<?php the_title(); ?>">

<?php
$main_car_pic = addslashes(the_repeater_field(\'image_gallery\'));
$reg_ext = "#.jpg#i";
$thumb_ext = "-150x150.jpg";
$car_thumb = preg_replace($reg_ext, $thumb_ext, $main_car_pic);

echo $car_thumb
?>
ACF Repeater字段工作不正常,我无法工作。为什么有人有过ACF和调整缩略图图像大小的经验。。希望我所做的代码能对你有所帮助,如果你能发表评论,我会非常感激,我可以提供任何可能有帮助的东西。

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

这里发生了很多事情。首先,您应该将转发器字段图像存储为ID(这可能需要更改子字段的设置并可能重新上载一些图像),然后使用所有WordPress核心API函数来处理它。(您可能会遇到wp_get_attachment_image_src.) 这就消除了您的正则表达式,使您的图像大小能够充分利用add_image_size, 等

其次,您需要在链接到的页面上遵循repeater字段的代码示例。get_repeater_field() 返回一个对象,您可以使用类似while 声明和get_sub_field(). (作为旁白:get_field( \'a_repeater_field\' ) 返回可以使用foreach 声明。)

最终代码如下所示:

<?php if( get_field(\'image_gallery\') ) {
    while( the_repeater_field(\'image_gallery\') ) {
        $large_img_src = wp_get_attachment_image_src( get_subfield(\'an_image_subfield\'), \'large\' );
        echo \'<a href="\' . $large_img_src[0] . \'">\' . wp_get_attachment_image( get_sub_field(\'an_image_subfield\'), \'thumbnail\' ) . \'</a>\';
    }
} ?>
可以用数组或自定义图像大小替换“缩略图”和“大”

相关推荐

https images not displaying

Setup嗨,伙计们!我有个奇怪的问题。我正在使用安装了ssl证书的wordpress Premium BeTheme。Problem问题是,虽然图像是用https上传到网站上的,但它们没有显示出来。如果我手动将图像的URL从https切换到http,它们就会开始显示。What I have done?我尝试过在internet上卸载ssl证书和几乎所有的解决方案,但都没有解决。Here is the URL of the website : https://uptimeelite.com/