Trong woocommerce mặc định trang kết quả tìm kiếm sản phẩm sẽ lần lượt hiện thị thứ tự như sau:
- Danh sách sản phẩm
- Danh sách các bài viết
- Danh sách các trang
Bây giờ mong muốn trang kết quả tìm kiếm sản phẩm sẽ hiện thị là :
- Danh sách các bài viết
- Danh sách các sản phẩm
Để giải quyết bài toán này, chúng ta sẽ làm như sau:
Bước 1: Sửa file [structure-wc-global.php]
Trong thư mục [wp-content\themes\flatsome\inc\woocommerce] chúng ta sửa file [structure-wc-global.php]
Bạn tìm đến hàm flatsome_pages_in_search_results () và bỏ add_action của hàm này ra khỏi [woocommerce_after_main_content]
Bước 2: Bổ sung hàm flatsome_pages_in_search_results_before()
Trong file [functions.php] chúng ta bổ sung hàm flatsome_pages_in_search_results_before () có nội dung như sau:
// Add blog posts to top of search results if set.
function flatsome_pages_in_search_results_before(){
if(!is_search() || !get_theme_mod(‘search_result’, 1)) return;
global $post;
?>
<?php if( get_search_query() ) : ?>
<?php
/**
* Include pages and posts in search
*/
query_posts( array( ‘post_type’ => array( ‘post’), ‘s’ => get_search_query() ) );
$posts = array();
while ( have_posts() ) : the_post();
array_push($posts, $post->ID);
endwhile;
wp_reset_query();
if ( ! empty( $posts ) ) {
//echo ‘<hr/><h4 class=”uppercase”>’ . esc_html__( ‘Posts found’, ‘flatsome’ ) . ‘</h4>’;
echo flatsome_apply_shortcode( ‘blog_posts’, array(
‘columns’ => ‘3’,
‘columns__md’ => ‘3’,
‘columns__sm’ => ‘2’,
‘type’ => get_theme_mod( ‘search_result_style’, ‘slider’ ),
‘image_height’ => ‘56.25%’,
‘show_date’ => get_theme_mod( ‘blog_badge’, 1 ) ? ‘true’ : ‘false’,
‘ids’ => implode( ‘,’, $posts ),
) );
}
?>
<?php endif; ?>
<?php
}
add_action(‘woocommerce_before_main_content’,’flatsome_pages_in_search_results_before’, 10);
Thế là ok rôi đó, bạn lưu lại và xem thành quả nhé!
Chúc các bạn thành công!