Tắt Tính năng Tìm kiếm của WordPress mà không có Plugin

WordPress cung cấp một chức năng tìm kiếm có thể được nhúng trong cài đặt WordPress của bạn. Chức năng tìm kiếm đó có thể không cần thiết luôn luôn.

Nếu bạn có một trang web với một hoặc chỉ một vài trang, thì tính năng tìm kiếm là không cần thiết. Trong trường hợp đó, chúng tôi có thể chỉ cần tắt tính năng này để làm cho mọi thứ trở nên đơn giản và sạch sẽ.

Tìm kiếm WordPress có thể được triển khai dưới dạng tiện ích WordPress hoặc bằng cách mã hóa với các phần tử mẫu cụ thể của chủ đề. Nếu thành phần tìm kiếm được triển khai bằng cách sử dụng tiện ích con WordPress, thì nó có thể bị xóa khỏi giao diện người dùng bằng cách sử dụng bảng điều khiển quản trị.

Nếu bạn thiết kế tìm kiếm trang web bằng mã tùy chỉnh của mình thay vì sử dụng tiện ích con WordPress, thì bạn phải kiểm soát hiển thị của nó bằng cách sử dụng lập trình và CSS. Tuy nhiên, đó là tất cả về màn hình giao diện người dùng chứ không phải vô hiệu hóa toàn bộ tính năng để ngăn truy cập tìm kiếm.

Để tắt tính năng tìm kiếm, chúng ta cần viết một vài dòng mã trong các functions.php của theme hoặc child theme của chúng ta. Trong bài đăng này, tôi đã hướng dẫn cách tắt tính năng tìm kiếm bằng cách lập trình với các tệp chủ đề.

Tôi đã thêm các móc để vô hiệu hóa quyền truy cập tìm kiếm và xóa thành phần tìm kiếm khỏi giao diện người dùng.

Tạo WordPress Hooks để vô hiệu hóa tính năng tìm kiếm

Khối mã này chứa chức năng vô hiệu hóa quyền truy cập tìm kiếm và hiển thị Trang không tìm thấy . Hàm này sẽ được nối với các thẻ thích hợp chỉ định hành động sẽ được thực hiện.

...

// function search_filter_query ($ query, $ error = true) {
	
	if (is_search ()) {
		$ query-> is_search = false;
		$ query-> query_vars [s] = false;
		$ query-> query [s] = false;
		
		// lỗi
		nếu ($ error == true)
			$ query-> is_404 = true;
	}
}

add_action ('parse_query', 'search_filter_query');

...

Xóa Tiện ích tìm kiếm khỏi giao diện người dùng

Sau khi vô hiệu hóa tìm kiếm bằng cách đặt thuộc tính truy vấn tìm kiếm thành false, một móc bộ lọc WordPress được thêm vào để xóa thành phần tìm kiếm khỏi giao diện người dùng.

Thận trọng: create_ functions là một hàm tích hợp sẵn trong PHP, không được dùng nữa kể từ 7.2.0.

Vì vậy, tôi cũng đã chỉ định mã thay thế để xóa tiện ích tìm kiếm bằng cách sử dụng phương thức WordPress unregister_widget () . Tôi đã thêm một action hook để gọi phương thức hủy đăng ký này trong khi khởi tạo các widget.

// Thận trọng: create_ functions không được dùng nữa
add_filter ('get_search_form', create_ functions ('$ a', "return null;"));

// HOẶC

function hide_search_widget () {
    unregister_widget ('WP_Widget_Search');
 
add_action ('widgets_init', 'hide_search_widget');