Lâu lắm rồi mình mới bắt tay vào viết một bài viết nghịch ngợm WordPress để chia sẻ với các bạn đọc. Hôm nay, chúng ta cùng nghịch với giao diện của WordPress để tùy biến theo ý mình nhé.
Phụ mục
Dynamic Highlight Menu
Trên menu của bạn, bạn cần làm nổi bật một chuyên mục nào đó thì đây là cách thực hiện:
[code language=”php”] <ul id="nav"><li<?php if ( is_home() || is_category() || is_archive() || is_search() || is_single() || is_date() ) { echo ‘ class="current"’; } ?>><a href="#">Gallery</a></li>
<li<?php if ( is_page(‘about’) ) { echo ‘ class="current"’; } ?>><a href="#">About’s NhanWeb</a></li>
<li<?php if ( is_page(‘submit’) ) { echo ‘ class="current"’; } ?>><a href="#">Submit</a></li>
</ul>
[/code]
Dynamic Title
Wow ! Trò này vui cho các SEO lắm đây :D
[code language=”php”] <title><?php
if (is_home()) {
echo bloginfo(‘name’);
} elseif (is_404()) {
echo ‘404 Not Found’;
} elseif (is_category()) {
echo ‘Thư mục:’; wp_title(”);
} elseif (is_search()) {
echo ‘Kết quả tìm kiếm’;
} elseif ( is_day() || is_month() || is_year() ) {
echo ‘Bài lưu trữ:’; wp_title(”);
} else {
echo wp_title(”);
}
?>
</title>
[/code]
Ok ! Tùy biến thoải mái theo yêu cầu của mình nhé mọi người :)
Dynamic Content
Mặc định giao diện của WordPress được load theo file Index, nên nếu bạn cần một file nào đó hoạt động trong trang chủ (home) thôi thì đây là cách:
[code language=”php”]
<?php if ( is_home() ) { include (‘file.php’); } ?>
[/code]
Thay file.php bằng file của bạn. Có thể chèn thêm các đối số đường dẫn để tìm đúng file.
Highlight bài nổi bật theo category
Tính năng Feature post có lẽ không lạ nữa nên không nói nữa hen :)
Bây giờ mục tiêu của chúng ta là giả sử nếu trong danh sách bài nổi bật có bài của một chuyên mục(category) nào đó và chúng ta muốn rằng những bài viết ở mục feature thuộc category này cần được làm nổi bật hơn:
[code language=”php”]
<?php if ( in_category(‘My_highlight_category’) ) { echo (‘class="feature"’); } ?>
[/code]
Thay My_highlight_category thành số ID của category mà bạn cần làm nổi bật. ngoài ra cũng định dạng CSS cho class feature nữa là xong :)
Tùy biến giao diện trang single theo category
Ở trên chúng ta đã nhắc đến hàm in_category() để tùy biến highlight, giờ chúng ta cũng có thể sử dụng nó để tùy biến lại trang single.php theo ý mình:
[code language=”php”] <?php$post = $wp_query- >post;
if ( in_category(‘1’) ) {
include(TEMPLATEPATH . ‘/single1.php’);
} elseif ( in_category(‘2’) ) {
include(TEMPLATEPATH . ‘/single2.php’);
} else {
include(TEMPLATEPATH . ‘/single_other.php’);
}
? >
[/code]
Thay từng trang single.php thành từng giao diện bạn thích. Giao diện trang single_other.php sẽ là giao diện mặc định cho các category khác khi bài viết được tải lên.
Tùy biến giao diện trang category theo category
Cách làm tương tự như trên. Không hướng dẫn nữa, mắc công gõ mỏi tay :D
Thêm Google Adword sau bài viết đầu tiên
Danh sách bài viết rất dài, làm thế nào để xác định được vị trí đầu tiên để đưa Google Adword của mình vào ?
Rất đơn giản, bạn chỉ việc bổ sung 1 biến đồng thời cộng dần biến này lên và so sánh để tìm ra vị trí đầu tiên. Cái này chắc dân lập trình web chỉ cần show code là hiểu liền:
[code language=”php”] <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); $loopcounter++; ?>
// the loop stuffs
<?php if ($loopcounter <= 1) { include (TEMPLATEPATH . ‘/ad.php’); } ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
[/code]
ad.php là file mình chứa đoạn mã Google Adword.
Hiện các bài viết cuối cùng
Rất đơn giản, sử dụng hàm query_post chúng ta có thể làm được rất nhiều thứ:
[code language=”php”] <?php query_posts(‘showposts=5’); ?><ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
[/code]
Này thì 5 bài viết nhé :D
Hiện Feature Posts
Giả sử feature post của chúng ta lấy từ category = 2:
Chúng ta sẽ có đoạn mã này trong sidebar.php:
[code language=”php”]><?php query_posts(‘cat=2&showposts=5’); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul> [/code]
Nghịch Custom Fields
Custom Fields là tính năng rất mạnh của WordPress nhưng chúng ta ít tận dụng vì chưa hiểu rõ về nó. Giờ chúng ta sẽ nghịch nó bằng cách hiển thị một Custom Fields như sau:
Giờ là hiển thị nó ngoài giao diện:
[code language=”php”] <?php //get article_image$image = get_post_meta($post->ID, ‘article_image’, true); ?>
<a href="<?php the_permalink() ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" /></a>
[/code]Tương tự nếu muốn nghịch một Custom Field khác :)
Page Template
Nếu sử dụng một template chuẩn, có thể bạn sẽ không tùy biến được các giao diện hiển thị. Cách tốt nhất là chúng ta nên học cách tùy biến giao diện theo ý mình để còn thiết kế template nữa chứ :)
Đây là cấu trúc của một template (portfolio.php) tùy biến theo cách của riêng bạn:
[code language=”php”] <?php/*
Template Name: Portfolio
*/
?>
<?php get_header(); ?>
//the loop here
<?php get_footer(); ?>
Khi viết hoặc sửa một trang, bạn sẽ tìm thấy template mình vừa tạo:
Chọn nó và sử dụng thôi (dĩ nhiên là bạn phải thiết kế một giao diện cho nó nữa chứ) :)
PayPal Việt Nam says
Hay quá, để làm thử theo xem có sao không :D
Nguyễn Duy Nhân says
Cứ nghịch đi, biết đâu sau này bác có thể thiết kế giao diện cho WordPress thì sao. Chờ tin vui của bác :D
PayPal Việt Nam says
Em chỉ mới tới mức chôm với lại nhái thôi, chưa tự thiết kế được đâu >:D<
Jen says
Bài viết hay lắm :) thanks nhiều
mình đang dùng plugin custom-post-template để tùy biến template for post h được được
Tùy biến giao diện trang single theo category thì hay quá :)
Lê Hiếu says
Em đọc xong thấy hơi @@ bác Nhân ạ! :((
Lê Hiếu says
À! mới bê cái bài của bác sang blog em :D. Không biết bác có ý kiến gì không nữa. >:) >:)
Nguyễn Duy Nhân says
Bác bê xong rồi mới hỏi em thì cũng tương tự như bác lấy của em một món đồ rồi quay lại nói : “Ê ! Tao vừa lấy của mày 1 món đồ đó, có ý kiến gì không ?” <== Đầu gấu quá đi, em nào dám có ý kiến gì :beat: Đùa tí ! Bác nhớ giữ liên kết về bài viết gốc là OK rồi.
Lê Hiếu says
Đa tạ , đa tạ bác. Em để cả backlink ấy chứ . ;):x
Le Hoang says
Thường dùng cái dynamic title và page template nhất :shot:
CAA says
Bác Nhân ơi! Bác có thể hướng dẫn em cách rút gọn bài viết trên trang chủ và hiển thị ảnh đại diện của bài viết như site của bác ấy :) . Em muốn dùng cái theme như của bác nhưng không biết cách để nó hiển thị rút gọn bài viết trên trang chủ, loay hoay trên mạng may quá gặp được blog của bác. Thanks bác! >:D<
rolex says
A Nhân cho e hỏi: Khi e cài theme lấy từ qtemplate.org thì lúc up lên host xong rùi, vào acp trang web nó báo là theme lỗi vì không tìm thấy stylesheet. A có thể hướng dẫn giúp e khắc phục được không ạh ?
phit says
Chào Anh Nhân!
Em có làm theo hướng dẫn “How To Create A Custom WordPress Page Template” theo video http://www.wordpressmax.com/customize-wordpress/custom-page
Nhưng đến phần như anh nói là nghịch với Page Template đó Anh.
Trong phần Add New Pages, sao em tìm không thấy phần Page Template để chọn phần template mình vừa tạo đó Anh.
Em cài WP trên localhost, dùng wordpress-3.2.1. Em cũng mới vọc wp nên câu hỏi có phần gà. Mong Anh thông cảm nha!
Trong thời gian chờ đợi tar3 lời của Anh,em xin chân thành cảm ơn!
Thân chào Anh.
P/S: Ah! Em có vấn đề này nữa. Như thế nào là làm HTML trên WP mà không đụng đến code PHP không Anh?
Tên vi phạm says
giờ mới mò mẫm học wp. cảm ơn những bài viết của bác :D