Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ. Các bạn đi ngang nếu được cho Lâm 1 like và 1 đăng ký kênh Youtube nhé !!
Ở bài trước trong Serie Tạo và quản lý bài viết Front End không dùng Plugin, chúng ta đã giúp thành viên WordPress đăng bài ngay ngoài trang chủ, vậy tiếp theo chúng ta cần tạo 1 trang cho phép thành viên xem và quản lý các bài viết của mình.
Tạo trang quản lý bài viết cho thành viên WordPress– Đầu tiên bạn cần tạo 1 file quản lý bài viết : quan-ly-bai-viet.php
Mình sẽ tách nhỏ và giải thích từng đoạn trong file này, rồi gộp thành 1 file hoàn chỉnh ở cuối bài– Tạo template : Quản lý bài viết
1 2 3 4 5 |
<?php /* Template Name: Quản lý bài viết */ ?> |
– Kiểm tra thành viên đã đăng nhập hay chưa nếu đã đăng nhập thì lấy thông tin thành viên hiện tại, nếu chưa sẽ hiện form đăng nhập:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php if(is_user_logged_in()) { $current_user = wp_get_current_user(); $current_user->user_login; $userid = $current_user->ID; ?> // form Quản lý bài viết <?php } else { ?> <div class="formdangnhap"> <?php wp_login_form(); ?> </div> <?php } ?> |
– Tạo Form Quản Lý Bài Viết
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<h4><i class="fa fa-tasks"></i> <?php echo $current_user->display_name; ?> Quản lý bài</h4> <a style="color:#fff;margin:10px 0;" href="<?php bloginfo("url");?>/dang-bai.html" class="btn btn-primary" role="button"><i class="fa fa-pencil"></i> Viết bài</a> <table class="table table-bordered"> <thead> <tr class="vnkings_hd"> <th>Tiêu đề</th> <th>Trạng thái</th> <th>Chỉnh sửa</th> </tr> </thead> <tbody> <?php $vnkings = new WP_Query(array( 'post_status' => array('publish', 'pending'), 'orderby' => 'ID', 'order' => 'DESC', 'author' => $userid, 'paged' => get_query_var('paged'), 'posts_per_page'=> 10)); ?> <?php while ($vnkings->have_posts()) : $vnkings->the_post(); ?> <?php $postid = get_the_ID(); ?> <tr class="vnkings_mn"> <td><a target="_blank" class="vnk1" href="<?php the_permalink() ;?>"><?php the_title() ;?></a></td> <td><span class="vnk2"><?php $stt = get_post_status($postid); if($stt=="publish"){ echo "Đang mở"; } else {echo "Chờ duyệt"; } ?></span></td> <td><a target="_blank" class="vnk3" href="<?php bloginfo('url');?>/sua-bai.html?id=<?php echo $postid;?>"><i class="fa fa-pencil-square-o"></i> Sửa</a></td> </tr> <?php endwhile ; wp_reset_query() ;?> <?php if (function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $vnkings ) ); } ?> </tbody> </table> |
– Giải thích đoạn code trên:
- $userid = $current_user->ID; : lấy ID của thành viên đang đăng nhập
- $vnkings = new WP_Query(array()) : Tạo Query Post
- ‘post_status’ => array(‘publish’, ‘pending’) : Lấy tất cả các bài viết có trạng thái là Publish và Pending
- orderby ID order DESC : Lấy bài viết theo danh sách mới tới cũ
- ‘author’ => $userid : lấy bài viết có tác giả là $userid
- ‘paged’ => get_query_var(‘paged’) : Tạo phân trang
- ‘posts_per_page’=> 10 : lấy 10 bài viết trên 1 trang
- wp_pagenavi : Tạo phân trang cho Query Post $vnkings bên trên
Lưu ý có 1 phần sua-bai.html mình sẽ hướng dẫn cụ thể tạo trang sửa bài viết trong bài tiếp theo
– Tổng kết lại đoạn code trong file quan-ly-bai-viet.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
<?php /* Template Name: Quản lý bài viết */ ?> <div class="vnkings_form col-md-12"> <?php if(is_user_logged_in()) { $current_user = wp_get_current_user(); $current_user->user_login; $userid = $current_user->ID; ?> <h4><i class="fa fa-tasks"></i> <?php echo $current_user->display_name; ?> Quản lý bài</h4> <a style="color:#fff;margin:10px 0;" href="<?php bloginfo("url");?>/dang-bai.html" class="btn btn-primary" role="button"> <i class="fa fa-pencil"></i> Viết bài </a> <table class="table table-bordered"> <thead> <tr class="vnkings_hd"> <th>Tiêu đề</th> <th>Trạng thái</th> <th>Chỉnh sửa</th> </tr> </thead> <tbody> <?php $vnkings = new WP_Query(array( 'post_status' => array('publish', 'pending'), 'orderby' => 'ID', 'order' => 'DESC', 'author' => $userid, 'paged' => get_query_var('paged'), 'posts_per_page'=> 10)); ?> <?php while ($vnkings->have_posts()) : $vnkings->the_post(); ?> <?php $postid = get_the_ID(); ?> <tr class="vnkings_mn"> <td><a target="_blank" class="vnk1" href="<?php the_permalink() ;?>"><?php the_title() ;?></a></td> <td><span class="vnk2"><?php $stt = get_post_status($postid); if($stt=="publish"){ echo "Đang mở"; } else {echo "Chờ duyệt"; } ?></span></td> <td><a target="_blank" class="vnk3" href="<?php bloginfo('url');?>/sua-bai.html?id=<?php echo $postid;?>"><i class="fa fa-pencil-square-o"></i> Sửa</a></td> </tr> <?php endwhile ; wp_reset_query() ;?> </tbody> </table> <?php if (function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $vnkings ) ); } ?> <?php } else { ?> <div class="formdangnhap"> <div class="alert alert-warning"><strong>Bạn</strong> cần đăng nhập để quản lý bài của mình!</div> <?php wp_login_form(); ?> </div> <?php } ?> </div> |
– Cuối cùng là bạn vào Trang quản trị > Trang > Tạo trang > Quản lý bài viết (chọn template là Quản lý bài viết):
Bây giờ bạn vào trang domain/quan-ly-bai-viet thể xem thành quả của mình rồi.
Nếu bạn có điều gì chưa hiểu, xin vui lòng đặt câu hỏi hoặc bình luận ở phía cuối bài.
Chúc các bạn thành công
Nguồn : wordpress.vnkings.com
Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ. Các bạn đi ngang nếu được cho Lâm 1 like và 1 đăng ký kênh Youtube nhé !!