Hãy đăng ký thành viên để có thể dễ dàng trao đổi, giao lưu và chia sẻ về kiến thức đồ họa.
  1. Hãy đăng ký subscribe kênh Youtube mới của Việt Designer tại địa chỉ: Youtube.com/VietDesignerChannel để theo dõi các video về thiết kế đồ họa. Do trước đó kênh cũ bị Youtube quét không rõ lý do, trong thời gian chờ kháng cáo nếu các bạn thấy video trên diễn đàn bị die không xem được thì có thể vào kênh mới để tìm xem video sơ cua nhé.
    Loại bỏ thông báo

Hướng dẫn đặt 1 bài viết (post) lên trang chủ trong wordpress

Chủ đề thuộc danh mục 'Hướng dẫn/thủ thuật dành cho Wordpress tại đây' được đăng bởi banbaonylong, 25/3/14.

Lượt xem: 15,275

  1. banbaonylong Ko phải assmin

    Bài viêt về blogger xem ở đây.

    Wordpress có lợi thế hơn blogger ở chỗ bạn chỉnh sửa cái gì cũng đc, mọi thứ đều có thể "đập đi" và tự viết lại \m/. Để đơn giản, mình sử dụng theme cơ bản Twenty Twelve (các bạn down ở đây).

    Mọi hàm wordpress các bạn có thể xem chi tiết ở đây. Bạn nào không biết tí gì về PHP thì xin lỗi, mình ko giúp j đc :).

    Đây là cách đầu tiên: bạn sẽ get bài viết từ một category riêng và show lên trang chủ.

    B1: Có cái theme đang chạy, bạn xài ftp down file index.php nằm trong thư mục /wp-content/themes/<theme của bạn>/

    B2:
    Bạn tạo một thư mục (lấy tên Trang chủ chẳng hạn).

    B3: lấy ID của category Trang chủ
    [​IMG]

    Bạn rê chuột vào chỗ edit, nhìn theo cái link và chú ý con số nằm sau chữ tag_id, đó chính là ID của category Trang chủ

    B4: Chỉnh sửa file index.php vừa down. Mình khuyến cáo hãy sử dụng Notepad++ (có thể down ở đây)

    [​IMG]
    Del sạch toàn bộ phần có trong hình.

    B5: Thay code

    [​IMG]

    Giải thích từng dòng:
    1. wp_reset_query(); reset query cũ (thông thường nên có hàm này đặt ngay đầu)
    2. $args = array('cat'=>17, 'orderby' => 'post_date', 'order' => 'DESC','post_status' => 'publish'); 17 chính là ID của category Trang chủ , orderby nghĩa là sắp xếp bài viết theo ngày tháng (post_date) từ mới nhất trước (DESC) và chỉ hiện post đã đăng (post nháp / ẩn ko hiện) (publish)
    3. query_posts($args); lấy bài viết đó ra...
    4. if (have_posts()) : while (have_posts()) : the_post(); ?> nếu có bài viết
    5. Từ đây, các bạn tự thay đổi cho phù hợp cấu trúc make-up HTML/CSS, các bạn chỉ cần lưu ý: <?php the_title(); ?> hàm lấy chủ đề bài viết, <?php the_content();?> hàm lấy nội dung bài viết, <?php edit_post_link('edit', '<p>', '</p>'); ?> hàm lấy link chỉnh sửa (dành cho admin)
    6. <?php endwhile; else: ?> kết thúc việc lấy bài viết. Nếu ko có bài viết thì sẽ hiển thị chữ No Posts Sorry


    Cách khác: Lấy bài viết theo ID của chính bài viết đó!

    Bước 1, 2, 4 y chang bài trên

    B3: Lấy id bài viết bạn muốn. Bạn vào phân chỉn hsửa bài viết đó, ngó lên cái link trên thanh địa chỉ
    [​IMG]

    Con số đó chính là ID bài viết bạn cần.

    B5: Thay code
    [​IMG]

    Tùy theo layout của bạn ra sao mà bạn nhét các nội dung sau
    1. <?php echo $custompost->post_title; ?>
    2. <?php echo $custompost->post_date; ?>
    3. <?php echo $custompost->post_content; ?>
    4. <?php echo $custompost->guid; ?>
    vào đúng chỗ cho phù hợp :D

    ...
    Chỉnh sửa lần cuối: 25/3/14
    Chất PC, Đại Trần, Phạm Hữu Dư1 người khác thích bài viết này.
  2. huynhtoan.it

    huynhtoan.it Thành viên cấp 2

    Chờ mãi mới hiện được nút thích vì nó ẩn sau cái mảng trắng khó chịu quá
  3. Đại Trần

    Đại Trần Thành viên cấp 2

    Tuy nhiên có cái khổ thế này.
    Ví dụ content có cấu trúc như sau
    TITLE
    This is content 1
    This is content 2
    This is content 3

    Sau khi show ra theo hàm post_content; thì nó format thế lày:

    TITLEthis is content1This is content 2This is content3

    Mình đã có gắng nhét </br> vào trong bài viết dạng "text" và vẫn k khả quan. Kì lạ nhắm :D
    Cuối cùng mình phải làm kiểu list. Sau đó viết Css lại cho .class ul li {list-type:none;} để nó xuống dòng gọn gàng :(
    Có ai có cách nào nó đúng format của nó không.
    Mình đang gặp rắc rối khi sử dụng them twentytwentyfour :(
  4. banbaonylong

    banbaonylong Ko phải assmin

    public trang đó rùi dẫn link để sửa css :D
    Đại Trần thích bài viết này
  5. Đại Trần

    Đại Trần Thành viên cấp 2

    anh banbaonylong giúp em cái này với. Em chỉ mày mò tự học, không qua đào tạo nên mạn phép anh cứ giúp em ngu ra chút.
    Em đính chính cái theme em đang sử nó tên là: twentyfourteen
    Trong Theme/index. Có nội dung show tất cả content như này:

    Code:
    <div id="primary" class="content-area">
         <div id="content" class="site-content" role="main">
         < ?php
           if ( have_posts() ) :
             // Start the Loop.
             while ( have_posts() ) : the_post();
               get_template_part( 'content', get_post_format() );
             endwhile;
             // Previous/next post navigation.
             twentyfourteen_paging_nav();
           else :
             // If no content, include the "No posts found" template.
             get_template_part( 'content', 'none' );
           endif;
         ?>
         </div><!-- #content -->
       </div><!-- #primary -->
    
    Như vậy hàm ktra have_posts() và the_post() đã làm đúng nhiệm vụ của mình là thông báo có bài viết và để vòng lặp while thực hiện chạy show tất cả bài viết ra, cơ mà nó lại gọi cái hàm get_template_part( 'content', get_post_format() ); ra để truy vấn và định dạng bài viết đúng không anh?
    Và cái em thắc mắc là, giờ làm sao cho nó hiện 1 bài theo ID mà thôi. Em nghĩ cái hàm này nó truy vấn, rồi định dạng, rồi show ra. Nhưng em search cái function get_template_part để sửa "thay vì truy vấn cả thì truy vấn 1 ID nào đó" thôi, hoặc em clone thành 1 function mới để lôi ra 1 ID và bỏ cái While đi, cơ mà em tìm vào trong nhìn cũng không thấy cái chỗ nào nó Select sê liếc gì cả :( Có phải em ngu quá mức cho phép không :(

    Còn nếu sử dụng WP_Query hoặc get_post(id) thì lấy được tụi nó ra rồi, cơ mà nó lại dính lỗi trên kia. Sửa CSS thì em làm được, nhưng sao nội dung của nó "không chịu xuống hàng" mà chơi 1 hàng dài thế kia mới đau chứ.
    Em vào database xem content, thì rõ ràng mỗi 1 dòng nó không thể hiện kiểu <p> dòng 1 </p> <p> dòng 2</p>. Thế mà họ định dạng được hay nhỉ? :( Anh có lời khuyên nào cho em mở mắt với !
  6. banbaonylong

    banbaonylong Ko phải assmin

    PHP:
    if ( have_posts() ) :
    // Start the Loop.
    while ( have_posts() ) : the_post();
    $post_id get_the_ID();
    if(
    $post_id==4444444) {
    get_template_part'content'get_post_format() );
    }
    endwhile;
    else :
    // If no content, include the "No posts found" template.
    get_template_part'content''none' );
    endif;
    get cái ID của bài viết muốn hiển thị, trong vòng lặp, nếu id cần thì nó sẽ render ra, ko phải thì nó ko làm j hết
    Đại Trần thích bài viết này
  7. Đại Trần

    Đại Trần Thành viên cấp 2

    Em cam on anh nhe. Em thay no phai chay het vong while luon. Nhu vay se ton tai nguyen lam. So luong bai viet it thi cach nay OK roi. Tam thoi the da
    hehe. Cam on a banbaonylong nhe
  8. banbaonylong

    banbaonylong Ko phải assmin

    Tối ưu hoá: bạn có thể dùng code sau để có content format
    get post theo id thì rõ rùi hen, sau đó
    PHP:
    apply_filters('the_content'$post->post_content);
    Đại Trần thích bài viết này
  9. Đại Trần

    Đại Trần Thành viên cấp 2

    Em làm thế này không biết có sai quy trình như anh banbaonylong chỉ không nữa

    PHP:
    <?php
            $post 
    get_post(62);
            
    $content apply_filters('the_content'$post->post_content);
            echo 
    $content;
                
    ?>
  10. banbaonylong

    banbaonylong Ko phải assmin

    chắc chạy đc mà :D, ko thì echo cái apply_filters luôn
    Đại Trần thích bài viết này
  11. Đại Trần

    Đại Trần Thành viên cấp 2

    Nó chạy được ok anh banbaonylong.
    Em cũng thử echo apply_filters kết quả cũng giống vậy, hàm này chắc là hàm định dạng string thôi. Trên codex.wp nó cũng hướng dẫn cụ thể mấy cái khác. Cám ơn anh nhé
  12. hic.... không hiểu lắm, mình đang muốn các bài viết trên trang chủ chỉ hiển thị những bài ở 1 chuyên mục nào đó thì làm sao hả mọi người :(
  13. banbaonylong

    banbaonylong Ko phải assmin

    Ghi Xóa Đè bạn thấy bước 5 ko, kiếm cái ID của category bạn muốn thay vào số 17
  14. PHAMTHEANH011

    PHAMTHEANH011 Mới đăng kí

    bạn ơi cho mình hỏi là nếu hiển thị post ra trang không phải trang index.php trong theme thì mình làm thế nào thank
  15. tuevass

    tuevass Mới đăng kí

    bài viết rất hữu ích, cám ơn bạn nhiều
  16. Sì ke

    Sì ke Mới đăng kí

    Sao ko thấy hình thế ad ơi :(:(

Ủng hộ diễn đàn