• Skip to main content

MrHói's Blog

The simple is the best

You are here: Home / Archives for wordpress

wordpress

Thay đổi favicon mặc định của Genesis

February 16, 2012 by mrhoi 2 Comments

Trước khi thực hiện việc này, tôi khuyên bạn nên tạo một child theme từ Genesis, tất nhiên để việc thay hook vào Genesis một cách rõ ràng hơn, chú ý khi tạo child theme, hãy tạo thêm tệp functions.php để chứa các hàm php hook vào Genesis nhé.

Để thay đổi Favicon cho Website hoặc Blog của mình, hãy mở file functions.php để thêm vào dòng lệnh sau

add_filter(‘genesis_favicon_url’, ‘custom_favicon_url’);

function custom_favicon_url() {

$favicon = “http://yourdomain.com/favicon.ico”;

return $favicon;

}

Lệnh add_filter sẽ giúp bạn sửa thông tin của đường dẫn của favicon mặc định của Genesis thành dường dẫn của bạn.

Tất nhiên để, thuận tiện vào sử dụng lại, hàm trên, cho các site khác nhau, bạn hãy tạo một favicon.ico tại thư mục gốc của WordPress, sau đó thay vì chèn dòng lệnh trên có thể sử dụng dòng lệnh sau

add_filter(‘genesis_favicon_url’, ‘custom_favicon_url’);

function custom_favicon_url() {

$favicon = site_url(“favicon.ico”);

return $favicon;

}

Lệnh site_url sẽ giúp bạn tạo đường dẫn tuyệt đối với các thiết lập trong wordpress của bạn, sẽ không cần thay đổi nhiều khi chuyển qua những dự án khác nhau. Một lựa chọn khác, khi bạn muốn favicon của mình thay đổi dựa theo template đang được sử dụng

add_filter(‘genesis_favicon_url’, ‘custom_favicon_url’);

function custom_favicon_url() {

$favicon = dirname( get_bloginfo(‘stylesheet_url’) ) . “/favicon.ico”;

return $favicon;

}

Chúc bạn thành công.

Filed Under: Genesis, Wordpress Tagged With: 'custom_favicon_url', 'genesis_favicon_url', favicon, favicon.ico, function custom_favicon_url, Genesis Tr, Genesis Trước, wordpress

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

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