• Skip to main content

MrHói's Blog

The simple is the best

Khắc phục tình trạng không hiển thị phân trang trên WordPress với Hostgator

August 26, 2011 by mrhoi 3 Comments

Nếu bạn là người đã sử dụng wordpress trên hostgator, cũng ngịch ngầm và chỉnh sửa các thông số của PHP, thì rất có thể sẽ gặp tình trạng giống như tôi. Một ngày đẹp trời hệ thống vẫn chạy bình thường nhưng không thể tìm thấy các trang tiếp theo để click. Nguyên nhân ở đâu?

Sau một buổi tối ngồi hỳ hục tìm hiểu chỉnh sửa, tôi đã hiển thị được số trang cần theo một cách nông dân là debug từng dòng lệnh. Nhưng để rồi có một kiến thức mới hay ho không kém. Cái tội là WordPress sử dụng hàm FOUND_ROWS() để tính số lượng bản ghi nếu không có giới hạn LIMIT. Nhược điểm chính của việc này là dòng lệnh trên phải được xử lý ngay sau khi câu SELECT được thực hiện.

Tại sao hệ thống lại chạy không chỉnh xác khi tôi thay đổi config của PHP, lý do là tôi muốn kiểm tra hệ thống sẽ hoạt động ra sao khi vận hành, việc cần biết đó là nó truy vấn tới database ra sao. Tôi đã chỉnh sửa một số thiết lập của PHP trong đó có mysql.allow_persistent, điều này đã làm cho câu lệnh FOUND_ROWS() luôn trả về giá trị là 1, vì đơn giản sau khi thực hiện lệnh hệ thông sẽ truy vấn thêm log của MySQL ghi ra log file, tất nhiên những truy vấn này đều có 1 kết quả trả về.

Tiếp đó hệ thống của WordPress luôn tín sai và duy nhất chỉ có một trang. Cả buổi tối ngày hôm đó tôi loay hoay và cũng chỉnh sửa được bằng cách viết 1 hàm hook vào wordpress để thay đổi cách thức tính số trang, không sử dụng FOUND_ROWS() nữa. Các bạn gặp trường hợp trên tạm thời muốn chạy có thể sử dụng hàm này:

add_filter(‘found_posts_query’, ‘wpspider_fix_max_num_pages’);

function wpspider_fix_max_num_pages ($query) {

global $wp_query;

if ($query == ” || $query != ‘SELECT FOUND_ROWS()’) return $query;

$query = $wp_query->request;

$query = preg_replace(‘/SELECT\s.+\sFROM/’, ‘SELECT 1 as id FROM’, $query);

$query = preg_replace(‘/LIMIT\s.+$/’, ”, $query);

$query = preg_replace(‘/ORDER\s+BY\s.+$/’, ”, $query);

$query = sprintf(‘SELECT SUM(id) FROM (%1$s) as `count` ‘, $query);

return $query;

}

Hơi ngu ngốc một chút vì thỉnh thoảng hệ thống có phun ra một số log error query vì câu lệnh SQL không chính xác, nhưng sẽ là tạm đủ khi bạn vừa muốn debug hệ thống vừa muốn hệ thống hoạt động bình thường.

Filed Under: Hệ thống, Lập trình, Wordpress Tagged With: 'found_posts_query', 'SELECT 1 as id FROM', 'wpspider_fix_max_num_pages', FOUND, FROM, Hostgator Nếu, LIMIT, ORDER, ROWS, SELECT, SELECT FOUND, SELECT FOUND_ROWS, SELECT SUM, wordpress

Hãy trở thành nhà tiếp thị tài năng

August 12, 2011 by mrhoi Leave a Comment

Bắt đầu trên bước đường chinh phục tương lai, tôi chọn cho mình một con đường u ám. Đơn giản bởi vì nó thực sự là điều hứng thú nhất của tôi trong thời điểm hiện tại. Tôi đã trở lại cái cảm giác háo hức khi gặp được những người bạn cùng sở thích, và có đam mê như mình. Có lẽ cản trở duy nhất đổi với tôi bây giờ chỉ là cơn buồn ngủ.

Trong những ngày đầu tiên tôi đã học được một vài điều:

  1. Thị trường
  2. Lời chào hàng
  3. Lưu lượng
  4. Hậu kỳ / hậu mãi
  5. Nhân bản

Với những gì tôi cần đó là phải chỉ cho khách hàng nhận thấy lợi ích của dịch vụ tôi cung cấp, cái này hơi khó phải tốn nhiều công sức suy nghĩ, phải đặt mình vào vị trí của khách hàng, luôn coi sản phẩm là một giải pháp, không phải để khác hàng mua mà để phục vụ khách hàng có cuộc sống tốt hơn.

Nhận ra thêm một điều tôi đang bỏ lỡ đó là danh sách những người đăng ký nhận bản tin hằng ngày của mình, đây chính là những người quan tâm đến dịch vụ tôi cung cấp, là những khách hàng cần chăm sóc nhiều nhất.

Các công cụ cần thiết cho một nhà tiếp thị trên internet:

  1. Website với tên miền riêng
  2. Chương trình quản lý đăng ký thư tự động
  3. Chương trình theo dõi liên kết
  4. Chương trình che dấu liên kết

Filed Under: Uncategorized Tagged With: chương trình

Protected: Sự đổi thay, liệu có nên không?

August 12, 2011 by mrhoi Leave a Comment

This content is password-protected. To view it, please enter the password below.

Filed Under: Cá nhân Tagged With: mọi thứ đã thay đổi, thay đổi

Sức mạnh của thời gian

July 17, 2011 by mrhoi Leave a Comment

Tự nhiên cảm thấy mệt mỏi, nhưng chẳng có gì làm mình thấy hoảng sợ cả, cảm giác mọi việc xảy ra đều có lý do của nó.

Thời gian có thể giúp Ngỗng lớn lên, đáng yêu hơn.

Thời gian có thể giúp mình cảm thấy mình đã khác.

Thời gian giúp mình tận hưởng những điều thú vị của cuộc sống, ví dụ như xem “How to train your dragon”, tự dưng bị những câu thoại đơn giản làm mình lạnh xương sống “I’m proud to call you my son”, có lẽ không điều gì khiến cha mẹ tự hào về con cái hơn khi nói câu này.

Thời gian làm cho mình nhận ra cuộc sống này đầy những niềm vui, và cũng không ít sự hụt hẫng.

Nhớ cuối những năm 198x, mình và một cơ số bạn nhỏ đã tin vào ngày tận thế năm 2000, lúc đó mình nghĩ rằng ôi, đến ngày đó mình mới 19 tuổi và chưa kịp làm gì cho cuộc sống của mình cả. Điều này làm mình càng tin cái ngày cuối năm 2012 đúng là vớ vẩn. Có chăng nó chỉ giúp mình nhận thấy rằng nên chân trọng cuộc sống này hơn.

Hôm nay xem trailer Harry Porter phần 7 tập 2, mợi nhận ra rằng đã gần 10 năm rồi kể từ ngày mình cầm trên tay cuốn chuyện “nhiều chữ” đầu tiên mình nghiêm túc và bị cuốn hút bởi câu chuyện như vậy. Đây cũng là năm ông Ngoại mình bắt đầu bị tai biến, và cuộc sống mình cũng đã thay đổi sang một hướng hoàn toàn khác.

Trở lại với hiện tại, cuộc sống của mình lúc này vẫn cần thời gian, điều mình nghĩ rằng ai cũng cần :D, ôi mình thèm cái cảm giác được ngủ nướng và ngon lành quá. Có lẽ tuần sau mình sẽ sắp xếp công việc để đi nghỉ.

Filed Under: Cá nhân Tagged With: Harry Porter, How to train your dragon, nhiều chữ

Không bao giờ quá muộn để thực hiện ước mơ

July 1, 2011 by mrhoi Leave a Comment

Viết những dòng này khi đưa chương trình đặc biệt của chàng Rubik lên sóng, mình có một thói quen là không nghe chương trình khi chưa lên sóng, chỉ nghe để qua để kiểm tra. Nhưng lần này dành những phút cuối cùng trước khi bước sang ngày 1/7 để hòan thành nốt lời hứa với em Ru.

Với Còi, cũng như bao đứa em khác, tôi không bao giờ hình dung trong đầu mình xem Còi sẽ là người như thế nào, mặt mũi ra rao, với tôi nickname chỉ đơn giản là tên gọi, con người sở hữu cái tên đó khi tiếp xúc tôi sẽ giúp tôi hình dung về một người tên là Còi. Nghe những nhận xét của Dế về Còi mà thấy giống mình khinh khủng, có lẽ vì đó mà anh em rất hợp nhau trong các khoản ăn uống, xem phim hoạt hình… Chúc em sang tuổi mới, luôn thành công trong cuộc sống đầy sắc màu của mình.

Kỷ niệm mà tôi nhớ nhất đó là khi cô em đăng ký làm CTV của TYC, khi thời gian đăng ký đã hết, nhưng Còi vẫn gửi thư, và hỏi có muộn quá không? Tôi chỉ hỏi lại em đã xem phim UP chưa? Ồ, tôi đã nhận được một bức thư tràn đầy niềm vui khi được ra nhập và sát cánh cùng các đầu bếp cho tới tận bây giờ.

Filed Under: Cá nhân Tagged With: Cầu vồng, Với Còi

Installing Xdebug on Ubuntu

June 26, 2011 by mrhoi Leave a Comment

Install Xdebug

sudo apt-get install php5-xdebug

Update xdebug.ini

Now we need to update the xdebug.ini file. Use the following command to open the file with gedit:

sudo gedit /etc/php5/apache2/conf.d/xdebug.ini

Change the file so it looks like this:

; configuration for php xdebug module

zend_extension=”/usr/lib/php5/20090626/xdebug.so”

xdebug.remote_enable=1

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=127.0.0.1

xdebug.remote_port=9000

Restart Apache

All left to do now is restart Apache with the following command:

sudo /etc/init.d/apache2 restart

Now you can check if all is OK with phpinfo(). You should see the following text:

This program makes use of the Zend Scripting Language Engine:

Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans

with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

Filed Under: Lập trình Tagged With: Derick Rethans, Install Xdebug, Installing Xdebug, nEins GmbH, Restart Apache, SektionEins, SektionEins GmbH, ubuntu, Ubuntu Install Xdebug, Update xdebug.ini, Zend Engine, Zend Scripting Language Engine, Zend Technologies

  • « Go to Previous Page
  • Go to page 1
  • Interim pages omitted …
  • Go to page 21
  • Go to page 22
  • Go to page 23
  • Go to page 24
  • Go to page 25
  • Interim pages omitted …
  • Go to page 40
  • Go to Next Page »

Copyright © 2026 · Revolution Pro on Genesis Framework · WordPress · Log in