如何获取帖子缩略图标题?

时间:2014-03-16 作者:Rahman Sharif

我想显示帖子缩略图的标题,有两种方法,但没有一种方法可以正确显示标题,标题只是浮动,不显示在图像下!我想将图像包装在wp caption div中,就像其他带有标题的图像一样。

这是我尝试过的函数

function monahans_thumbnail_caption($html, $post_id, $post_thumbnail_id, $size, $attr)
{
  $attachment =& get_post($post_thumbnail_id);

  // post_title => image title
  // post_excerpt => image caption
  // post_content => image description

  if ($attachment->post_excerpt || $attachment->post_content) {
    $html .= \'\';
    if ($attachment->post_excerpt) {
      $html .= \'\'.$attachment->post_excerpt.\' \';
    }
    $html .= $attachment->post_content.\'

\'; } return $html; } add_action(\'post_thumbnail_html\', \'monahans_thumbnail_caption\', null, 5);
正如我所说,标题根本没有正确显示:

enter image description here

我需要一个函数来包装图像wp-caption div,并将标题文本包装在其中wp-caption-text

enter image description here

1 个回复
SO网友:TheDeadMedic

使用短代码处理程序img_caption_shortcode 要为您呈现HTML,尽管您确实需要传递一个宽度(我们可以很容易地获得这个宽度wp_get_attachement_image_src:

function wpse_138126_thumbnail_caption( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
    if ( $post = get_post( $post_thumbnail_id ) ) {
        if ( $size = wp_get_attachment_image_src( $post->ID, $size ) )
            $width = $size[1];
        else
            $width = 0;

        $html = img_caption_shortcode(
            array(
                \'caption\' => trim( "$post->post_excerpt $post->post_content" ),
                \'align\'   => \'alignright\',
                \'width\'   => $width,
            ),
            $html       
        );
    }

    return $html;
}

add_filter( \'post_thumbnail_html\', \'wpse_138126_thumbnail_caption\', 10, 5 );

结束

相关推荐

Are captions stored anywhere?

关于我之前的question about shortcode captions, 在我看来,标题的实际文本并不是存储在短代码本身的帖子内容之外的任何地方。我会认为wp_get_attachment_metadata 将存储附件的信息,但它不会。我错了吗?或者WordPress没有在任何地方存储实际的标题?