目前我有以下代码:
<?php while ( have_posts() ) : the_post(); ?>
<?php
if ( get_post_type() !== 'post' ) {
if ( get_post_type() == 'landing-pages' ) {
get_template_part( 'templates/content/archive', 'landingpages' );
} elseif ( get_post_type() == 'product' ) {
get_template_part( 'templates/content/archive', 'product' );
} else {
get_template_part( 'templates/content/archive', 'cpt' );
}
} else {
get_template_part( 'templates/content/archive', 'posts' );
};
?>
<?php endwhile; ?>
<?php get_template_part( 'templates/modules/nav', 'pagination' ); ?>
但是,这只显示最新到最旧的。随着自定义帖子,woocommerce产品,帖子,页面,所有混合togather。
我只想显示产品,然后一旦显示所有匹配的产品,就会返回与搜索查询匹配的任何其他内容,例如:其他自定义帖子类型,页面和帖子。
有关如何实现这一目标的任何建议吗?
感谢。
答案 0 :(得分:0)
将以下代码复制并粘贴到主题的functions.php文件中。
add_filter('posts_orderby','search_sort_custom',10,2);
function search_sort_custom( $orderby, $query )
{
global $wpdb;
if(!is_admin() && is_search())
$orderby = $wpdb->prefix."posts.post_type DESC, {$wpdb->prefix}posts.post_date DESC";
return $orderby;
}