Người Viết : ViKiMi Editor

Mệnh đề ORDER BY giúp truy vấn dữ liệu theo thứ tăng hoặc giảm dần, hiệu quả cho Website
Lập trình Website với WordPress tương đối dễ dàng, đặc biệt khi bạn đã làm quen với một CSM mạnh mẽ như WordPress. WordPress cho phép tạo ra một Website cựu kỳ tốt dù là một Website cơ bản cho đến Website thương mại điện tử. Với WordPress chúng ta cần phải quan tâm đến cách truy vấn để có một lượng thông tin tốt nhất tới khách hàng.
ORDER BY là một trong những mệnh đề truy vấn dữ liệu mà chúng ta cần phải nắm bắt. Theo những hoàn cảnh khác nhau mà nó có khả năng làm việc hiệu quả khác nhau.
+ Mệnh đề ORDER BY sẽ như thế nào ?
WordPress cung cấp cách truy vấn dữ liệu rất tốt, khả năng truy vấn dữ liệu thực sự nhanh. Nếu có bất kỳ thắc mắc rằng WordPress có cung cấp các tính năng truy vấn như những lệnh truy vấn cơ sở dữ liệu của MySQL hay không?
Rõ ràng là có và Lập trình viên có thể sử dụng nó một cách linh hoạt.
+ Chúng ta sẽ xem xét cách sử dụng mệnh đề Order By trong WordPress
+ Mệnh đề Order By được sử dụng trong WordPress với nhiều cách thức thể hiện khác nhau. Và mệnh đề này có thể kết hợp với nhiều mệnh đề khác để có kết quả cao nhất.
+ Mệnh đề Order By khi sử dụng với WordPress sẽ rất tương đồng như bạn làm việc với MySQL. Do vậy, bạn có thể dễ dàng sử dụng nó nếu như bạn đã quen với làm việc trên CƠ SỞ DỮ LIỆU MySQL.
CHÚNG TA SẼ TÌM HIỀU MỆNH ĐỀ ORDER BY TRONG WORDPRESS
+ Mệnh đề ORDER BY được sử dụng để sắp xếp tập kết quả theo thứ tự tăng dần hoặc giảm dần. ORDER BY cho phép kết quả truy vấn được sắp xếp theo thứ tự hợp lý hơn. Truy vấn Cơ sở dữ liệu với ORDER BY kết hợp với các mệnh đề truy vấn khác cho một kết quả trả về đúng ý đồ.
+ Mặc đinh mệnh đề ORDER BY cho phép kết quả truy vấn về sắp xếp các bản ghi theo tứ tự tăng dần.
Để sắp xếp các bản ghi theo thứ tự giảm dần chúng ta sẽ sử dụng từ khoá DESC.
Mệnh đề ORDER BY trong ngôn ngữ MySQL :
SELECT column1, column2, …
FROM table_name
ORDER BY column1, column2, … ASC|DESC;
Vậy Mệnh đề ORDER BY sẽ được sử dụng như thế nào trong WordPress?
Thật đơn giản, chúng ta chỉ cần qua 2 bước :
Bước 1 : Thiết lập mệnh đề ORDER BY tại file Function.php của chủ đề (Hoặc chủ đề con) mà bạn đang dùng.
Tạo một Function có chứa Mệnh đề ORDER BY :
function extend_wp_query_orderby( $query ) {
$query .= ‘, wp_posts.post_name ASC’;
return $query;
}
Bước 2 : Sử dụng mệnh đề ORDER BY tại bất kỳ vị trí nào bạn muốn
Chẳng hạn sử dụng mệnh đề ORDER BY tại category.php
<?php
$arr_poster = array(122, 233, 531);
add_filter( ‘posts_where’, ‘extend_wp_query_where’, 10, 2 );
add_filter( ‘posts_orderby’, ‘extend_wp_query_orderby’ );
wp_reset_query();
$wp_query = new WP_Query( array(‘post_type’ => ‘post’, ‘post_status’ => ‘publish’,
‘nopaging’ => true,
‘extend_where’ => “(id NOT IN (“. join(“,”, $arr_poster ) .”))”,
‘tax_query’ => array(
‘relation’ => ‘AND’,
array(
‘taxonomy’ => ‘category’,
‘field’ => ‘slug’,
‘terms’ => ‘chua-phan-loai’,
‘operator’ => ‘IN’,
)
)));
if($wp_query->have_posts()):
?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<h5><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h5>
<?php endwhile;
remove_filter( ‘posts_where’, ‘extend_wp_query_where’, 10, 2 );
remove_filter( ‘posts_orderby’, ‘extend_wp_query_orderby’ );
endif;
Khi bạn muốn sử dụng mệnh đề ORDER BY tại bất kỳ vị trí nào, hãy chú ý phải có 2 xử lý sau đây :
add_filter( ‘posts_orderby’, ‘extend_wp_query_orderby’ );
remove_filter( ‘posts_orderby’, ‘extend_wp_query_orderby’ );
+ Thêm và xoá mệnh đề ORDER BY khi sử dụng
+ Tạo mệnh đề ORDER BY tại Function.php
Khi sử dụng mệnh đề ORDER BY cho phép bạn tạo những truy vấn có dữ liệu trả về sắp xếp theo thứ tự tăng dần hay giảm dần, Sử dụng mệnh đề ORDER BY trong WordPress giúp hệ thống hoạt động tốt hơn, Nếu sử dụng ORDER BY kết hợp GROUP BY càng tạo nên câu lệnh truy vấn mạnh mẽ hơn. Thật tốt khi bạn sử dụng hữu hiệu mệnh đề ORDER BY, điều này khiến cho Website có thể tối ưu hẳn về tốc độ và hiệu suất cao hơn.
Với WordPress bạn có thể tạo nhiều thao tác Cơ sở dữ liệu hoàn toàn tương tự MySQL và hiệu quả đem lại là điều hoàn toàn hài lòng.