我在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();
缩略图在“文章”中正确显示...但是,猜猜也是在标题的开头,不是一次,而是两次!我只是找不到为什么缩略图的行为像这样。有人可以帮忙吗?
答案 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();
}
}