自定义字段图片,而不是在类别页面上发布缩略图

时间:2016-03-28 作者:EliChan

我正在尝试修改一个主题,使其与我的自定义字段(我在页面上输入的大多数数据都使用ACF)一起用于一个有歌词的站点。原始代码如下:

$metro_creativex_posttitle = get_the_title();
$metro_creativex_feat_image = wp_get_attachment_image_src( 
            get_post_thumbnail_id( $post->ID ), 
            \'single-post-thumbnail\' 
        );

if(isset($metro_creativex_feat_image[0])):
    echo \'<div class="img">\'.get_the_post_thumbnail().\'</div>\';
endif;
这是content.php 显示类别页面中的帖子。现在,由于我的帖子没有任何特色图片,只有一个或两个通过自定义字段显示的图片,我的第一个意图是用单封面艺术替换“自定义缩略图”,所以首先我替换了get_post_thumbnail 使用get_field, 它至少可以检测出歌曲是否有一张封面图片:

$metro_creativex_posttitle = get_the_title();
$metro_creativex_feat_image = wp_get_attachment_image_src(
            $post->ID,
            get_field(\'sd_single_img\'),
            \'single-post-thumbnail\' 
        );

if(isset($metro_creativex_feat_image[0])):
    echo \'<div class="img">\'.get_the_post_thumbnail().\'</div>\';
endif;
我现在的主要问题是,我不明白我必须在echo 要使其显示实际图像,而不仅仅是类别菜单上歌曲标题上方的空白:Link to my page

我怎样才能修复它?

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

我想你应该在自定义域中使用图像URL。

$metro_creativex_posttitle = get_the_title(); // Not used in this snippet
/*
// you don\'t need this block
$metro_creativex_feat_image = wp_get_attachment_image_src(
    $post->ID,
    get_field(\'sd_single_img\'),
    \'single-post-thumbnail\' 
);
*/

// you\'ll need `$post_id` for each song
$img_src = get_field(\'sd_single_img\', $post_id);

if( !empty( $img_src ) ) {
    // echo if custom field is not empty
    echo \'<div class="img"><img src="//thenewblackgold.netsons.org/wp/category/songs/level-5/\' . $img_src . \'" /></div>\'; 
}
Updated 符合OP意见。

SO网友:EliChan

我相信这是一个更好的方法,但多亏了Max,我找到了这个:

$img_scr = get_field(\'sd_single_img\', $post_id);
$img_scr_url = wp_get_attachment_url(get_field(\'sd_single_img\', $post_id));
if( !empty( $img_scr ) ) {
echo \'<div class="img"><img src="\' . $img_scr_url . \'" /></div>\'; 
由于它返回了一个ID,我必须输入另一个变量,将ID转换为url,现在它就像一个符咒一样工作;)非常感谢:D