Người Viết : ViKiMi Editor

WordPress cho phép sử dụng mệnh đề Where đề truy vấn dữ liệu thông qua các Hooks
Khi sử dụng WordPress, chúng ta có rất nhiều cách truy vấn dữ liệu. Việc sử dụng mệnh đề Where đem lại hiệu quả cao. Chúng ta có thể tạo ra nhiều câu lệnh rõ ràng hơn với mệnh đề Where để truy vấn dữ liệu. Có thể nói hiệu quả khi sử dụng mệnh đề Where để truy vấn dữ liệu sẽ phát huy cao trong việc lập trình Website.
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 đề Where trong WordPress
+ Mệnh đề Where được sử dụng trong WordPress với nhiều cách thức thể hiện khác nhau. Hiệu quả mang lại tuỳ thuộc mục đích sử dụng khi lập trình.
+ Những cách sử dụng khác nhau cho mệnh đề Where sẽ đem lại hiệu quả khác nhau. Và hiệu quả theo các trương hợp khác nhau cũng khác nhau,. Do đó, chúng ta sẽ có nhiều cách vận dụng hơn.
CHÚNG TA SẼ TÌM HIỀU MỆNH ĐỀ WHERE TRONG WORDPRESS
+ Mệnh đề Where cho phép chúng ta truy vấn các bản ghi với điều kiện đặt ra. Mệnh đề Where giúp chúng ta có các bản ghi đúng theo điều kiện trích xuất dữ liệu.
+ Mệnh đề Where được sử dụng hầu hết các truy xuất dữ liệu có điều kiện, trong mọi ngôn ngữ lập trình Cơ sở dữ liệu. Mệnh đề Where giúp các truy vấn mạnh hơn để trả về các bản ghi có điều kiện. Nhờ các truy vấn có điều kiện mà tốc độ truy vấn cũng nhanh hơn.
Mệnh đề Where trong ngôn ngữ MySQL :
SELECT column1, column2, …
FROM table_name
WHERE condition;
Vậy Mệnh đề WHERE 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 đề WHERE 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 đề WHERE :
function extend_wp_query_where( $where, $wp_query ) {
if ( $extend_where = $wp_query->get( ‘extend_where’ ) ) {
$where .= ” AND ” . $extend_where;
}
return $where;
}
Bước 2 : Sử dụng mệnh đề WHERE tại bất kỳ vị trí nào bạn muốn
Chẳng hạn sử dụng mệnh đề WHERE tại category.php
<?php
$arr_poster = array(122, 233, 531);
add_filter( ‘posts_where’, ‘extend_wp_query_where’, 10, 2 );
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 );
endif;
Khi bạn muốn sử dụng mệnh đề WHERE tại bất kỳ vị trí nào, hãy chú ý phải có 3 xử lý sau đây :
$arr_poster = array(122, 233, 531);
add_filter( ‘posts_where’, ‘extend_wp_query_where’, 10, 2 );
‘extend_where’ => “(id NOT IN (“. join(“,”, $arr_poster ) .”))”,
remove_filter( ‘posts_where’, ‘extend_wp_query_where’, 10, 2 );
+ Thêm và xoá mệnh đề WHERE khi sử dụng
+ Khai báo thêm tham số ‘extend_where’ trong mảng tham số truy vấn
Khi sử dụng mệnh đề WHERE cho phép bạn tạo những truy vấn cao hơn khi sử dụng WordPress, nó đem lại một khả năng truy vấn tốt hơn + TỐC ĐỘ truy vấn cao hơn + Yêu cầu điều kiện khác nhau cho các bản ghi trả về. Thật tốt khi bạn sử dụng mệnh đề WHERE, đ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.