3

我正在 wordpress 中的网站上工作,我正在尝试从帖子的高级自定义字段中获取缩略图:

<?php while ( have_posts() ) : the_post(); ?>
    <h1><?php the_field('custom_title'); ?></h1>
    <img src="<?php the_field('thumbnail'); ?>" alt="" />
    <p><?php the_content(); ?></p>
<?php endwhile; // end of the loop. ?>

问题在于,当我加载网站时,图像获取的 url 如下所示:

<img src="5, , item_alt2, , , http://portfolio.local/wp-content/uploads/2012/09/item_alt2.jpg, Array">

因此,据我所知,它正在工作的插件会查找图像,但它会加载一个奇怪的路径,因此它显示为“损坏”的图像。

我做错了什么?

 5, , item_alt2, , , http://portfolio.local/wp-content/uploads/2012/09/item_alt2.jpg, ArrayNULL
4

4 回答 4

7

查看有关高级自定义字段的文档;

http://www.advancedcustomfields.com/docs/field-types/image/

根据底部的示例,您将自定义字段的值作为对象返回;

Array
(
[id] => 540
[alt] => A Movie
[title] => Movie Poster: UP
[caption] => sweet image
[description] => a man and a baloon
[url] => http://localhost:8888/acf/wp-content/uploads/2012/05/up.jpg
[sizes] => Array
    (
        [thumbnail] => http://localhost:8888/acf/wp-content/uploads/2012/05/up-150x150.jpg
        [medium] => http://localhost:8888/acf/wp-content/uploads/2012/05/up-300x119.jpg
        [large] => http://localhost:8888/acf/wp-content/uploads/2012/05/up.jpg
        [post-thumbnail] => http://localhost:8888/acf/wp-content/uploads/2012/05/up.jpg
        [large-feature] => http://localhost:8888/acf/wp-content/uploads/2012/05/up.jpg
        [small-feature] => http://localhost:8888/acf/wp-content/uploads/2012/05/up-500x199.jpg
    )

)
于 2012-09-08T18:49:36.690 回答
0

或者您可以将自定义字段设置为 IMAGE ID 并像这样使用它

$image = wp_get_attachment_image_src(get_field('thumbnail'), 'sizename');
    <h1><?php the_field('custom_title'); ?></h1>
    <img src="' .$image[0]. '" alt="">
    <p><?php the_content(); ?></p>
<?php endwhile; // end of the loop. ?>
于 2014-07-15T14:48:03.343 回答
0

您是否将自定义字段设置为返回 url。看起来它被设置为对象。您有 3 个选项来返回图像。

于 2012-11-22T23:10:11.583 回答
0

我有同样的问题。您需要做的就是确保您没有将图像作为对象返回。您在创建/编辑自定义字段时执行此操作。只需确保将返回值设置为图像 url:

https://www.evernote.com/shard/s3/sh/91d181ed-e9d6-4504-8ab5-cee7ae85d84f/dfc9944d16337e41fb6e7e30ed26bdb5

然后,您应该能够使用它在模板中显示图像:

于 2012-11-16T17:42:58.303 回答