Cách đặt Thanh bên chính tùy chỉnh cho tất cả các Trang bằng cách sử dụng Mẫu trang

Trong phần nhận xét của Cách thiết lập các thanh bên khác nhau cho các kho lưu trữ và Trang trong Genesis, một người dùng đã hỏi:

Làm thế nào về việc kích hoạt thanh bên cho một trang cụ thể dựa trên một mẫu? Có quá muộn trong quá trình xây dựng để kích hoạt thanh bên trong chính mẫu không?

Chúng ta có thể đăng ký một vùng widget tùy chỉnh trong functions.php và nối một hàm vào genesis_after_header bên trong Mẫu trang tùy chỉnh để thay thế Thanh bên chính mặc định bằng vùng tiện ích tùy chỉnh của chúng ta trong vị trí Thanh bên chính.

Ví dụ, trước tiên hãy đăng ký một vùng widget tùy chỉnh có tên là “Services Sidebar” bằng cách thêm phần sau vào functions.php :

// Register services-sidebar widget area
genesis_register_widget_area(
	array(
		'id'          => 'services-sidebar',
		'name'        => __( 'Services Sidebar', 'my-theme-text-domain' ),
		'description' => __( 'Replaces the Primary Sidebar on Pages that use Services Page Template', 'my-theme-text-domain' ),
	)
);

Bước tiếp theo là tạo Mẫu Trang Dịch vụ. Tạo một tệp có tên say, template_services.php có mã sau:

/*
Template Name: Services
*/

add_action( 'genesis_after_header', 'sk_change_genesis_primary_sidebar' );
/**
 * Show Services sidebar in Primary Sidebar location
 */
function sk_change_genesis_primary_sidebar() {

	// remove Primary Sidebar from the Primary Sidebar area
	remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );

	// show Services Sidebar in Primary Sidebar area
	add_action( 'genesis_sidebar', function() {
		dynamic_sidebar( 'services-sidebar' );
	} );

}

genesis();

Đó là nó. Bất kỳ Trang nào được áp dụng Mẫu dịch vụ sẽ tự động hiển thị các tiện ích con bên trong khu vực tiện ích Dịch vụ thay vì các tiện ích con trong Thanh bên chính.