WordPress loại bỏ thanh hành động

Trong WordPress 3. 1 và các phiên bản mới hơn, có một tính năng hoàn toàn mới – thanh quản trị. Nó cho phép bạn thực hiện các tác vụ quản trị trên trang web của mình trong khi duyệt qua giao diện người dùng của nó. Tuy nhiên, có nhiều người muốn tắt tính năng này

Mặc dù thanh quản trị này có thể bị tắt bằng cách thêm bộ lọc vào chức năng của bạn. php, cách dễ nhất và rõ ràng nhất để thực hiện việc này là thông qua trang cấu hình người dùng WordPress

Đăng nhập bằng tài khoản của bạn và sau đó điều hướng đến menu Người dùng > Tất cả người dùng từ cột menu bên trái. Khi ở trên trang này, hãy di chuột qua người dùng đã chọn và nhấp vào Chỉnh sửa xuất hiện

show_admin_bar[false] mà không có kết quả, thì đó là vì phương pháp này không loại bỏ thanh quản trị trên phần phụ trợ quản trị viên WordPress theo thiết kế. Nếu bạn vẫn muốn gỡ bỏ nó, thì bài viết này là dành cho bạn

Mật mã

Hãy đến ngay với thịt và khoai tây. Đây là phương pháp tôi đã tạo cho nó

// Removes the admin bar.
// Only use it for admin pages where you cannot use show_admin_bar[false].
function remove_admin_bar_hooks[] {
		
	// Removes the hooks that render the admin bar.
	remove_action['template_redirect','_wp_admin_bar_init', 0];
	remove_action['admin_init','_wp_admin_bar_init'];
	remove_action['before_signup_header','_wp_admin_bar_init'];
	remove_action['activate_header','_wp_admin_bar_init'];
	remove_action['wp_body_open','wp_admin_bar_render',0];
	remove_action['wp_footer','wp_admin_bar_render',1000];
	remove_action['in_admin_header', 'wp_admin_bar_render', 0];
		
	// Removes the admin bar class from the body tag.
	add_filter['body_class',function[$wp_classes, $extra_classes] {
		// Deletes the admin-bar class from the arrays if present.
		return array_diff[ 
			array_merge[ $wp_classes, [array] $extra_classes ], 
			array['admin-bar']
		];
	},10000,2];
}

Bạn sẽ muốn gọi nó bằng một trong các hook hành động của WordPress. Tôi đề nghị admin_init

Có 2 điều xảy ra trong phương pháp

1. Các móc để khởi tạo và hiển thị thanh quản trị đã bị xóa

Các móc này được tìm thấy trong các dòng 608 đến 616 [kể từ WordPress 5. 8. 1] của wp-includes/default-filters.php

// Admin Bar.
// Don't remove. Wrong way to disable.
add_action[ 'template_redirect', '_wp_admin_bar_init', 0 ];
add_action[ 'admin_init', '_wp_admin_bar_init' ];
add_action[ 'before_signup_header', '_wp_admin_bar_init' ];
add_action[ 'activate_header', '_wp_admin_bar_init' ];
add_action[ 'wp_body_open', 'wp_admin_bar_render', 0 ];
add_action[ 'wp_footer', 'wp_admin_bar_render', 1000 ]; // Back-compat for themes not using `wp_body_open`.
add_action[ 'in_admin_header', 'wp_admin_bar_render', 0 ];

2. Lớp admin-bar bị xóa

Trong mọi trang WordPress nơi thanh quản trị được hiển thị, thẻ

// Admin Bar.
// Don't remove. Wrong way to disable.
add_action[ 'template_redirect', '_wp_admin_bar_init', 0 ];
add_action[ 'admin_init', '_wp_admin_bar_init' ];
add_action[ 'before_signup_header', '_wp_admin_bar_init' ];
add_action[ 'activate_header', '_wp_admin_bar_init' ];
add_action[ 'wp_body_open', 'wp_admin_bar_render', 0 ];
add_action[ 'wp_footer', 'wp_admin_bar_render', 1000 ]; // Back-compat for themes not using `wp_body_open`.
add_action[ 'in_admin_header', 'wp_admin_bar_render', 0 ];
0 của trang sẽ có lớp admin-bar

Lớp này thông báo cho các chủ đề rằng có một thanh quản trị trên trang, do đó các chủ đề cung cấp bố cục trang thay thế để phù hợp với thanh quản trị không sử dụng nó

Khi nào bạn sẽ sử dụng cái này?

Nếu bạn vô hiệu hóa quyền truy cập vào phụ trợ quản trị viên WordPress cho người dùng của mình vì bất kỳ lý do gì, bạn sẽ thấy điều này hữu ích. Chẳng hạn, đoạn mã sau ngăn Người đăng ký truy cập vào

// Admin Bar.
// Don't remove. Wrong way to disable.
add_action[ 'template_redirect', '_wp_admin_bar_init', 0 ];
add_action[ 'admin_init', '_wp_admin_bar_init' ];
add_action[ 'before_signup_header', '_wp_admin_bar_init' ];
add_action[ 'activate_header', '_wp_admin_bar_init' ];
add_action[ 'wp_body_open', 'wp_admin_bar_render', 0 ];
add_action[ 'wp_footer', 'wp_admin_bar_render', 1000 ]; // Back-compat for themes not using `wp_body_open`.
add_action[ 'in_admin_header', 'wp_admin_bar_render', 0 ];
0 khi đăng nhập bằng cách buộc WordPress hiển thị trang 404 thay thế

add_action['admin_init', 'your_admin_init'];
function your_admin_init[] {
	// If a subscriber accesses the admin area.
	if[current_user_can['subscriber']] {
		// Triggers the 404 page.
		global $wp_query;
		$wp_query->set_404[];
		status_header[ 404 ];
		get_template_part[ 404 ];			
		exit;
	}
}

Trong ví dụ trên, mặc dù 404 được hiển thị, WordPress vẫn sẽ phát hiện ra rằng người dùng đang ở trong khu vực quản trị và hiển thị thanh quản trị WordPress. Sử dụng

// Admin Bar.
// Don't remove. Wrong way to disable.
add_action[ 'template_redirect', '_wp_admin_bar_init', 0 ];
add_action[ 'admin_init', '_wp_admin_bar_init' ];
add_action[ 'before_signup_header', '_wp_admin_bar_init' ];
add_action[ 'activate_header', '_wp_admin_bar_init' ];
add_action[ 'wp_body_open', 'wp_admin_bar_render', 0 ];
add_action[ 'wp_footer', 'wp_admin_bar_render', 1000 ]; // Back-compat for themes not using `wp_body_open`.
add_action[ 'in_admin_header', 'wp_admin_bar_render', 0 ];
1 sẽ không hoạt động ở đây, vì thanh quản trị không bị tắt trong phần phụ trợ

Phần kết luận

Tôi hy vọng bài viết này đã giúp bạn với những gì bạn đang tìm kiếm. Như thường lệ, hãy để lại nhận xét nếu bạn tìm thấy bất kỳ lỗi nào hoặc có bất kỳ điều gì có giá trị để bổ sung. Nếu bạn thích công việc của chúng tôi, bạn cũng có thể xem xét hỗ trợ chúng tôi trên Patreon

Chủ Đề