Thứ Ba, 8 tháng 10, 2013

Chuyển bài viết bằng phím mũi tên trong WordPress


Trong Wordpress đã có sẵn jQuery,  bạn nào đã từng học qua Javascript thì chắc chắn sẽ biết sự kiện onkeydown để nhận biết sự kiện khi bạn ấn phím, gần giống như onkeypress và onkeyup. Tuy nhiên, mình thấy những ứng dụng của nó rất thiết thực và hữu ích trong nhiều trường hợp nhưng số bài viết về nó thì gần như không có nên quyết định viết bài này.

Ví dụ như Facebook sử dụng phím sang trái,sang phải để chuyển ảnh trong album hoặc phím L để like hoặc unlike

facebook-shortcode-onkeydown

delicious


À quên, bạn thấy sao về chức năng ấn phím sang trái, sang phải để chuyển bài viết giống như trong Haivl và 9gag? Khá tuyệt đấy chứ! Đơn giản là khi website có chức năng này, người đọc sẽ ‘chăm chỉ’ đọc bài viết trên trang bạn hơn vì chỉ cần ấn 1 phím là được chuyển đến 1 bài viết khác, không cần biết trước nội dung là gì, theo mình thấy thì cái này khá hay và ‘có khả năng gây nghiện’ vì ai cũng tò mò muốn biết bài tiếp theo là bài gì.

Không nói nhiều nữa, bắt tay vào thực hiện nào!

Trước hết, khi bạn ấn 1 phím sẽ tạo ra 1 event, và khi gặp event này , máy tính hoàn toàn có thể kiểm tra phím bạn vừa ấn là phím gì thông qua lệnh keyCode. Khi đó, giá trị trả về sẽ là 1 số tùy theo phím, giả sử như a có giá trị là 65, b là 66 , các phím lên, xuống, trái, phải lần lượt là 38,40,37,39.

Dưới đây là bảng keycode full để các bạn tiện tra cứu và sử dụng về sau :
key codekey code2


Bây giờ mình sẽ nói qua cách làm

Đó là mình sẽ sử dụng 1 hàm javascript để nhận ra khi nào phím sang trái và sang phải được ấn, nếu phím sang trái được ấn thì mình sẽ chuyển sang bài cũ hơn và nếu là phím sang phải thì sẽ redirect sang bài mới hơn. Vì vậy, để làm được việc này, bạn cần phải biết:
phím sang trái có keyCode là 37
phím sang phải có keyCode là 39
hàm redirect sang 1 website khác là window.location.assign()
link bài viết cũ hơn và bài viết mới hơn.

Đầu tiên, ta tìm đến file chứa template của bài viết trong wordpress, thường sẽ là content_single.php, vì việc chuyển bài viết là chuyển giữa các bài với nhau nên ta sẽ chỉ chỉnh sửa trong file này.


Sau đó, để biết được bài viết mới hơn và bài viết cũ hơn, chúng ta sẽ cần hàm get_next_post() vàget_previous_post() trong wordpress. 2 Hàm này là 2 hàm mặc định của wordpress, chúng sẽ trả về giá trị object của bài viết đó nếu như có bài viết, trả về 1 xâu (string) rỗng nếu như không có bài viết nào tiếp theo và cuối cùng là trả về giá trị null nếu như biến toàn cục $post chưa được xác định

Vậy nên để lấy được đường link của bài viết , trước tiên mình sẽ lấy cả bài viết :
$next_post = get_next_post();
rồi kiểm tra nếu $next_post tồn tại thì lấy đường link của bài viết đó bằng hàm get_permalink(). Tất nhiên là khi đó mình đã có Id của bài viết thông qua biến $next_post->ID nên mới sử dụng được hàm get_permalink() như sau :
if($next_post) {
$next=get_permalink($next_post->ID);
}
Khi ấy, biến $next sẽ được gán đường link của bài viết đó. Làm tương tự với get_previous_post() và chúng ta sẽ có cả đoạn code như sau:
$next_post = get_next_post();
if($next_post) {
$next=get_permalink($next_post->ID);
}
$prev_post = get_previous_post();
if($prev_post) {
$prev=get_permalink($prev_post->ID);
}

Tiếp theo, chúng ta sẽ chèn đoạn javascript nhận biết sự kiện ấn phím vào :

<script type="text/javascript">
  document.onkeydown = checkKey;
function checkKey(e) {
    e = e || window.event;
    if (e.keyCode == '37') {
        // left arrow
        // đoạn mã thực thi khi phím sang trái được ấn
 }
    else if (e.keyCode == '39') {
       // right arrow
        // đoạn mã thực thi khi phím sang phải được ấn
 }
}
</script>




Đoạn Javascript này có nghĩa : khi có phím được ấn sẽ thực hiện hàm checkKey và hàm checkKey này sẽ kiểm tra điều kiện xem keyCode 37 hoặc keyCode 39 có được nhập vào hay không, nếu có thì sẽ thực hiện các lệnh được ta gán cho.

bây giờ ta sẽ thêm đoạn lệnh để chúng hoạt động nữa là xong.

đối với phần của left arrow (mũi tên trái) thì bạn chèn phần này vào :
<?php echo 'window.location.assign("'.$prev.'");'; ?>
đơn giản là nó in ra lệnh tự redirect sang đường link được gán trong biến $prev, làm như thế này, chũng ta đã có thể kết hợp được cả javascript và php. Làm tương tự với phần right arrow :
<?php echo 'window.location.assign("'.$next.'");'; ?>
như vậy cả đoạn javascript hoàn chỉnh sẽ là :
<script type="text/javascript">
  document.onkeydown = checkKey;
function checkKey(e) {
    e = e || window.event;
    if (e.keyCode == '37') {
        // left arrow
  <?php echo 'window.location.assign("'.$prev.'");'; ?>
 }
    else if (e.keyCode == '39') {
  <?php echo 'window.location.assign("'.$next.'");'; ?>
 }
}

và cả đoạn code sẽ là :
<?php
$next_post = get_next_post();
if($next_post) {
  $next=get_permalink($next_post->ID);
}
$prev_post = get_previous_post();
if($prev_post) {
  $prev=get_permalink($prev_post->ID);
}
  ?>
<script type="text/javascript">
  document.onkeydown = checkKey;
function checkKey(e) {
    e = e || window.event;
    if (e.keyCode == '37') {
        // left arrow
  <?php echo 'window.location.assign("'.$prev.'");'; ?>
 }
    else if (e.keyCode == '39') {
  <?php echo 'window.location.assign("'.$next.'");'; ?>
 }
}
</script>




bạn chỉ cần chèn đoạn này vào vị trí cuối cùng hoặc đầu tiên (hoặc vị trí bất kỳ cũng được) ở trong file content-single.php (hoặc single.php) là được. Bạn thử lưu lại và xem 1 bài viết bất kỳ rồi ấn sang trái, sang phải và chiêm ngưỡng điều kỳ diệu xảy ra ^_^

Sử dụng cách này bạn cũng có thể tùy biến được để tạo ra nút like, unlike giống như của facebook hay bất kỳ chức năng nào bạn muốn cho blog hoặc website của bạn!

Hy vọng được gặp lại bạn trong những bài tiếp theo. Nếu bạn có góp ý gì về bài viết của mình thì hãy comment nhiệt tình nhé

Hướng dẫn cài đặt wordpress trên Localhost



Để tạo một trang website bằng wordpress, đầu tiên sẽ phải cài đặt wordpress,

sau đây mình sẽ hướng dẫn cài đặt wordpress trên localhost. Trước hết bạn hãy

download source của Wordpress tại wordpress.org. Về phần localhost bạn phải có XAMPP, WAMP5 hay Appserv ... bất cứ phần nềm nào cho phép giả lập locahost





CÁCH CÀI ĐẶT WORDPRESS TRÊN LOCALHOST






Download mã nguồn mở wordpress phiên bản mới nhất về. website WordPress hoặc phiên bản mới nhất hiện tại 3.3.2 tại đây
- .Download xong giải nén vào bỏ vào thư mục www của WAMP tất nhiên là phải khởi động phần mềm WAMP xong đã.

Bạn hãy gõ vào address bar: localhost/phpmyadmin
Tạo mới 1 database như sau:



Các bước tiến hành Install:


Bạn giải nén và copy toàn bộ code của bản wordpress vào thư mục htdocs của localhost ( ở đây tôi để vào folder tên web-wp trong htdocs )


Mở file wp-config-sample.php và tiên hành khai báo các thông số database.





Lưu lại file này thành file mới là wp-config.php cũng ở trong thư mục đó luôn.
Tiếp theo là bước cài đặt, bạn hãy gõ vào address bar: localhost/web-wp
Điền các thông số về Site title, tên user và mật khẩu, email quản trị của bạn.





Click vào Install WordPress - Ok, xong.


Tiến hành login để vào trang quản trị









Tiếp theo bạn mở nó ra và copy file wp-config-sample.php và paste nó ngay tại cửa sổ này. Sau đó bạn đổi tên nó từ copy of wp-config-sample.php thành wp-config.php. Mở nó ra trong trình Notepad chẳng hạn và bạn có thông tin sau:






Thay nó bằng thông tin ta tạo database ở phần trước. Nhớ là phần Password của bạn khác với password trong hình đấy nhé!
Thường thì bạn có thể lưu lại và bắt đầu cài đặt được rồi. Nhưng từ phiên bản 2.6.0 WordPress có thêm một chức năng gọi là Authentication Key. Nó đóng vai trò là một cánh cửa bảo mật nữa cho trang web của bạn. Thực ra đây là chúng ta cài thử trong localhost thì cũng không cần thiết, nhưng nếu là trang web thật thì bạn cũng nên làm. Để có thông tin này bạn truy cập vào địa chỉ https://api.wordpress.org/secret-key/1.1/ và ở đây sẽ có key cho bạn điền vào. Bạn chỉ việc copy và paste thôi. Nếu bạn muốn gõ dãy số điên điên đấy thì cũng Ok, tôi sẽ chờ ()_o… Gõ xong rồi hỉ? tiếp thôi





Xong xuôi bạn lưu lại và khởi động WAMP Server nếu bạn chưa làm. Gõ lên trình duyệt dòng:http://localhost/wordpress



Nếu bạn làm các bước đều đúng thì một màn hỉnh sẽ hiện ra như sau. Bạn điền thông tin vào các vùng này. Còn nếu nó ra thông báo lỗi gì đó thì bạn kiểm tra lại các bước có đúng không. Đặc biệt là tên Database, Username và Password.





ở đây là tiêu để của website nhớ đặt lại nhé.


Khi nhấn Install WordPress nó sẽ đưa bạn trang một trang mới như sau và “Chúc mừng! bạn đã cài đặt thành công WordPress”. Nhưng đừng vội mừng quá mà quên nhiệm vụ chính! giờ bạn phải copy lại cái Password khùng kia. Nếu bạn thích nhớ thì cũng được vì nhìn nó cũng hay hay. Biết đâu lại có gì liên quan đến mình. Chọn Login và Username là admin và Password là cái bạn vừa copy (hoặc nhớ).





Vì đây là chúng ta cài đặt thử trong Localhost nên bạn có thể dừng lại ở đây. Còn nếu bạn cài đặt trên host cho trang web thật thì bạn nên vào phần User và tạo một User mới với quyền Administrator và xóa User mặc định là Admin đi. Đây cũng là một trong các bước giúp bạn bảo mật trang web của mình. Cuối cùng thì bạn dành ít phút tìm hiểu anh bạn mới này như: cách viết bài, tạo Categories, tạo Pages, Widget, Settings … Ở những bài sau chúng ta sẽ học cách tạo theme cho trang web từ con số 0 là thiết kế trong Photoshop, xuất ra xHTML & CSS và cuối cùng là biến nó thành WordPress Theme.


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

Thứ Sáu, 4 tháng 10, 2013

Cấu trúc giao diện của Wordpress (WordPress Template Hierarchy)



WordPress Template Hierarchy hay có thể hiểu là cấu trúc cấp bậc giao diện

WordPress cho phép chúng ta viết theme theo đúng chuẩn và sử dụng chúng

như khuôn mẫu cho các phiên bản Wordpress.




Giới thiệu:
Các template như những mảnh ghép được ghép lại với nhau tạo ra một trang web hoàn chỉnh trên giao diện người dùng. Một số file giao diện được dùng trên tất cả các trang như header.php hay footer.php nhưng có những file chỉ được gọi đến trong những trường hợp nhất định.


Vì sao chúng ta cần hiểu rõ về cấu trúc giao diện?
Hiểu được cấu trúc giao diện chúng ta có thể tùy biến giao diện người dùng tốt hơn theo những yêu cầu được đặt ra mà không phải gọi lại những thành phần thừa. Biết chỉnh sửa nếu cần thiết.
Cấu trúc giao diện rất cần thiết cho theme designer.


Sử dụng cấu trúc theo Conditional Tags


WP cung cấp nhiều cách để gọi dữ liệu, vì vậy khi viết theme chúng ta cần sử dụng conditional tag

trong cấu trúc theme để xuất dữ liệu theo yêu cầu.


Template File Hierarchy


Wordpress có các câu lệnh truy vấn dữ liệu quy định loại trang nào sẽ hiển thị dữ liệu được yêu cầu

(ví dụ trang tìm kiếm, danh mục, ngày tháng …)Khi được yêu cầu, WP sẽ tìm đến các file đúng

chuẩn để quy định cách xuất dữ liệu và những dữ liệu gì được xuất hiện, việc này phụ thuộc vào tùy từng

theme và được bỏ qua nếu không có.


Lấy ví dụ, khi truy vấn đến một website sử dụng WP thì file index.php trong theme sẽ được gọi.

Và nếu không có WP sẽ bỏ qua và tìm tiếp đến file được quy định làhome.php




Visual Template Hierarchy



Để hiểu hơn chúng ta cùng đi vào những yêu cầu cụ thể


Website của tôi có nhiều category và tôi muốn các category cụ thể được quy định giao diện khác nhau

(ví dụ category: Xã hội, Công nghệ, Nghệ thuật, Du lịch … Yêu cầu được đặt ra là các danh mục trên

có nội dung khác nhau nên cần có giao diện người dùng khác nhau. Và khi dựa vào cấu trúc chuẩn tôi

cần xác định định được:







Khung xanh: slug / Khung đỏ: ID
  • Category ID (ID của danh mục) 
  • Category Slug (slug của danh mục) 


- Plugin hỗ trợ tìm IDs: Reveal IDs


Kết quả (id/slug):

Xã hội – 3/xa-hoi
  • Công nghệ – 5/cong-nghe 
  • Nghệ thuật – 8/nghe-thuat 
  • Du lịch – 4/du-lich 


Khi thiết kế giao diện website theo chuẩn và có giao diện theo yêu cầu thì chúng ta cần đặt tên file như sau (id/slug):
Xã hội – category-3.php hoặc category-xa-hoi.php
Công nghệ – category-5.php hoặc category-cong-nghe.php
Nghệ thuật – category-8.php hoặc category-nghe-thuat.php
Du lịch – category-4.php hoặc category-du-lich.php


Và việc còn lại là tùy biến giao diện theo yêu cầu trên từng file riêng biệt mà không ảnh hưởng đến những category khác.


Danh sách Template Hierarchy theo chuẩn


Trang chủ:
  • home.php 
  • index.php 


Trang chủ tùy chỉnh (theo page):
  • front-page.php 
  • Page (tùy chỉnh tại Settings -> Reading) 
  • Post (tùy chỉnh tại Settings -> Reading) 


Trang đơn:
  • single-{post_type}.php – ({post_type} cần được quy định và đặt tên file bởi slug – ví dụ post_type slug là san-pham vậy ta có single-san-pham.php ) 
  • single.php 
  • index.php 


Trang (page):
  • page-{slug}.php 
  • page-{id}.php 
  • page.php 
  • index.php 
  • tùy ý (xem thêm tại đây


Category:
  • category-{slug}.php 
  • category-{id}.php 
  • category.php 
  • archive.php 
  • index.php 
Tag:
  • tag-{slug}.php 
  • tag-{id}.php 
  • tag.php 
  • archive.php 
  • index.php 


Taxonomies:
  • taxonomy-{taxonomy}-{slug}.php 
  • taxonomy-{taxonomy}.php 
  • taxonomy.php 
  • archive.php 
  • index.php 


Post Types:
  • archive-{post_type}.php 
  • archive.php 
  • index.php 


Author:
  • author-{nicename}.php 
  • author-{id}.php 
  • author.php 
  • archive.php 
  • index.php 


Date:
  • date.php 
  • archive.php 
  • index.php 


Search:
search.php
index.php


404 Not Found:
404.php
index.php


Attachment:
MIME_type.php
text.php
plain.php
text_plain.php
attachment.php
single-attachment.php
single.php
index.php


Đọc thêm tại codex page: http://codex.wordpress.org/Template_Hierarchy

Ưu và nhược điểm của Wordpress


Wordpress là ngôn ngữ được sử dụng khá nhiều trong thiết kế website bên cạnh Joomla . Ngoài ra , WordPress là một trong những CMS có khả năng hỗ trợ SEO tốt nhất hiện nay bạn có thể chỉnh sửa thông số meta description, meta tilte, meta keyword rất đơn giản với All in one SEO plugin. Một số ưu và nhược điểm của WordPress mà bạn cần phải biết như:

Ưu điểm của WordPress

- WordPress dễ sử dụng nhất trong 3 CMS, nó giúp bạn có một Blog trong vài phút . Bạn có thể vào http://wordpress.com để tạo một blog miễn phí cho mình và bắt đầu làm quen sử dụng WordPress .
- Các plugin hỗ trợ của wordpress có rất nhiều và 99% là miễn phí, bạn có thể cài đặt (install) và nâng cấp (upgrade) các plugin này ngay trong phần quản lý của WordPress mà không cần phải download về như Joomla và Drupal .
- Nhiều Theme có sẵn miễn phí và thu phí (nhiều theme nhất trong các CMS hiện nay).
- Có thê làm được nhiều thể loại website , từ blog cá nhân đến thương mại điện tử
- WordPress hỗ trợ SEO rất tốt và dễ dàng cài đặt.
- Dễ sử dụng và quản lý
- Wordpress nhẹ và ít hao tốn tài nguyên máy chủ.
- Có thể tự thiết kế giao diện một cách dễ dàng bằng các theme framwork hiện có.
-  Dễ dàng thay đổi nếu ban có kiến thức về HTML & CSS , PHP.



Nhược điểm của WordPress

- Theo một số Webmaster có kinh nghiệm thì WordPress sẽ hoạt động nhẹ nhàng, ít tốn tài nguyên. Nhưng khi website bạn có lượng truy cập lớn thì WordPress lại gây tốn tài nguyên hệ thống kinh khủng (điều này chưa được kiểm chứng).
- WordPress thích hợp cho viết Blog và xuất bản nội dung kiểu nhóm nhỏ . Nó khó có thể đáp ứng các chức năng mở rộng và tương tác cao.
- Có quá nhiều hàm có sẵn khiến các Deverloper mệt mỏi
- WordPress đặc biết rất dễ sử dụng, trên thế giới hiện có hơn 200 triệu blog, website sử dụng mã nguồn này . Tuy nhiên, WordPress thích hợp nhất vào việc xuất bản nội dung (viết Blog), mã nguồn nhỏ gọn, tinh giản tối đa khiến nó gặp khó khăn khi đáp ứng các yêu cầu mở rộng như sự tương tác giữa các thành viên, quản lý thành viên, diễn đàn, …

WordPress là gì?



WordPress là một CMS, một phần mềm mã nguồn mở và hoàn toàn miễn phí để làm blog, trang web cá nhân hoặc bất cứ gì mà bạn thích. WordPress được viết bằng ngôn ngữ lập trình PHP và sử dụng MySQL database. WordPress là “con” của B2 / Cafelog, được xây dựng trên sự tiện dụng, cùng các định dạng chuẩn của web.
Đơn giản, WordPress là một phần mềm bạn có thể sử dụng nếu muốn làm một trang web cá nhân, mà không cần phải “vật lộn” với nó để có được kết quả.
Wordpress

Các đặc tính nổi bật


  • Hệ thống Plugin phong phú và cập nhật liên tục, bạn cũng có thể tự viết plugin cho mình.
  • Hỗ trợ nhiều ngôn ngữ ( bao gồm cả tiếng Việt )
  • Được cập nhật, vá lỗi và hỗ trợ liên tục.
  • Có rất nhiều Theme miễn phí, chuyên nghiệp và SEO rất tốt.
  • Dễ dàng quản lý và thao tác, việc quản lý blog, bài viết giống như các phần mềm thiết kế web chuyên nghiệp.
  • Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn có thể viết công thức toán học ngay trong bài viết.
  • Upload và quản lý hình ảnh một cách dễ dàng, đặc biệt là chức năng tạo thumbnail rất hay.
  • Có một hệ thống Widget đa dạng ( ứng dụng tạo thêm ) như Thống kê số người truy cập, Danh sách các bài viết mới, các bài viết nổi bật, được xem nhiều, được comment nhiều, Liệt kê các chuyên mục, Liệt kê các trang, Bài viết theo ngày tháng, … có đến trên 23 Widget để bạn tha hồ lựa chọn.
  • Thống kê số truy cập từng ngày đối với mỗi bài viết của blog. Trên cơ sở đó bạn sẽ có định hướng nên viết gì tiếp theo.
  • Hệ thống quản lý và duyệt Comment rất hay, có thể chặn spam theo IP.
  • Hệ thống phân quyền với nhiều cấp độ khác nhau như: Administrator, Author, Editor, Contributer, Subcriber. Mỗi phân quyền sẽ có các quyền hạn khác nhau như được phép đăng bài viết, sửa bài viết, xóa bài viết, duyệt comment …
  • Sao lưu dữ liệu một cách dễ dàng để backup hoặc chuyển nhà sang một nơi khác.
  • Hỗ trợ import đa năng từ các blog khác như Blogspot, Tumblr, Blogger, LiveJournal …
  • WordPress hỗ trợ 3 GB để lưu trữ hình ảnh và văn bản.
  • Và đặc biệt mới đây nhất WordPress hỗ trợ việc quản lý blog qua mobile rất thuận tiện và dễ dàng.

Cài đặt WordPress

Cài đặt WordPress sẽ có 2 hình thức: đăng ký miễn phí tại WordPress.com hoặc tải và cài đặt WordPress lên host của bạn.

Đăng ký miễn phí tại WordPress.com

WordPress.com là dịch vụ blog miễn phí, khi đăng ký tải khoản bạn sẽ có 1 sub-domain dạng yoursite.wordpress.com; WordPress.com rất dễ sử dụng, thường được dùng để viết blog, có sẵn nhiều giao diện miễn phí để bạn chọn, có một cộng đồng viết blog rất đông đảo. Tuy nhiên có một hạn chế, bạn không thể cài được Plugin, sẽ không chỉnh sửa được code và Settings sẽ hạn chế.i

Tải và Cài đặt WordPress lên Host của bạn ( Self-Hosted )

WordPress cho phép bạn tải mã nguồn miễn phí tại website WordPress.org. Với mã nguồn này, bạn hoàn toàn tự do làm một website mà bạn muốn ( chứ không đơn thuần là viết blog ).
WordPress Self-Hosted cho phép bạn tải lên và cài đặt trên bất cứ hosting nào, bạn được cài đặt thêm tùy ý các plugin hoặc theme, bạn có thể tùy ý chỉnh sửa code của theme theo ý muốn ( điều mà WordPress.com không làm được ).

Hình thức xây dựng blog WordPress

  • Sử dụng dịch vụ viết blog có sẵn của trang wordpress.com
  • Bạn cũng có thể download bộ nguồn của nó về và up lên host để sử dụng theo ý muốn của bạn,bạn có thể chỉnh sửa code(PHP) và giao diện(CSS) theo ý thích.
  • Theo kinh nghiệm xài blog của mình thì WordPress là 1 blog (1 mã nguồn mở) tuyệt vời. Bạn muốn làm 1 blog cá nhân, 1 trang web nhỏ, 1 trang tạp chí, 1 trang tin tức, 1 trang về film…và hơn thế nữa, WordPress đều có khả năng đáp ứng được hết vì nó khá linh động, đó là nhờ khả năng tuỳ biến giao diện (themes), bạn thay đổi theme sao cho phù hợp với nội dung của web là được.
  • Bên cạnh đó WordPress có điểm rất hay đó là cho phép sử dụng các plugin đi kèm (rất nhiều và có nhiều cái rất hay…) và thông thường đều là free hết.