Filed under: Articles, Plugins

10 Plugin nâng cao khả năng vận hành WordPress

Cho tới thời điểm này, ngày 2 – 7 – 2012 WordPress đã đạt 4,188,973 lượt tải – và là một trong những nền tảng blog thịnh hành nhất internet hiện nay.

Với 20,148 plugins được đóng góp để mở rộng khả năng, hiệu suất cho WP. Ở đây tôi xin giới thiệu 10 plugins có thể bạn sẽ quan tâm.

1. All in One SEO Pack

Là một trong những plugin rất được ưa chuộng để nâng cao khả năng tối ưu hóa tìm kiếm. Cơ chế tự động hóa phần lớn công việc giúp người sử dụng dễ dàng tùy biến và nâng cao.

All in seo plugin

  • Last Updated: 2012-6-14
  • Downloads: 11,365,861
  • Version 1.6.14.5

2. Akismet

Được thiết kế bởi chính Automattic team và đi kèm cùng gói phát hành WP, Akismet thực sự cần hữu dụng. Dựa trên cơ chế kiểm tra trung gian, nó cho ta biết commenter có phải là spammer hay không.

Akismet

  • Last Updated: 2012-4-26
  • Downloads: 11,225,933
  • Version 2.5.6

3. Google XML Sitemaps

Nói tới Google chúng ta hẳn đã quá quen thuộc, một website sẽ có tốc độ tối ưu hóa tìm kiếm tốt hơn khi cung cấp sitemaps cho công cụ tìm kiếm – và plugin này cho phép bạn tạo, quản lý sitemaps của blog. Nó sẽ tự động map mỗi khi có bài viết/trang mới.

Google xml sitemaps

  • Last Updated: 2012-5-15
  • Downloads: 7,916,637
  • Version 3.2.7

4. WP-DBManager

Plugin này là một backend tools giúp bạn giải quyết được nhiều việc như tự động backup database theo thời gian, sử lý truy vấn, optimize, repair, restore , drop/empty tables.

WP db manager

  • Last Updated: 2011-8-20
  • Downloads: 679,701
  • Version 2.63

5. W3 Total Cache

Được viết bởi W3 EDGE với một loạt các ông lớn hiện đang sử dụng plugin này thực sự đáng quan tâm, ngay chính blog này hiện cũng đang sử dụng.

Không chỉ cung cấp khả năng cache tốt mà plugin còn cho phép khả năng sử dụng CDN – FTP CDN.

wp total cache

  • Last Updated: 2011-8-26
  • Downloads: 1,163,090
  • Version 0.9.2.4

6. Secure WordPress

Plugin cho phép khả năng an toàn về bảo mật cho blog/website của bạn.

wp securi

  • Last Updated: 2011-12-19
  • Downloads: 684,459
  • Version 2.0.7

7. Grunion Contact Form

Có rất nhiều plugin giúp bạn tạo form, Grunion ban đầu được phát triển bởi một thành viên về sau nó được chính Automattic team phát triển và sử dụng cho wordpress.com

Plugin này cho phép bạn tạo bao nhiêu form bạn muốn với nhiều field có sẵn – chèn vào post/page …

Grunion contact form

 

8. Sociable

Sociable giúp bạn cho phép người đọc, thành viên share post/page đến nhiều mạng xã hội khác nhau.

socialbe

  • Last Updated: 2012-6-29
  • Downloads: 1,665,187
  • Version 4.3.0

9. Bad Behavior

Plugin giúp bạn tự động block spammer hoặc visitor có những hành động xấu đến blog của bạn.

bad

  • Last Updated: 2012-6-13
  • Downloads: 425,654
  • Version 2.2.7

10. Yet Another Related Posts

YARPP giúp bạn hiển thị related post hỗ trợ thumbnail.

related post

  • Last Updated: 2012-3-3
  • Downloads: 1,640,551
  • Version 3.5.1

 Ý bạn thì sao?

Filed under: Articles, Tutorials

Sử dụng Conditional Tags để tùy biến WordPress tốt hơn

Conditional Tags ở mọi mã nguồn hầu như đều có, chúng ta hiểu nôm na rằng nó là “thẻ có điều kiện” quy định một thuộc tính nào đó. Conditional Tag khi đi kèm với các cậu lệnh if -else sẽ cho ta các tùy biến tốt hơn khi viết theme. Các bạn có thể tìm hiểu tất cả các thẻ Conditional được quy định và cung cấp bởi Core tại  Codex page: http://codex.wordpress.org/Conditional_Tags Chúng ta cùng làm một ví dụ nho nhỏ để thấy rõ được tiện ích mà Conditional tag đem lại: Đầu tiên tôi chọn một jQuery plugin notification để làm ví dụ: jQuery Noty. Đưa mọi thứ tôi cần như css,noty.js vào thư mục trong theme tạm gọi là noty. Trong đó tôi tạo một file với tên là **noty.php **có nội dung như sau: https://gist.github.com/3092080#file_noty.php.js

<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/noty/jquery.noty.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I'm an example text. When I grow up I want to be a noty message by Default","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>

Include noty.php vào footer.php (ngay bên dưới wp_footer()). Tất nhiên tôi đã gọi jQuery lib và css tôi cần cho noty tại header.  

<?php require_once('noty/noty.php'); ?> 

Sau khi hoàn tất, ở mọi nơi trong wp site của tôi sẽ có một notify bar.

I want to be a noty message by Default
 Yêu cầu nho nhỏ là ở một số nơi tôi cần notify bar hiện thị một nội dung khác nhau. Có một cách giải quyết là include mỗi nơi một file chứa nội dung đó. Nhưng thay vì làm như vậy tôi sử dụng conditional tag để mọi việc được đơn giản hơn. Tại noty.php tôi viết lại như sau:

https://gist.github.com/3092080#file_noty2.php.js

 <script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/noty/jquery.noty.js"></script>
<?php
if ( is_front_page() ) { /* // Noty hiển thị tại HOME */
 echo '
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I\'m an example text. When I grow up I want to be a noty message on HOME","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>';
} elseif ( is_category() ) { /* // Noty hiển thị tại CATEGORY */
 echo '
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I\'m an example text. When I grow up I want to be a noty message on CATEOGRY","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>';
} elseif ( is_page('Sample Page') ) { /* // Noty hiển thị tại trang Sample Page */
 echo '
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I\'m an example text. When I grow up I want to be a noty message by Sample Page","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>';
} elseif ( is_date() ) { /* // Noty hiển thị tại DATE Artchive */
 echo '
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I\'m an example text. When I grow up I want to be a noty message by Sample DATE","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>';
}

else { /* // Noty hiển thị tại mọi nơi ngoài nhưng nơi trên */
 echo '
 <script type="text/javascript">
 $(document).ready(function(){
 noty({"text":"Hi! I\'m an example text. When I grow up I want to be a noty message by Default","layout":"top","theme":"noty_theme_default","type":"information","animateOpen":{"height":"toggle"},"animateClose":{"height":"toggle"},"speed":500,"timeout":false,"closeButton":true,"closeOnSelfClick":true,"closeOnSelfOver":false,"modal":false});
 });
 </script>';
}
?>

Screenshort:

Ở trên tôi sử dụng một số conditional tag như sau:

is_front_page() /* // Noty hiển thị tại HOME */

is_category() /* // Noty hiển thị tại CATEGORY */

is_page('Sample Page') /* // Noty hiển thị tại trang có tên là Sample Page */

is_date() /* // Noty hiển thị tại DATE*/

Như vậy, chúng ta có thể:
* Thêm, chỉnh sửa conditional tag tùy theo ý muốn (http://codex.wordpress.org/Conditional_Tags)
* Tùy biến nội dung, thay jQuery Noty bằng nội dung gì đó ta cần (slideshow, post list …) Download Source: 

http://dl.dropbox.com/u/9688582/noty.zip

Filed under: Codex

WordPress 3.4.1 Maintenance and Security Release

WordPress 3.4.1 is now available for download. WordPress 3.4 has been a very smooth release, and copies are flying off the shelf — 3 million downloads in two weeks! This maintenance release addresses 18 bugs with version 3.4, including:

Fixes an issue where a theme’s page templates were sometimes not detected.
Addresses problems with some category permalink structures.
Better handling for plugins or themes loading JavaScript incorrectly.
Adds early support for uploading images on iOS 6 devices.
Allows for a technique commonly used by plugins to detect a network-wide activation.
Better compatibility with servers running certain versions of PHP (5.2.4, 5.4) or with uncommon setups (safe mode, open_basedir), which had caused warnings or in some cases prevented emails from being sent.
Version 3.4.1 also fixes a few security issues and contains some security hardening. The vulnerabilities included potential information disclosure as well as an bug that affects multisite installs with untrusted users. These issues were discovered and fixed by the WordPress security team.

Download 3.4.1 now or visit Dashboard → Updates in your site admin to update now.

Filed under: Articles

WordPress plugins/themes uploadify.php Arbitrary Code Execution/Vulnerability

Đang có rất nhiều nghi ngờ về việc Uploadify có tình trạng tương tự như TimThumb – bị hacker chèn mã độc nhằm bắc cầu để tấn công rất nhiều website lớn nhỏ.

Thậm chí một plugin đã bị khai thác lỗi và được xác nhận. Vậy đề nghị mọi người kiểm tra lại plugin và theme của mình nếu có dính dáng tới Uploadify thì nên có biện pháp đề phòng.

Plugin bị khai thác: Foxypress – http://www.foxy-press.com

Thông tin về Uploadify – http://www.uploadify.com

Bug report:

Filed under: Codex, Tutorials

Mặc định ngôn ngữ Tiếng Việt với WordPress

Có rất nhiều lý do khiến chúng ta sử dụng WordPress Tiếng việt mặc định. WP cho người không rành tiếng anh, khách hàng muốn sử dụng tiếng việt …. – WordPress in Your Language (Vietnamese) Và với cộng đồng WP hùng mạnh, hầu như đã hỗ trợ rất nhiều ngôn ngữ và trong đó có cả tiếng việt. Để xem thông tin và tải bản phát hành tiếng việt bạn vào trang sau: vi.wordpress.org . Sau khi tải bạn tiến hành cài đặt như bình thường (có thể đọc tại đây). Bạn có thể tùy chỉnh ngôn ngữ theo ý muốn. Tập tin ngôn ngữ mặc định lang.mo tại wp-content/languages. Nếu blog của bạn đang là tiếng anh, bạn cần tải tập tin ngôn ngữ rồi chép vào theo đường dẫn trên. Bạn cần tạo thư mục languages. **(Có thể tải về tại đây). Sau khi unzip và chép vào **wp-content/ bạn mở wp-config.php cấu hình lại ngôn ngữ bằng cách thêm define:

define ('WPLANG', 'vi');
Vietnamese dashboard
Filed under: Articles, Tutorials

WordPress Pagination từ đơn giản đến nâng cao

Khi xây dựng một dự án trên WP và ứng dụng thực tiễn, chúng ta luôn có những đòi hỏi về mặt thẩm mỹ và quy ước chung cho những chi tiết nhỏ nhưng lại đem lại cho người dùng những tính năng tốt hơn khi sử dụng. Pagination là một ví dụ điển hình. WP Pagination là chức năng phân trang hay có thể gọi là pacing… Sau số bài viết nhất định sẽ kết thúc một trang.

]1 Reading setting[/caption] Ở mặc định, WP hoặc người viết theme đơn giản cho ta một pagination tùy theo cấu hình. Như trên là 10 posts cho mỗi trang.

<nav class="wp-prev-next">
 <ul class="clearfix">
 <li class="prev-link"><?php next_posts_link(_e('« Older Entries', 'WPVN')) ?></li>
 <li class="next-link"><?php previous_posts_link(_e('Newer Entries »', 'WPVN')) ?></li>
 </ul>
</nav>

[caption id=”attachment_151″ align=”aligncenter” width=”642″] Pagination mặc định

Ngoài ra, chúng ta cũng có thể sử dụng một hàm khác để sử lý Pagination đó là posts nav link.

posts_nav_link(':::', '<< Newer Posts', 'Older Posts >>');

Và kết quả chúng ta có được: Với một đòi hỏi khác, chúng ta muốn có cái gì đó mới mẻ cho blog của mình. Rất nhiều lựa trọn để có thể sử lý yêu cầu một cách đơn giản được hướng dẫn tại codex page. Ở đây tôi xin giới thiệu một cách nữa, đơn giản để sử lý Pagination. Như các bạn thấy hình trên. Blog của tôi hiện có 14 trang, và hình đầu tiên tôi đang ở trang chủ, nơi có những bài viết mới nhất. Ở hình 2, tôi hiện đang ở trang 2. Và hình 3 là trang thứ 14 – trang cuối cùng. Để sử dụng pagination như 3 hình trên ta sử dụng function sau:

<div class="wp-prev-next">
  <div class="next-page"><?php previous_posts_link('Next page', "WPVN"); ?></div>
  <div class="page-number"><?php echo (empty($paged)?'1':$paged).' / '.$wp_query->max_num_pages; ?></div>
  <div class="previous-page"><?php next_posts_link('Previous page', "WPVN"); ?></div>
</div>

Như hình dưới, chúng ta có một lựa trọn khác tốt hơn. Dựa vào một hàm sẵn có (paginate_links) ta viết lại pagination theo cách mình muốn.

<?php global $wp_query;  

 $total_pages = $wp_query->max_num_pages;   
 if ($total_pages > 1){  
 $current_page = max(1, get_query_var('paged'));  
 echo '<nav&nbsp;class="page_nav">';  
 echo paginate_links(array(  
   'base' => get_pagenum_link(1) . '%_%',  
   'format' => 'page/%#%',  
   'current' => $current_page,  
   'total' => $total_pages,  
   'prev_text' => 'Prev',  
   'next_text' => 'Next'  
 ));   
 echo '</nav>';

} ?>

Nhược điểm của cách này là permalink format bặt buộc không được để ở cơ chế mặc định có dạng ?p=1234. Việc còn lại là chúng ta chỉnh sửa css để makeup pagination theo ý mình muốn. Lưu ý nhỏ: Nếu theme của bạn là HTML/xHTML mà không phải HTML5 bạn cần thay thẻ **nav **bằng thẻ ***div***. Chúc bạn thành công,

Filed under: Articles, Tutorials

Làm chủ WordPress Back-End dashboard (wp-admin) P2

Ở phần trước chúng ta đã tìm hiểu sơ qua Dashbard. Trong bài viết này tôi sẽ giới thiệu sâu hơn về Menu.

Đầu tiên chúng ta cùng điểm qua những chức năng chính về quản lý nội dung của WP như Posts – Media – Links – Pages – Comments.

Menu Bar

1.  Menu Dashboard với những chức năng Update: Quản lý các gói cập nhập cho Plugins và Themes.

– WP có chế độ quản lý các gói cập nhập – chúng ta có thể tự động cập nhập chỉ bằng một click nếu host hỗ trợ cUrl và cấu hình phù hợp nếu không chúng ta sẽ cần chỉnh sửa chMOD với Linux và FTP infor để có quyền đọc ghi các gói tin đã có.

2. Posts menu với những chức năng quản lý bài viết – danh mục và tag.

 

– Trong khung viết bài cũng có nhiều chức năng cần được quan tâm:

Khung soạn thảo

– Tại ScreenOptions tôi mở hết các chức năng để chúng ta cùng xem qua.  WP3.4 đã hỗ trợ permalink cho nhiều ngôn ngữ non-english như vietnamese nên “slug” sẽ tự động được re-write bỏ dấu.

– Cùng chú ý tới các block bên phải:

  1. Publish: Cho phép chúng ta quản lý bài viết, đăng bài, hẹn giờ, xóa…
  2. Format: Nếu ai đó đã từng chơi tumbl thì không lạ gì format nữa. Nếu theme hỗ trợ chúng ta có thể đăng bài với nhiều format khác nhau như video, audio, gallery, status, chat, quota … Post Formats Codex
  3. Categories
  4. Tags: Cả Category và Tags đều cho phép chúng ta filter bài viết theo danh mục, tag, chúng ta có thể chọn nhiều danh mục hay thêm nhiều tag cùng lúc.
  5. Featured Images: Với theme hỗ trợ thumbnail thì đây chính là block cho phép bạn upload thumbnail bài viết.
– Điểm qua các chức năng còn lại:
  1. Excerpts: Như tôi đã từng giới thiệu ở một entry gần đây về tối ưu hóa Excerpt. Khung này cho chúng ta tùy biến nội dung ngắn của bài viết được hiển thị ở trang chủ hoặc bất kỳ nơi nào khác.
  2. Trackbacks: Vui lòng đọc bài giới thiệu tại đây.
  3. Custom Field: Chúng ta đã không còn dùng nhiều đến chức năng này từ WP2.9 nhưng nó cũng hữu ích trong một số trường hợp nhất định nếu bạn không sử dụng đến những đặc tính sẵn có ở các bản phát hành gần đây.
  4. Discusion: Cho phép ta tùy chỉnh chấp nhận comments hoặc không.
  5. Slug: Tùy trỉnh permalink entry
  6. Author: Tùy chọn người viết
  7. Revision: Tham số chỉnh sửa cho đến phiên làm việc hiện hành.
– Ở thời điểm khi đã đăng bài viết, chúng ta không chỉnh sửa nội dung mà cần filter thì Quick edit sẽ giúp chúng ta làm việc đó một cách nhanh chóng.
Quick Edit

Còn lại là tạo và chỉnh sửa Category/Tags cũng khá dễ dàng, các bạn tự mình khám phá.

3. Media: Upload, sửa xóa, filter hình ảnh, audio, video, documents …

4. Links: Cho phép ta tạo các danh mục blogroll. Thêm, sửa xóa blogroll

5. Pages: Thêm, sửa, xóa trang. Khá quan trọng khi chúng ta tùy biến hiển thị cho WP bằng trang.

6. Comments: Quản lý bình luận.

 

Phần sau tôi sẽ giới thiệu tiếp những chức năng còn lại.

 

Filed under: Tutorials

Làm chủ WordPress Back-End dashboard (wp-admin) P1

Sau bài viết hướng dẫn cài đặt WP, nay mình tiếp tục viết những hướng dẫn đơn giản cho người bắt đầu trong việc sử dụng WordPress.

Ở phần một chúng ta sẽ cùng nhau tìm hiểu sơ qua về backend của WP, cùng xem đường ngang lối dọc hay ngõ tắt như thế nào.

Sau khi cài đặt thành công, việc đầu tiên chung ta quan tâm là đến nơi quan trị cao nhất để thực hiện những thao tác chúng ta cần. Với người mới bắt đầu, việc định hướng cũng không hẳn là chuyện đơn giản. Với những câu hỏi được đặt ra như làm thế nào để tạo category, page,post – ẩn tab này đi ra sao, cho phép thành viên đăng ký hay không thế nào, hoặc đơn giản là cấu hình lại ra sao cho hợp lý…?

Lần đầu vào đến WordPress backend dashboard (wp-admin) chúng ta sẽ thấy như bức hình dưới:

1. Cùng thao tác Screen Options:

– Screen Options không chỉ có ở dashboard mà còn cho chúng ta quản lý ở nhiều nơi khác như post/page …Với Screen Options tại dashboard cho phép chúng ta quản lý tác vụ  ẩn hiện ngay tại dashboard.

Screen Options

– Dashboard Screen Options cho phép chúng ta quản lý thông tin theo cột – ẩn hiện các tab theo ý muốn. Bạn nên tắt những tab không cần thiết với mình để giảm tải cho PHP.

Screen Option

Lưu ý: Screen Options là công cụ quản lý tiện ích của backend – mỗi nơi chúng đều có những tùy chỉnh tiện ích riêng không chỉ ở dashboard.

2. Toolbar và Menu Options:

– Toolbar là menubar trên cùng với một số tiện ích nhanh (shortcut) đến các chức năng cần thiết như comment, post và profile người đang đăng nhập.

– Menu Options là nơi đặt mọi tùy chỉnh và cấu hình của WP:

Lưu ý: Cả hai đều có thể tùy biến bằng plugin hoặc chính functions của theme ta sử dụng.

Kết thúc phần một chúng ta sẽ không còn cảm giác rằng wp dashboard là một mê cung nữa!