Sửa Elementor Query cho danh mục bài viết
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.
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).
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?