Người Viết : ViKiMi Editor

Thiết kế Custom Search Page với các tuỳ chỉnh riêng biệt, tạo một trang tìm kiếm khác biệt !
Chúng ta đã biết WordPress cung cấp cho chúng ta search.php để hiển thị kết quả tìm kiếm, searchform.php để tạo Search Form hiển thị một Form phục vụ tìm kiếm trên Website. Đó là những điều cơ bản mà WordPress cung cấp, nhưng để tạo một Trang Tìm Kiếm / Search Page thì chúng ta cần phải thêm vào điều này.
Không khó khi chúng ta chỉ cần tạo 2 công việc đó là :
Công việc 1 : Tạo một Search Page Template, đây là khuôn mẫu cho Trang Tìm Kiếm của WordPress Website.
Công Việc 2 : Tạo mới một Trang Tìm kiếm / Search Page
Trang tìm kiếm / Search Page sẽ sử dụng Template đã tạo ở bước 1. Khi một Search Page được tạo, chúng ta có thể thêm chúng vào Menu của WordPress hoặc các vị trí khác nhau.
A. Thực hiện công việc 1
Hãy Copy file search.php để tạo một file mới searchpage-template.php. Chúng ta có thể clear toàn bộ nội dung trong file searchpage-template.php và thêm nội dung mới như dưới :
<?php
/*
* Template Name: Search Page
*/
?>
<?php get_header(); ?>
<div class=”wrap”>
<div id=”primary” class=”content-area”>
<main id=”main” class=”site-main” role=”main”>
<?php get_search_form(); ?>
<?php
/*
* Có thể thêm các Code tuỳ chỉnh
* theo thiết kế riêng tại đây
*/
?>
</main>
</div><!– #primary –>
</div><!– .wrap –>
<?php get_footer(); ?>
Save với nội dung công việc trên chúng ta đã có một Template được tạo ra và chỉ cần sử dụng Template nữa thôi.
B. Thực hiện Công việc số 2
Tại Dashboard, thực hiện thêm mới một Page với tên là Search / Tìm kiếm. Page này có thể được thêm vào Menu hay những vị trí khác nhau trên Website.
Administration Screen > Pages > Add New
Title của Page : Search
Content của Page : Để trống không thêm gì
Việc tiếp theo là chọn Template cho Page. Xem phần Page Attributes phía menu bên phải. Chọn phần (Giao Diện) Drop-down của Template, và lựa chọn Search Page. Không khó hiểu vì điều này đã có tại Công Việc 1 là Template Name: Search Page. Cuối cùng, Publish / Xuất bản Page Tìm kiếm vừa được tạo.
Như vậy chúng ta có thể sử dụng Search Page này bất kỳ vị trí nào.
CHÚNG TA BIẾT RẰNG, khi thực hiện tìm kiếm bất kỳ thứ gì trên Search Form ( Nơi nhập thông tin tìm kiếm ), luôn cần hiển thị kết quả lên cho người sử dụng. Chính điều đó phát sinh việc cần giữ nguyên kết quả từ trang tìm kiếm / Search Page và Phân trang / Pagination.
Chúng ta cần thêm đoạn code sau vào phần đầu của Search Template
<?php
global $query_string;
wp_parse_str( $query_string, $search_query );
$search = new WP_Query( $search_query );
?>
Vậy nội dung có thể cập nhật cho Search Temaplate đã thiết kế ở phía trên như sau :
<?php
/*
* Template Name: Search Page
*/
?>
<?php
global $query_string;
wp_parse_str( $query_string, $search_query );
$search = new WP_Query( $search_query );
?>
<?php get_header(); ?>
<div class=”wrap”>
<div id=”primary” class=”content-area”>
<main id=”main” class=”site-main” role=”main”>
<?php get_search_form(); ?>
<?php
/*
* Có thể thêm các Code tuỳ chỉnh
* theo thiết kế riêng tại đây
*/
?>
</main>
</div><!– #primary –>
</div><!– .wrap –>
<?php get_footer(); ?>