首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AFC自定义字段变量获取ID的foogallery php短代码不显示。

从AFC自定义字段变量获取ID的foogallery php短代码不显示。
EN

Stack Overflow用户
提问于 2021-01-25 20:46:27
回答 2查看 217关注 0票数 0

我在posts中有ACF自定义字段和图片库ID,自定义字段存储在wp_postmeta表中。

我正试图在post页面上使用分配给此帖子的图库id来执行短代码。

我的代码:

代码语言:javascript
复制
$post = get_post();
$gallery_id = the_field('gallery', $post->ID );
echo do_shortcode('[foogallery id="'. $gallery_id .'"]');

返回“没有找到画廊!”

代码语言:javascript
复制
echo($gallery_id); // returns 19557
echo do_shortcode('[foogallery id="19557"]'); // works well

如何使用此帖子的ACF值在post页面上执行短代码?

我也尝试过get_field(),但是当回显它时:“数组到字符串转换”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-25 21:04:17

试试这个:

代码语言:javascript
复制
$gallery_id = get_field('gallery', $post->ID );

the_field() (文档)用于直接输出值,而get_field() (文档)用于获取值,例如用它设置变量。

编辑:我误解了你的问题,看到你已经试过了。在这种情况下,尝试var_dump($gallery_id),查找返回的值,并在返回图库ID时使用正确的数组键。

因此,如果数组键是key,则使用$gallery_id['key']输出该键。

票数 1
EN

Stack Overflow用户

发布于 2021-01-26 14:55:24

根据您的其他注释,它看起来像是the_field() (文档)返回一个数组,所以如果您总是期待一个数组,您可以使用reset() (文档)返回该数组中的第一个值。

您还可以使用内置函数foogallery_render_gallery而不是do_shortcode

在调用函数之前检查这些函数是否存在,这是一个很好的实践。这将有助于当这些插件暂时停用,然后您将避免致命的错误。

试着做这样的事情:

代码语言:javascript
复制
//get the current post
$post = get_post();

//check to make sure ACF plugin is activated
if ( function_exists( 'the_field' ) ) {

  //get the field value from ACF
  $gallery_id = the_field( 'gallery', $post->ID );

  //we are expecting an array, so use reset to rewind the pointer to the first value
  reset( $gallery_id );

  //check to make sure FooGallery is activated
  if ( function_exists( 'foogallery_render_gallery') ) {

    //finally, render the gallery
    foogallery_render_gallery( $gallery_id );
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65892204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档