Hiển thị bài viết theo danh mục wordpress shortcode

Trong WordPress, thật thú vị khi sử dụng mã ngắn. Chúng cho phép bạn làm rất nhiều việc chỉ với một đoạn mã

Trong bài viết này, chúng ta sẽ xem xét việc tạo mã ngắn WordPress để hiển thị các bài đăng từ một danh mục hoặc nhiều danh mục theo id và tên danh mục

Nhưng trước khi bắt tay vào việc này, bạn nên hiểu rõ về việc sử dụng các tham số và thuộc tính trong mã ngắn để dễ dàng hiểu mã được cung cấp bên dưới

Tôi đã viết một bài viết chi tiết về cách tạo mã ngắn với tham số và thuộc tính, trong đó tôi đã phác thảo việc sử dụng nhiều tham số và thuộc tính trong mã ngắn

Vì vậy, tại thời điểm này, tôi cho rằng bạn đã biết về việc sử dụng các tham số và thuộc tính trong shortcode. Bây giờ chúng ta hãy di chuyển xa hơn với bài viết này

Tạo mã ngắn để hiển thị bài đăng từ danh mục theo ID danh mục

Để hiển thị các bài đăng từ một danh mục cụ thể, hãy làm theo các bước

  1. Sao chép đoạn mã dưới đây và thêm nó vào chức năng. php tập tin nằm ở wp-content/themes/your-theme/.
    // Creating Shortcodes to display posts from category
    function diwp_shortcode_display_post($attr, $content = null){
    
    	global $post;
    
    	// Defining Shortcode's Attributes
    	$shortcode_args = shortcode_atts(
    						array(
    								'cat'	 => '',
    								'num'	 => '5',
    								'order'  => 'desc'
    					    ), $attr);	
    	
    	// array with query arguments
    	$args = array(
    					'cat'		 	 => $shortcode_args['cat'],
    					'posts_per_page' => $shortcode_args['num'],
    					'order'          => $shortcode_args['order'],
    					
    				 );
    
    	
    	$recent_posts = get_posts($args);
    
    	$output = '
      '; foreach ($recent_posts as $post) : setup_postdata($post); $output .= '
    • '.get_the_title().'
    • '; endforeach; wp_reset_postdata(); $output .= '
    '; return $output; } add_shortcode( 'diwp_recent_posts', 'diwp_shortcode_display_post' );
  2. Sau đó, thêm mã ngắn này vào trang, bài đăng hoặc tiện ích con bằng cách chuyển id danh mục và các tham số khác trong đó.
    [diwp_recent_posts cat="16" num="3" order="asc"]
    
    • cat = Id danh mục mà bạn muốn hiển thị bài viết
    • num = Số bài viết hiển thị trên mỗi trang
    • order = thứ tự các bài đăng sẽ hiển thị, ASC hoặc DESC

    Nếu bạn muốn thêm mã ngắn vào tệp chủ đề của mình hoặc bất kỳ tệp mẫu cụ thể nào, hãy thêm nó bằng mã bên dưới

  3. Đoạn mã trên sẽ hiển thị cho bạn các bài đăng từ danh mục có id = “16”. Giống như trong hình bên dưới, bạn có thể thấy đầu ra
    create-shortcode-to-display-recent-posts-from-categories

Quảng cáo Vì vậy, bằng cách sử dụng mã ngắn ở trên, bạn có thể dễ dàng hiển thị các bài đăng từ bất kỳ danh mục nào. Tất cả những gì bạn phải làm chỉ là chuyển id danh mục trong thuộc tính mèo.

Nếu bạn không chuyển id danh mục vào mã ngắn hoặc sử dụng mã ngắn mặc định [diwp_recent_posts] thì nó sẽ hiển thị các bài đăng từ danh mục mặc định (có id = 1)

Tạo mã ngắn để hiển thị bài đăng từ danh mục theo tên danh mục

Nếu bạn muốn hiển thị các bài đăng từ một danh mục theo tên của nó thay vì ID. sau đó bạn có thể sử dụng cùng chức năng và shortcode. Tất cả những gì bạn phải làm là, thay vì cat, hãy sử dụng category_name trong mảng $args như bên dưới

// array with query arguments
$args = array(
	'category_name'   => $shortcode_args['cat'],
	'posts_per_page'   => $shortcode_args['num'],
	'order'                    => $shortcode_args['order'],
 );

Và trong mã ngắn, thay vì Id danh mục, hãy sử dụng tên danh mục như trong ví dụ bên dưới

[diwp_recent_posts cat="WP Tutorials" num="3" order="asc"]

Và đó là nó. Mã ngắn trên sẽ hiển thị các bài đăng từ một danh mục theo tên của nó. Vì vậy, điều này sẽ hiển thị các bài đăng từ danh mục Hướng dẫn WP như trong hình bên dưới

create-shortcode-to-display-recent-posts-from-categories-2

Cho đến bây giờ, bạn đã tìm hiểu về hiển thị các bài đăng từ một danh mục cụ thể nhưng nếu bạn muốn hiển thị các bài đăng từ nhiều danh mục thì sao?. Quảng cáo

Đừng lo lắng, tôi cũng sẽ đề cập đến điều đó trong bài viết này

Tạo mã ngắn để hiển thị bài đăng từ nhiều danh mục

Một lần nữa, chức năng trên và mã ngắn sẽ giống nhau để hiển thị các bài đăng từ nhiều danh mục, nhưng bạn phải thực hiện một thay đổi trong chức năng của mình

// array with query arguments
	$args = array(
		'cat'	=> array($shortcode_args['cat']),
		'posts_per_page' => $shortcode_args['num'],
		'order'          => $shortcode_args['order'],
	 );

Trong các đối số truy vấn $args, đối với tham số cat, bạn phải truyền giá trị dưới dạng một mảng. Vì vậy, điều này có thể mất nhiều giá trị

Và sau khi làm điều đó, hãy thêm mã ngắn bên dưới để hiển thị các bài đăng từ các danh mục khác nhau

[diwp_recent_posts cat="16,17" num="4" order="desc"]

Trong đoạn mã ngắn trên, tôi đã chuyển ID của hai danh mục làm giá trị trong tham số cat. Vì vậy, điều này sẽ hiển thị các bài đăng từ các danh mục có id là 16 và 17

Tôi hy vọng bài viết này đã giúp bạn tìm hiểu về cách tạo mã ngắn để hiển thị các bài đăng từ một danh mục hoặc từ nhiều danh mục

quảng cáo

Bhuvnesh Shrivastava

Chủ sở hữu của Diveinwp. com, chịu trách nhiệm duy nhất về việc tạo nội dung hữu ích, nhiều thông tin về WordPress, nhà phát triển WordPress toàn thời gian với hơn 8 năm kinh nghiệm thực tế trong thiết kế và phát triển WordPress