Breadcumb là gì ?
Gần giống như một menu nhưng chức năng chính của nó là cho phép bạn biết bạn đang ở phần hoặc khu vực nào trên website. Đặc biệt là khi viết một custom theme trên wordpress bạn sẽ hay phải dùng breadcumb này.
Breadcumb là một thành phần quan trọng tiện lợi trong việc chuyển hướng site. Đặc biệt là đối với các website có cấu trúc phức tạp. Có rất nhiều plugin cho phép bạn sử dụng để tạo ra breadcumb mà không phải chạm tay vào code.
Bạn có thể sử dụng plugin Breadcrumb-navxt trong wordpress một cách dễ dàng nhưng đôi khi bạn không muốn hoặc plugin không theo đúng điều bạn cần thì chính là lúc bạn phải chạm tay vào việc code ra một breadcumb mong muốn.
Các chức nănng có được sau khi hoàn thành:
-Hiển thị đầy đủ và chi tiết liên kết trang hiện tại, ví dụ như bài viết của bạn đang trong một category:
[code=’html’]Home » Chủ đề » Tiêu đề bài viết[/code]
-Breadcumb sẽ được hiển thị tại các khu vực sau trong wordpress:
- paged navigation (dạng như thegioimanguon.com/page/2/);
- category archive;
- tag archive;
- daily archive;
- monthly archive;
- yearly archive;
- author archive;
- single post page;
- single page;
- attachment page;
- search results;
- 404 error page.
-Thêm số trang (nếu archive page đang là 2 hoặc hơn 2);
-Tùy chỉnh ký tự phân cách;
-Tùy chỉnh chữ cho “Home”;
-Tùy chỉnh style cho breadcumb.
Ok, bắt tay vào việc code. Bạn hãy copy đoạn code bên dưới vào chèn vào file functions.php trong thư mục theme bạn đang dùng:
[code=’php’]function dimox_breadcrumbs() {
$delimiter = ‘»’;
$home = ‘Home’; // chữ thay thế cho phần ‘Home’ link
$before = ‘‘; // thẻ html đằng trước mỗi link $after = ‘‘; // thẻ đằng sau mỗi link
if ( !is_home() && !is_front_page() || is_paged() ) {
echo ‘
global $post;
$homeLink = get_bloginfo(‘url’);
echo ‘‘ . $home . ‘ ‘ . $delimiter . ‘ ‘;
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ‘ ‘ . $delimiter . ‘ ‘));
echo $before . ‘Archive by category “‘ . single_cat_title(”, false) . ‘”‘ . $after;
} elseif ( is_day() ) {
echo ‘‘ . get_the_time(‘Y’) . ‘ ‘ . $delimiter . ‘ ‘;
echo ‘‘ . get_the_time(‘F’) . ‘ ‘ . $delimiter . ‘ ‘;
echo $before . get_the_time(‘d’) . $after;
} elseif ( is_month() ) {
echo ‘‘ . get_the_time(‘Y’) . ‘ ‘ . $delimiter . ‘ ‘;
echo $before . get_the_time(‘F’) . $after;
} elseif ( is_year() ) {
echo $before . get_the_time(‘Y’) . $after;
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != ‘post’ ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo ‘‘ . $post_type->labels->singular_name . ‘ ‘ . $delimiter . ‘ ‘;
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ‘ ‘ . $delimiter . ‘ ‘);
echo $before . get_the_title() . $after;
}
} elseif ( !is_single() && !is_page() && get_post_type() != ‘post’ && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ‘ ‘ . $delimiter . ‘ ‘);
echo ‘‘ . $parent->post_title . ‘ ‘ . $delimiter . ‘ ‘;
echo $before . get_the_title() . $after;
} elseif ( is_page() && !$post->post_parent ) {
echo $before . get_the_title() . $after;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = ‘Nguồn: http://dimox.net/wordpress-breadcrumbs-without-a-plugin/
Các feild diền trong comment như tên, mail… chữ nhỏ và mờ quá đi bạn.
Mình coppy các funtion trên vào file funtion.php thì website lỗi 500 không truy cập được, lần nào cũng vậy, do gì vậy ta.