Home WordpressWordPress cơ bản Hướng dẫn wordpress action Hooks & Filter cho posts

Hướng dẫn wordpress action Hooks & Filter cho posts

by admincp

wp-hook
Sửa nội dung bài viết.

/*modify content*/
add_filter( 'the_content',  'custom_post',20 );
function custom_post($content) {
	global $post, 		//current post if is single page
		$wp_query;
	$post_id = $post->ID;
	//print_r($post);
	
	//Add a icon to the beginning of every post page.
	if ( is_single() )
        // Add image to the beginning of each page
        $content = sprintf(
            '<img class="post-icon" src="%s/images/post_icon.png" alt="Post icon" title=""/>%s',
            get_bloginfo( 'stylesheet_directory' ),
            $content
        );
	
	//suffix/prefix content
	$write="hello world";
	$new_content = $write . $content;
	return $new_content;
}

Sửa đối tượng single post (WP_Post).

/*get single post*/
add_filter('the_post','single_post');
function single_post($post){
	print_r($post);
}

Sửa tiêu đề bài viết post.

/*edit post title*/
function suppress_if_blurb($title, $id) {		#post title,post id
    if (in_category('blurb', $id)) {
        return '';
    }
    return $title;
}
add_filter('the_title', 'suppress_if_blurb', 10, 2);

Giới hạn số lượng ký tự tạo bởi the_excerpt, chúng ta có filter ‘excerpt_length’.

//custom excerpt length
function new_excerpt_length($length) { return 20; }
add_filter('excerpt_length', 'new_excerpt_length');

lưu ý: chỉ số 20 không phải là số lượng ký tự chính xác có trong chuỗi excerpt cuối cùng, mình không rõ wordpress tính toán đưa ra chuỗi excerpt dựa vào số ký tự tối đa như thế nào? có lúc nhỏ hơn lúc lớn hơn giá trị excerpt_length. Cách tốt nhất nếu website của bạn không hiển thị đúng excerpt thì tự tạo hàm giới hạn chuỗi trong php.
Tuy nhiên trong wordpress cũng có hàm giới hạn nội dung chuỗi với ký tự excerpt more, nhưng nguyên lý cũng giống excerpt_length.

<?php

$content = get_the_content();
$trimmed_content = wp_trim_words( $content, 40, '<a href="'. get_permalink() .'"> ...Read More</a>' );
echo $trimmed_content;

?>

Để tùy biến nội dung excerpt và sửa lại ký tự excerpt more bạn có thể sử dụng hook ‘the_excerpt’ hoặc ‘excerpt_more’. Xem chi tiết tại đây.

Xóa tag ‘p’ bao nội dung excerpt: mặc định the_excerpt chứa trong thẻ p thẻ này tự động tạo bởi hàm wpautop, bằng cách xóa hàm này ra khỏi filter the_excerpt để loại bỏ nó đi.

remove_filter('the_excerpt', 'wpautop');

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng có thể nhận được sự trợ giúp trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

You may also like

Leave a Comment