显示ACF选项页中的随机图像

时间:2015-06-11 作者:JoshJohnsonUK

所以我的任务是制作一个“图像广告”,放在这个网站的侧边栏上。客户端希望能够将5个图像上载到ACF选项页面,然后在每次页面刷新时从那里随机提取一个图像并显示在侧边栏上。

我想知道是否有人可以帮助我。

<?php 
    $rows = get_field(\'image_advert_repeater\'); // get all the rows
    $rand_row = $rows[ array_rand($rows, 1) ]; // get a random row
    $rand_row_image = $rand_row[\'image_advert_images\']; // get the sub field value 
    // Note
    // $first_row_image = 123 (image ID)
    $image = wp_get_attachment_image_src( $rand_row_image, \'full\' );
    // url = $image[0];
    // width = $image[1];
    // height = $image[2];
?>
<img src="<?php echo $image[0]; ?>" />
这是我目前试图用来显示图像的代码。它取自ACF Repeater文档,我已经编辑过它以使用我的Repeater,但我似乎无法让它工作。我还尝试在字段名称的末尾添加“选项”,以查看这是否是ISSUE,但它只是在刷新时对网站进行白屏显示。

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

刚刚注意到这个问题-因为您的ACF字段是一个选项页,所以需要传递第二个参数optionsget_field - 还要添加一些健全性检查:

$rows = get_field( \'image_advert_repeater\', \'options\' );
if ( ! empty( $rows ) && is_array( $rows ) ) {
    // Your code
}

SO网友:Roy Barber

这应该可以做到:

<?php $rows = get_field( \'image_advert_repeater\', \'options\' );
// Wrap in an if statement to prevent an empy image SRC if no rows exist
if ( ! empty( $rows ) && is_array( $rows ) ) {
    // Get the row and ranomise
    $rand_row = $rows[ array_rand($rows) ];
    // get the image url from the array
    $rand_row_image = $rand_row[\'image_advert_images\'];
    // make things easier to read
    $image = $rand_row_image;
?>
<!-- Echo out the image -->
<img src="<?php echo $image ?>" />

结束

相关推荐

在加载plugins_后,get_plugins()不工作

知道为什么下面的代码function my_plugin_load() { get_plugins(); } add_action( \'plugins_loaded\', \'my_plugin_load\' ); 抛出此错误?Fatal error: 不应调用未定义的函数get\\u plugins()get_plugins() 定义在plugins_loaded 胡克开火了?如果不是,那么什么才是合适的钩子呢?(这个钩子应该启动插件的引导/加载过程)