我有一个名为'grhdogs'的自定义帖子类型。问题是WordPress search.php中的循环样式化自定义帖子类型,就像在帖子或页面上正常点击一样。我想使用不同的模板部分设置自定义帖子类型搜索结果的样式。我怎样才能做到这一点?它说自己普通的帖子和页面应该得到默认的模板部分(内容,搜索)。
这是循环...
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php get_template_part( 'content', 'search' ); ?>
<?php endwhile; ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
<?php wplook_content_navigation('postnav' ) ?>
我想用于自定义帖子类型'grhdogs'的模板部分是:
<?php get_template_part( 'search', 'grhdogs' ); ?>
答案 0 :(得分:3)
您应该通过使用get_post_type()函数 -
比较帖子类型来包含模板部分<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<?php // so if the current post type is your custom post type ?>
<?php if( 'grhdogs' == get_post_type() ): ?>
<?php get_template_part( 'search', 'grhdogs' ); ?>
<?php // for any other post type ?>
<?php else : ?>
<?php get_template_part( 'content', 'search' ); ?>
<?php endif; ?>
<?php endwhile; ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
<?php wplook_content_navigation('postnav' ) ?>
此外,为了包含基于帖子类型和当前对象页面的单独模板文件,动态方法是 -
<?php $query_type = 'search'; // pv: archive, author, category ?>
<?php $post_type = get_post_type(); // pv: post, custom post type ?>
<?php get_template_part( $query_type, $post_type ); ?>
然后示例模板文件名为 - 'search-post.php'
** pv =可能值