使用帖子ID获取全尺寸附件图像的URL?

时间:2011-01-31 作者:Joann

我有这个功能:

function get_image_link( &$post ) {
         $image_link_meta = get_post_meta( $post->ID, \'as_link_to_image\', true ); 

         $image_link_from_post = \'\';

         if ( function_exists( \'has_post_thumbnail\' ) && has_post_thumbnail( $post->ID ) ) {
            $attachment_image_link = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), full );
         }

         if ( $attachment_image_link[0] )
            $image_link_from_post = $attachment_image_link[0];

         if( !empty( $image_link_meta ) ) 
            $final_image_link = $image_link_meta;

         elseif( !empty( $image_link_from_post ) )
            $final_image_link = $image_link_from_post; 

         else
            $final_image_link = WP_PLUGIN_URL . \'/link/to/no-image.png\';

         return $final_image_link;
    }
}
知道为什么吗$image_link_from_post 没有获得价值吗?

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

这应该能够返回大图像的url。

$largeImg = wp_get_attachment_link( $attachment_id, \'large\', false );
还有一种情况不起作用。

wp_get_attachment_image_src( $attachment_id, \'large\' );

SO网友:GFargo

很好的代码片段可用here 来自CSS Tricks的家伙们:

$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id, \'thumbnail-size\', true);
$thumb_url = $thumb_url_array[0];
当我第一次尝试这个解决方案时,它不断抛出“缺少附件”,因为我引用的是帖子ID而不是附件ID。不管是谁,这个小片段帮我澄清了这一点。第一条评论将其缩减为一行!

干杯

SO网友:goldenapples

这一行就在这里:

if ( !$attachment_image_link[0] )
            $image_link_from_post = $attachment_image_link[0];
您只分配$image_link_from_post 如果帖子缩略图不存在,则为帖子缩略图的变量。去掉条件中的NOT操作符,它将以您想要的方式工作。

更新:哎呀,奇怪,我刚刚从你的代码中复制了这一行,但现在它不在了。你已经解决问题了吗

结束

相关推荐

“POSTS_JOIN”和“POSTS_FIELDS”过滤器挂钩的解释?

我是“posts\\uu0”过滤器挂钩的新手,我想从那些有经验的人那里了解一些事情:在这个question, 有人使用posts_join 第二个参数为$query:add_filter(\'posts_join\',array(&$this,\'posts_join\'),10,2); ... function posts_join($join,$query) { } 这是wp\\U查询的实例还是类似的实例?同样的例子:如何确定帖子