使用the_post_thumbnail()

时间:2016-01-31 22:16:58

标签: php wordpress thumbnails

我在functions.php中创建了一个名为 bateau 的自定义帖子类型。我还创建了一个页面,其中显示了属于 bateau 自定义帖子类型的所有帖子,其中显示了一些最重要的字段。最后,当我点击其中一个帖子时,链接会将我发送到相关的自定义帖子页面,即特定类型的帖子。

自定义帖子 bateau 有自己的自定义字段,缩略图及其自定义分类。

当我在特定船的页面上时,我想要检索和显示,不仅是最重要的,而且是所有自定义字段,缩略图和分类。

所以,在functions.php中,我写了这个过滤器:

add_filter('the_content','add_text');

    function add_text($text) {

        global $post;
        $text = "";

        if($post->post_type == 'bateau') { 

        $text.= "<h1 class=\"bateau-entry-title\">".get_post_meta( $post->ID, 'bateau_nom', true )."</h1>";
        return $text;
        }
    }   

它工作正常,前提是我在关闭和打开PHP标记时不写纯HTML文本,即只有在PHP文本var中包装所有HTML时它才有效。如果我不这样做,内容也会显示在标题的开头,而不是一次,而是两次。奇怪,不是吗?

如果我添加这一行:

$text.= "<img class=\"thumb\" src=\"the_post_thumbnail();

缩略图在“文章”中正确显示...但是,猜猜也是在标题的开头,不是一次,而是两次!我只是找不到为什么缩略图的行为像这样。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

如果您使用img,我认为您不需要the_post_thumbnail()标记。

尝试做类似的事情:

if ( has_post_thumbnail() ) 
    the_post_thumbnail();

答案 1 :(得分:0)

在Wordpress中,您调用的页面:

  

当我在某艘船的页面上时

称为single。而不是使用

the_content上添加过滤器
add_filter('the_content','add_text');

你最好在循环中添加你想要的东西。为此,您可以在当前主题的根目录中创建一个名为single-bateau.php的文件(这是一个协议,因此您需要完全按照这个名称命名),在那里您可以拥有循环:< / p>

if(have_posts()){
    while(have_posts()){
        the_post();
        the_title();
        if( has_post_thumbnail() ){
            the_post_thumbnail( $thumb_size );
        }
        the_taxonomies();
        the_category();
        the_tags();
    }
}