22/05/2024

Sửa Elementor Query cho danh mục bài viết

5/5 - (1 bình chọn)

Khi sử dụng Elementor để tạo giao diện danh mục bài viết, bạn có thể muốn tạo ra nhiều block khác nhau để thể hiện nội dung.

Vấn đề gặp phải

Khi sử dụng công cụ soạn thảo Elementor để tạo giao diện danh mục bài viết, bạn có thể muốn tạo ra nhiều block khác nhau để thể hiện nội dung. Elementor cho phép tạo ra query theo Posts hoặc Term

Tuy nhiên, trên UI mặc định của page builder này, bạn không tìm thấy chỗ để xác định ID của danh mục bài viết hiện tại. Bài viết này sẽ hướng dẫn cách bạn xử lý query trên.

Cách xử lý

Bước 1: Bạn xác định trong mục Query theo logic: lấy bài viết, và nhập Query ID là category_archive như trong hình.

Set Query ID cho Elementor Query
Set Query ID cho Elementor Query

Nếu bạn sử dụng custom query dạng chọn Posts theo Term thì như hình sau (có thể chọn số lượng bài viết nhiều ít phù hợp layout hơn cái ở trên).

Elementor Custom Query

Bước 2: Trong file functions.php của giao diện, bạn thêm đoạn code sau:

/**
 * Change 'category_archive' query to get same category only
 * 
 * @package jobwp
 * @author codetot
 * @since 0.0.1
 * @ref http://jobwp.net/elementor-query-category-custom
 **/ 
add_action( 'elementor/query/category_archive', function( $query ) {
	if ( ! is_category() ) return;
	$current_term_id = get_queried_object_id();
	$tax = get_the_terms( $id, 'category');

	$tax_query = array(
		array(
			'taxonomy' => 'category',
			'field' => 'slug',
			'terms' => $tax[0]->slug,
		),
	);

	$query->set( 'tax_query', $tax_query );
} );

Nếu bạn không thể lấy ra được các bài viết trong danh mục bài viết,hãy kiểm tra một lần nữa:

  • Bạn có đang ở danh mục bài viết không?
  • Bạn có đang sửa đúng template Category Archive tạo ra từ Elementor không?