如何使用附件代码发布缩略图

时间:2013-06-30 作者:user32447

嗨,我正在使用下面的代码,它将文章标题链接到文章的第一个附件。但是我该如何更改它,使其获取缩略图呢?

<?php  
$args = array(
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'offset\' => 0,
\'orderby\' => \'menu_order\',
\'order\' => \'asc\',
\'post_status\' => null,
\'post_parent\' => $post->ID,
);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
    if(wp_attachment_is_image( $attachment->ID )) {
echo \'<a href="\'. get_attachment_link($attachment->ID) . \'">\'. get_the_title() .\'</a>\';

    break;
   } 
}
}
else {
echo \'\'. get_the_title() .\'\';
};
?>

EIDT: Just as the title link goes to the attachment page of the first image, i want the thumbnail to do the same.

因此\'.get_the_title().\'</a>\' 我想把缩略图附在帖子上。

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

我不知道你是想链接到缩略图还是想让图像成为缩略图。

要将指定给帖子的图像作为缩略图,请使用get_the_post_thumbnail:

  $thumb = get_the_post_thumbnail($post_id, \'thumbnail\');
要使用附件ID获取缩略图,请使用wp_get_attachment_image:

$thumb = wp_get_attachment_image( $attachment_id, \'thumbnail\' )
如果请求的图像不存在,则不会返回空字符串。

要使用附件ID获取图像链接,请使用wp_get_attachment_thumb_url

$thumb = wp_get_attachment_thumb_url( $attachment_id ); 
wp_get_attachment_image_src:

$thumb = wp_get_attachment_image_src( $attachment_id, \'thumbnail\' ); 
if (!empty($thumb[\'url\'])) {
  $thumb_url = $thumb[\'url\'];
}
基于以下评论:如何“获取帖子缩略图并将其链接到该帖子下的第一个附件”

$thumb = get_the_post_thumbnail($post->ID, \'thumbnail\');
if (!empty($thumb)) {
  $args = array(
    \'post_type\' => \'attachment\',
    \'numberposts\' => 1,
    \'orderby\' => \'menu_order\',
    \'order\' => \'asc\',
    \'post_status\' => \'inherit\',
    \'post_parent\' => $post->ID,
  );
  $attachments = get_posts($args);
  if (!empty($attachments[0]->ID)) {
    if(wp_attachment_is_image( $attachments[0]->ID )) {
      $title = \'<a href="\'.get_attachment_link($attachments[0]->ID).\'">\'.$thumb.\'</a>\';
    } 
  }
}
if (!empty($title)) {
  echo $title;
} else {
  the_title();
}

SO网友:Krzysiek Dróżdż

如果您希望标题链接到帖子缩略图而不是第一个附件,那么类似的内容应该会有所帮助:

if ( has_post_thumbnail() ) {
    echo \'<a href="\'. get_attachment_link( get_post_thumbnail_id() ) . \'">\'. get_the_title() .\'</a>\';
} else {
    echo get_the_title();  // you don\'t have to concatenate it with empty strings
}

SO网友:rfrq

只需更换:

echo \'<a href="\'. get_attachment_link($attachment->ID) . \'">\'. get_the_title() .\'</a>\';
使用:

echo wp_get_attachment_link( $attachment->ID , \'\', true, false, get_the_post_thumbnail( get_the_ID, \'thumbnail\') ) 
您可以找到有关如何自定义wp_get_attachment_link() 在法典中:http://codex.wordpress.org/Function_Reference/wp_get_attachment_link .

检查codex中使用的函数并滚动到底部,您可以在底部找到相关函数,这总是非常有用的:http://codex.wordpress.org/Function_Reference/get_attachment_link#Related

Edit:

有一小块可以在s\\u ha\\u dums解决方案上编辑,使其更加干净。

更换:

$title = \'<a href="\'.get_attachment_link($attachments[0]->ID).\'">\'.$thumb.\'</a>\';
使用:

$title = wp_get_attachment_link( $attachments[0]->ID , \'\', true, false, $thumb );
将使用WordPress的函数获取附件链接,并使用帖子缩略图作为链接。

结束

相关推荐

Keep permalinks in Wordpress

有没有办法设置我的永久链接以保持其精确链接。如果我有这样的帖子http://blog.rigo.ro/?p=11, 然后我希望每次我编辑帖子时都能保留这个链接。我已经安装了修订控制插件,并将其设置为不保留修订。有什么办法吗?我想保留这种格式的链接。编辑:我又看了一遍,永久链接保持着它们的链接,但每次我编辑它时,它都会向数据库中添加一个新版本,下一篇文章的编号会更高。如果我编辑当前帖子3次(blog.rigo.ro/?p=11),下一篇帖子将是blog。里戈。ro/?p=14。现在,我的问题是如何保持所有帖