Posted on March 13th, 2009 in WP Tips-Tricks | 10,326 views

Vừa rồi tôi đã hướng dẫn bạn cách đếm số comment, còn bây giờ tôi sẽ hướng dẫn đến cách đếm số post và page. Tương tự như comment nhưng post và page lại nằm ở table 'wp_posts' và có kèm theo vài điều kiện khác.

Đoạn code dưới đây sẽ đếm số post:

1
2
3
4
5
6
<?php
global $wpdb;
$num_posts = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_type = 'post' AND post_status = 'publish' AND post_password = ''");
if ($num_posts > 0) $num_posts = number_format($num_posts);
echo 'Có tổng cộng ' . $num_posts . ' bài viết trên blog của tôi';
?>

Các điều kiện đã dùng trong câu SQL trên là:

  • post_type = 'post'
  • post_status = 'publish'
  • post_password = ''

Để đếm số page, bạn chỉ việc thay 'post' thành 'page' ở chỗ post_type, còn nếu bạn muốn đếm luôn cả bài viết có đặt password thì bạn chỉ cần xóa đi điều kiện post_password = '' là xong. :D

Mặc dù hiện nay có khá nhiều plugin có chức năng tạo bảng thống kê trên blog của bạn nhưng nếu bạn chỉ đơn thuần muốn đếm số lượng post/page và comment thì tại sao bạn không tự tạo một bảng thống kê nho nhỏ cho riêng mình chỉ với vài dòng code đơn giản? Những blog chia sẻ software hay ebook mà đặt đoạn code trên ở sidebar thì tuyệt vời. >:d<

Posted on March 12th, 2009 in WP Tips-Tricks | 12,738 views

This article will guide you how to display the number of comments on your blog (of course those are approved comments) by a simple php code below.

1
2
3
4
5
6
<?php
global $wpdb;
$num_comments = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = '1'");
if ($num_comments > 0) $num_comments = number_format($num_comments);
echo "There are " . $num_comments . " comments on my blog";
?>

Paste the code to places you like in your theme's php files. And this is a live demo :D

There are 1,284 comments on my blog

In the next article, I will guide you how to count the number of posts/pages on your blog. Remember to read! :)

Posted on March 4th, 2009 in WP Tutorial | 16,525 views

Là người dùng WordPress, có bao giờ bạn nghe nói đến tính năng Revision (có từ WordPress 2.6) chưa? Có thể bạn đã nghe qua ở đâu đó nhưng chưa thật sự hiểu rõ hoặc bạn không muốn tìm hiểu thì tôi khuyên bạn nên đọc bài viết này để hiểu rõ hơn bởi nó có ảnh hưởng đến database của blog mà bạn đang chạy.

Bản thân tôi trước đây cũng không quan tâm đến chuyện này, bởi dù có quan tâm hay không thì blog của mình vẫn chạy bình thường, đâu có bị trục trặc gì mà phải vọc phá chi cho tốn thời gian. :mrgreen:

Nhưng tình cờ một hôm tôi vào phpMyAdmin để backup database cho blog thì tôi phát hiện ra rằng: có rất nhiều bài viết cùng 'post_title', 'post_content', 'post_author' nhưng lại khác 'ID', 'post_date' và 'post_type' trong table 'wp_posts'. Chỉ cần dùng một câu lệnh SQL đơn giản dưới đây là bạn sẽ thấy được ngay: (nhớ thay chữ 'Hello World!' bằng tên một bài viết nào đó trên blog của bạn)

1
2
3
SELECT ID, post_title, post_author, post_content, post_date, post_type
FROM wp_posts
WHERE post_title = 'Hello World!'

sql
Xem qua một loạt các bài viết như vậy, tôi mới nhận thấy rằng: trong số những bài trùng lặp ấy, chỉ có một bài duy nhất có 'post_type' là 'post' (hoặc 'page' nếu đó là trang) là bài viết đang được publish, còn lại là attachment và revision <= cái mà chúng ta đang nói đến.

Vậy revision là gì và tại sao WordPress lại tạo ra chúng? Câu trả lời sẽ được giải đáp ở trang 2 của bài viết này.

Pages: 1 2 3 4

Posted on December 23rd, 2008 in WP Tips-Tricks | 9,064 views

If you want to display how many SQL queries have been made to your database as I’ve done on this blog like this:

45 queries in 0.548 seconds

Just open the footer.php in your theme folder and paste the following code at anywhere you like:

1
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds

Another code for displaying that but except regular visitors and search engine bots, we will use a conditional function to do that:

1
2
3
<?php if (is_user_logged_in()) { ?>
<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.
<?php } ?>

The get_num_queries() function returns the number of executed query during your page loading.

Thanks to Jean-Baptiste Jung for this useful tip.