高级自定义字段 the_sub_field()['url'] 但 return URL
Advanced Custom Fields the_sub_field()['url'] but it doesn't return the URL
这是对这个问题的跟进
现在我遇到了无法获取子字段的问题 URL。
<div class="tc__agenda-speaker">
<?php while (have_rows('agenda_event_speakers')) : the_row(); ?>
<div class="tc__agenda-speaker-headshot">
<!-- DEBUG LINE -->
<div style="color: red;"><?php echo the_sub_field('agenda_event_speaker_headshot')['src'] ?></div>
<img src="<?php the_sub_field('agenda_event_speaker_headshot')['url'] ?>" alt="<?php the_sub_field('agenda_event_speaker_headshot')['alt'] ?>">
</div>
<div class="tc__agenda-speaker-info">
<h4><?php the_sub_field('agenda_event_speaker_name') ?></h4>
<p><?php the_sub_field('agenda_event_speaker_title') ?></p>
</div>
<?php endwhile ?>
</div>
<?php endif ?>
这一行
<?php the_sub_field('agenda_event_speaker_headshot')['url'] ?>
它的输出是这样的
16835, 16835, Name color 2, Name-color-2.png, 152744, http://website.com/wp-content/uploads/2021/02/Name-color-2.png, http://website.com/post/post-title-here/Name-color-2/, , 86, , , Name-color-2, inherit, 16799, 2021-02-02 16:45:53, 2021-02-02 16:45:53, 0, image/png, image, png, http://website.com/wp-includes/images/media/default.png, 500, 500, Array
字段returns格式为数组
You can use get URL of Image by get_sub_field('imgcolumn_1')['url'];
As function get_sub_field() returns an array.
此文档https://www.advancedcustomfields.com/resources/the_sub_field/表明访问索引没有区别
它确实说
This function is essentially the same as echo get_sub_field()
如果我去
<?php echo the_sub_field('agenda_event_speaker_headshot')['url'] ?>
img src 是 unknown
如何在高级自定义字段的子字段中访问 url 图像数组的索引?
“本质上相同”和“相同”是您被绊倒的地方。 the_sub_field()
和 get_sub_field()
不同的地方之一是当您处理无法直接转换为字符串的值时。
回答您的直接问题;你需要完全按照你在问题中所说的去做,即改变:
<?php the_sub_field('agenda_event_speaker_headshot')['url']?>
到
<?php echo get_sub_field('agenda_event_speaker_headshot')['url']?>
原因是 the_sub_field()
没有 return 值,它 echo
是值,所以没有数组 属性 url
供您访问。您的原始代码所做的与
基本相同
$variable = null;
$variable['url'];
这不是你想要的。
你得到 unknown
的原因是 the_sub_field()
确实 尝试 输出一些东西;但是因为这个特定的子字段更复杂,所以它不会像您期望的那样工作。在该函数内部,发生了这样的事情:
$subfieldValue = array();
echo $subfieldValue;
return;
我希望如果有人深入研究 the_sub_field()
你会看到本质上是这样的东西:
function the_sub_field($key){
$value = get_sub_field($key);
echo $value;
return;
}
很简单 - 首先我没有在现场设置图像...
这实际上是正确的代码。
这是对这个问题的跟进
现在我遇到了无法获取子字段的问题 URL。
<div class="tc__agenda-speaker">
<?php while (have_rows('agenda_event_speakers')) : the_row(); ?>
<div class="tc__agenda-speaker-headshot">
<!-- DEBUG LINE -->
<div style="color: red;"><?php echo the_sub_field('agenda_event_speaker_headshot')['src'] ?></div>
<img src="<?php the_sub_field('agenda_event_speaker_headshot')['url'] ?>" alt="<?php the_sub_field('agenda_event_speaker_headshot')['alt'] ?>">
</div>
<div class="tc__agenda-speaker-info">
<h4><?php the_sub_field('agenda_event_speaker_name') ?></h4>
<p><?php the_sub_field('agenda_event_speaker_title') ?></p>
</div>
<?php endwhile ?>
</div>
<?php endif ?>
这一行
<?php the_sub_field('agenda_event_speaker_headshot')['url'] ?>
它的输出是这样的
16835, 16835, Name color 2, Name-color-2.png, 152744, http://website.com/wp-content/uploads/2021/02/Name-color-2.png, http://website.com/post/post-title-here/Name-color-2/, , 86, , , Name-color-2, inherit, 16799, 2021-02-02 16:45:53, 2021-02-02 16:45:53, 0, image/png, image, png, http://website.com/wp-includes/images/media/default.png, 500, 500, Array
字段returns格式为数组
You can use get URL of Image by get_sub_field('imgcolumn_1')['url'];
As function get_sub_field() returns an array.
此文档https://www.advancedcustomfields.com/resources/the_sub_field/表明访问索引没有区别
它确实说
This function is essentially the same as echo get_sub_field()
如果我去
<?php echo the_sub_field('agenda_event_speaker_headshot')['url'] ?>
img src 是 unknown
如何在高级自定义字段的子字段中访问 url 图像数组的索引?
“本质上相同”和“相同”是您被绊倒的地方。 the_sub_field()
和 get_sub_field()
不同的地方之一是当您处理无法直接转换为字符串的值时。
回答您的直接问题;你需要完全按照你在问题中所说的去做,即改变:
<?php the_sub_field('agenda_event_speaker_headshot')['url']?>
到
<?php echo get_sub_field('agenda_event_speaker_headshot')['url']?>
原因是 the_sub_field()
没有 return 值,它 echo
是值,所以没有数组 属性 url
供您访问。您的原始代码所做的与
$variable = null;
$variable['url'];
这不是你想要的。
你得到 unknown
的原因是 the_sub_field()
确实 尝试 输出一些东西;但是因为这个特定的子字段更复杂,所以它不会像您期望的那样工作。在该函数内部,发生了这样的事情:
$subfieldValue = array();
echo $subfieldValue;
return;
我希望如果有人深入研究 the_sub_field()
你会看到本质上是这样的东西:
function the_sub_field($key){
$value = get_sub_field($key);
echo $value;
return;
}
很简单 - 首先我没有在现场设置图像...
这实际上是正确的代码。