Làm cách nào để chạy truy vấn trong WordPress?

Là nhà phát triển WordPress, chúng tôi thường cần truy xuất các bài đăng, trang và nội dung khác phù hợp với tiêu chí cụ thể từ cơ sở dữ liệu WordPress. Thông thường, chúng ta không cần xây dựng các truy vấn SQL (và thường thì chúng ta không nên) vì lớp

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
0 và các phương thức của nó cung cấp cho chúng ta một cách an toàn và hiệu quả để truy xuất dữ liệu từ cơ sở dữ liệu. Chúng ta chỉ cần khai báo một mảng các đối số và đối tượng
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
1 sẽ xây dựng truy vấn SQL thực tế

Trong bài đăng này, tôi giả định rằng bạn đã biết những kiến ​​thức cơ bản về lớp

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
0, các phương thức và thuộc tính của nó cũng như nơi tìm danh sách các biến có sẵn

Tôi sẽ tập trung vào các tham số do lớp

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
0 cung cấp cụ thể để tối ưu hóa các truy vấn SQL, giảm thời gian thực hiện và mức tiêu thụ tài nguyên

Khi lưu lượng truy cập và nội dung bị hạn chế, chúng tôi thường không quan tâm đến hiệu quả của các truy vấn của mình. WordPress xây dựng các truy vấn SQL được tối ưu hóa tốt và cung cấp một hệ thống bộ nhớ đệm vượt trội

Khi lưu lượng truy cập và nội dung trang web tăng lên đáng kể – lên đến hàng nghìn bài đăng – thì chúng ta phải xem xét thời gian thực hiện truy vấn

Hộp công cụ của chúng tôi

Đoạn mã mà tôi sắp cho bạn xem đã được thử nghiệm với Query Monitor, một plugin miễn phí cung cấp thông tin cần thiết về hiệu suất truy vấn, hook được kích hoạt, yêu cầu HTTP, quy tắc viết lại, v.v.

Ngoài ra, đối với một plugin, chúng ta có thể buộc WordPress lưu trữ thông tin truy vấn khai báo hằng số sau trong wp-config. php

define( 'SAVEQUERIES', true );

Khi

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
4 được đặt thành
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
5, WordPress đăng ký các truy vấn và một loạt thông tin hữu ích trong mảng
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
6. Vì vậy, tên của các hàm gọi và thời gian thực thi của mỗi truy vấn có thể được in ra bằng cách thêm đoạn mã sau vào một tệp mẫu như footer. php

Cần phải hét lên ở đây. Kinsta thật tuyệt vời, tôi sử dụng nó cho trang web cá nhân của mình. Hỗ trợ nhanh chóng và xuất sắc, và máy chủ của họ là nhanh nhất cho WordPress

Làm cách nào để chạy truy vấn trong WordPress?
Phillip Stemann
Xem kế hoạch

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }

Đây là một ví dụ về những gì được lặp lại

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)

Nếu bạn muốn đi sâu vào chủ đề này, hãy xem hướng dẫn của chúng tôi. Chỉnh sửa wp-config. php
Cuối cùng, hãy cân nhắc rằng cả plugin và chức năng

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
4 tích hợp đều đang phát triển các công cụ mà chúng ta nên tắt trong môi trường sản xuất

Như đã nói, chúng ta hãy xem cách tăng tốc các truy vấn WordPress

WP_Query – Tại sao chúng tôi không đếm hàng

Chúng ta có thể truy vấn cơ sở dữ liệu bằng hàm

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
8, hàm này trả về một mảng các bài đăng hoặc một thể hiện mới của đối tượng
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
0. Trong cả hai trường hợp, chúng tôi có thể xác định kết quả của các truy vấn bằng cách đặt các giá trị thích hợp cho các biến cụ thể

Hãy bắt đầu với một ví dụ hiển thị Vòng lặp phổ biến vì nó thường xuất hiện trong tệp mẫu

// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		// Your code here
	endwhile;
} else {
		// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
0 là một mảng các cặp khóa/giá trị. Các cặp này được đặt tên là vars truy vấn và xác định hoặc ảnh hưởng đến truy vấn SQL thực tế
Khi truy vấn cơ sở dữ liệu từ plugin, chúng tôi có thể ưu tiên sử dụng bộ lọc
[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
1, như minh họa trong ví dụ sau

function myplugin_pre_get_posts( $query ) {
  if ( is_admin() || ! $query->is_main_query() ){
	return;
  }
  $query->set( 'category_name', 'webdev' );
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );

Một điều quan trọng cần lưu ý ở đây là đối tượng

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
1 được truyền theo tham chiếu, không phải theo giá trị, nghĩa là các đối số truy vấn chỉ ảnh hưởng đến một thể hiện
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
1 hiện có

Phương thức

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
4 thêm một truy vấn var mới vào đặc tả truy vấn và sẽ buộc WordPress truy xuất tất cả các bài đăng từ danh mục
[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
5. Đây là truy vấn kết quả

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts 
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id)
WHERE 1=1 
AND ( wp_term_relationships.term_taxonomy_id IN (12) )
AND wp_posts.post_type = 'post'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0, 10

Trong ví dụ này, giá trị

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
6 đã được người dùng quản trị đặt trong tùy chọn Đọc, như trong hình bên dưới

Triển khai ứng dụng của bạn lên Kinsta - Bắt đầu với Khoản tín dụng $20 ngay bây giờ

Chạy nút của bạn. js, Python, Go, PHP, Ruby, Java và Scala, (hoặc hầu hết mọi ứng dụng khác nếu bạn sử dụng Dockerfiles tùy chỉnh của riêng mình), trong ba bước đơn giản

Triển khai ngay bây giờ và nhận $20 giảm giá

Làm cách nào để chạy truy vấn trong WordPress?

Trong các truy vấn tùy chỉnh, chúng tôi có thể đặt số lượng hàng sẽ được truy xuất từ ​​​​cơ sở dữ liệu nhờ vào

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
7

Tùy chọn

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
8 buộc truy vấn đếm số lượng hàng được tìm thấy. Số này sẽ được trả về bởi hàm SQL
[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
9, như minh họa trong ví dụ sau

SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;

SELECT FOUND_ROWS();

Thật không may,

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
8 có thể làm chậm đáng kể thời gian thực hiện truy vấn
Tin vui là chúng ta có thể buộc WordPress xóa tùy chọn cung cấp biến
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		// Your code here
	endwhile;
} else {
		// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
1 ít được sử dụng (và không được ghi lại)

Nếu

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
8 bị bỏ qua,
[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
9 trả về số lượng hàng lên đến giá trị của
[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
6 (thêm về chủ đề này trên)

Trong một bản cài đặt WordPress có vài trăm bài đăng, truy vấn meta sau chiếm 0. 0107 giây

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID
FROM wp_posts 
INNER JOIN wp_postmeta
ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE 1=1 
AND ( ( wp_postmeta.meta_key = 'book_author'
AND CAST(wp_postmeta.meta_value AS CHAR) LIKE '%Isaac Asimov%' ) )
AND wp_posts.post_type = 'book'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0, 10

Loại bỏ cài đặt

[4] => Array
(
	[0] => SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  WHERE 1=1  AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')  ORDER BY wp_posts.post_date DESC LIMIT 0, 10
	[1] => 0.0163011550903
	[2] => require('wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts, QM_DB->query
	[trace] => QM_Backtrace Object
		( .. )
	[result] => 10
)
8
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		// Your code here
	endwhile;
} else {
		// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
1 thành false, truy vấn tương tự lấy 0. 0006 giây

Đấu tranh với thời gian chết và các vấn đề về WordPress? . Kiểm tra các tính năng của chúng tôi

Làm cách nào để chạy truy vấn trong WordPress?
Nhờ plugin Query Monitor, chúng ta có thể dễ dàng so sánh hai truy vấn có và không có tùy chọn SQL_CALC_FOUND_ROWS

Khi bảng

// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		// Your code here
	endwhile;
} else {
		// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
7 chứa hàng nghìn hàng, việc thực hiện truy vấn có thể mất vài giây
Khi chúng ta không cần phân trang, chúng ta nên đặt
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
	while ( $the_query->have_posts() ) : $the_query->the_post(); 
		// Your code here
	endwhile;
} else {
		// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
1 thành
if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
5, làm cho truy vấn chạy nhanh hơn đáng kể

Lưu vào bộ đệm hoặc không lưu vào bộ đệm

WordPress cung cấp một hệ thống bộ nhớ đệm tích hợp sẵn. Mặc dù bộ nhớ đệm thường cải thiện tốc độ tải trang, nhưng nó có thể khiến một số truy vấn bổ sung được chạy đối với cơ sở dữ liệu. Ngoài ra, bất cứ khi nào một truy vấn được thực thi, một loạt dữ liệu không cần thiết có thể được yêu cầu

May mắn thay, WordPress cho phép chúng tôi vô hiệu hóa bộ nhớ đệm cung cấp ba

  • cache_results. Có lưu trữ thông tin bài đăng hay không. Mặc định đúng
  • update_post_meta_cache. Có nên cập nhật bộ đệm meta bài đăng hay không. Mặc định đúng
  • update_post_term_cache. Có nên cập nhật bộ nhớ đệm sau hạn không. Mặc định đúng

Nếu một hệ thống bộ nhớ đệm liên tục được bật, chẳng hạn như Memcached, chúng tôi không phải quan tâm đến các tham số bộ nhớ đệm vì WordPress sẽ đặt thành false các đối số này theo mặc định

Trong bất kỳ tình huống nào khác, chúng ta có thể tạo truy vấn nhanh hơn bằng đoạn mã sau

function myplugin_pre_get_posts( $query ) {
  if ( is_admin() || ! $query->is_main_query() ){
	return;
  }
  $query->set( 'category_name', 'webdev' );

  $query->set( 'no_found_rows', true );
  $query->set( 'update_post_meta_cache', false );
  $query->set( 'update_post_term_cache', false );
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );

Khi không có hệ thống bộ nhớ đệm cố định, các truy vấn trả về lượng dữ liệu nhỏ sẽ không được lưu vào bộ nhớ đệm

Trường trả về

Theo nguyên tắc chung, chúng ta không bao giờ nên truy vấn cơ sở dữ liệu cho các trường không cần thiết. Lớp

if ( current_user_can( 'administrator' ) ) {
	global $wpdb;
	echo '
';
	print_r( $wpdb->queries );
	echo '
'; }
0 cung cấp đối số trường, cho phép giới hạn các trường được trả về ở các trường ID hoặc
function myplugin_pre_get_posts( $query ) {
  if ( is_admin() || ! $query->is_main_query() ){
	return;
  }
  $query->set( 'category_name', 'webdev' );
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );
1. Tệp nguồn xác định đối số trường như sau

Trường nào cần trả lại. Một trường hoặc tất cả các trường (chuỗi) hoặc mảng các trường. 'id=>parent' sử dụng 'id' và 'post_parent'. Mặc định tất cả các lĩnh vực. Chấp nhận 'ids', 'id=>parent'

Biến trường thừa nhận

function myplugin_pre_get_posts( $query ) {
  if ( is_admin() || ! $query->is_main_query() ){
	return;
  }
  $query->set( 'category_name', 'webdev' );
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );
2 và
function myplugin_pre_get_posts( $query ) {
  if ( is_admin() || ! $query->is_main_query() ){
	return;
  }
  $query->set( 'category_name', 'webdev' );
}
add_action( 'pre_get_posts', 'myplugin_pre_get_posts', 1 );
1 và mặc định là * (bất kỳ giá trị nào khác), mặc dù bạn sẽ nhận thấy rằng theo mặc định, WordPress sẽ đặt giá trị thành id trong một số truy vấn
Cuối cùng, chúng ta có thể tối ưu hóa truy vấn đầu tiên của mình

 true, 
	'update_post_meta_cache' => false, 
	'update_post_term_cache' => false, 
	'category_name' => 'cms', 
	'fields' => 'ids'
);
// The Query
$the_query = new WP_Query( $args );
$my_posts = $the_query->get_posts();

if( ! empty( $my_posts ) ){
    foreach ( $my_posts as $p ){
        // Your code
    }
}
/* Restore original Post Data */
wp_reset_postdata();
?>

Khi các trường cụ thể không bắt buộc, hãy giới hạn các trường được trả về thành ID

Bản tóm tắt

Xem xét tốc độ truy vấn có thể không mang lại lợi thế lớn cho các trang web nhỏ với vài trăm bài đăng. Nếu bạn muốn sẵn sàng cho sự phát triển hoặc bạn đang điều hành một trang web lớn với các truy vấn đắt tiền, bạn nên tối ưu hóa các truy vấn WordPress của mình. Các truy vấn không hiệu quả có thể làm chậm quá trình tải trang nhưng với một vài điều chỉnh đơn giản, bạn có thể tăng tốc trang web của mình một cách đáng kể


Nhận tất cả các ứng dụng, cơ sở dữ liệu và trang web WordPress của bạn trực tuyến và dưới một mái nhà. Nền tảng đám mây hiệu suất cao, đầy đủ tính năng của chúng tôi bao gồm

  • Dễ dàng thiết lập và quản lý trong bảng điều khiển MyKinsta
  • Hỗ trợ chuyên gia 24/7
  • Mạng và phần cứng Google Cloud Platform tốt nhất, được cung cấp bởi Kubernetes để có khả năng mở rộng tối đa
  • Tích hợp Cloudflare cấp doanh nghiệp cho tốc độ và bảo mật
  • Tiếp cận đối tượng toàn cầu với tối đa 35 trung tâm dữ liệu và hơn 275 PoP trên toàn thế giới

Hãy tự kiểm tra với $20 trong tháng đầu tiên của Lưu trữ ứng dụng hoặc Lưu trữ cơ sở dữ liệu. Khám phá kế hoạch của chúng tôi hoặc nói chuyện với bộ phận bán hàng để tìm thấy sự phù hợp nhất của bạn

Truy vấn chính trong WordPress là gì?

Hàm is_main_query() là hàm điều kiện có thể được sử dụng để đánh giá xem truy vấn hiện tại (chẳng hạn như trong vòng lặp) có phải là truy vấn “chính” hay không (as opposed to a secondary query).

Làm cách nào để tạo SQL trong WordPress?

Sử dụng cPanel .
Đăng nhập vào cPanel của bạn
Nhấp vào biểu tượng Trình hướng dẫn cơ sở dữ liệu MySQL trong phần Cơ sở dữ liệu
Ở Bước 1. Tạo cơ sở dữ liệu nhập tên cơ sở dữ liệu và nhấp vào Bước tiếp theo
Ở Bước 2. Tạo cơ sở dữ liệu Người dùng nhập tên người dùng cơ sở dữ liệu và mật khẩu. .
Ở Bước 3. .
Ở Bước 4