• fans
  • 1036 reader
  • followers
WordPress – Cắt ngắn post nhiều nội dung
  • Tutorial Details
  • Độ khó: Căn bản
  • Thời gian: 10 phút
  • File size: < 1 MB
  • Yêu cầu: Căn bản Wordpress

Tuy WordPress là một dạng Blog Platform nhưng nó cũng thường được sử dụng như là một CMS. Do vậy đôi khi có những bài post quá dài và bạn muốn phân nó ra làm nhiều trang nhỏ hơn đễ người đọc tiện theo dõi hơn và cũng dễ đọc hơn.

Đây là một tính năng hay nhưng lại ít được biết đến của WordPress, có thể bởi vì ít có post nào dài đến mức mà phải cần phân trang. Nhưng như bạn thấy trên izwebz, loạt bài về jQuery có những post rất dài và làm chậm tốc độ load của trang. Trong bài này chúng ta sẽ học cách phân trang này ra để tạo ra các trang ngắn hơn. Bạn có thể xem ví dụ trước để hiểu chúng ta cần làm cái gì, bạn kéo xuống dưới cùng của post để thấy đoạn phân trang.

Để làm được việc này chính xác hơn, bạn cần chuyển sang chế độ soạn thảo mã HTML thay vì Visual. Sau đó bạn chền đoạn mã sau vào nơi bạn cần phân trang.

<!--nextpage-->

Trước khi bạn có thể xem được kết quả, bạn cần phải chỉnh sửa lại mã nguồn của nó một chút. Bạn hãy mở file single.php và thêm đoạn mã dưới đây vào trong vòng lặp Loop của WordPress.

<?php wp_link_pages(); ?>

Nếu bạn chỉ dùng hàm wp_link_pages() mà không có tham số thì nó sẽ cho ra dạng trang mặc định kiểu như: Pages: 1 2 3. Hoặc bạn cũng có thể thêm các tham số vào để tùy biến cho nó. Những tham số của nó như sau:

<?php $args = array(
    'before'           => '<p>' . __('Pages:'),
    'after'            => '</p>',
    'link_before'      => ,
    'link_after'       => ,
    'next_or_number'   => 'number',
    'nextpagelink'     => __('Next page'),
    'previouspagelink' => __('Previous page'),
    'pagelink'         => '%',
    'more_file'        => ,
    'echo'             => 1 ); ?>

before: (chuỗi) Chữ bạn muốn hiển thị trước các số trang. Mặc định là <p>Pages:
after: Chữ sẽ xuất hiện sau các số trang. Mặc định là </p>.
link_before và link_after: (chuỗi) Các ký tự xuất hiện trước hoặc sau số trang. Có thể bạn muốn các số trang phân cách nhau bằng dấu , hoặc | chẳng hạn.
next_or_number: (chuỗi) Bạn có hai lựa chọn là hiển thị số hoặc hiển thị chữ Next. Giá trị mặc định là number và next.

Ví dụ

Hiển thị số trang với thẻ p bao quanh

<?php wp_link_pages('before=<p><strong>Trang:</strong>&after=</p>&next_or_number=number&pagelink= %'); ?>

Hiển thị dưới dạng Next và Previous

<?php wp_link_pages('next_or_number=next');?>
Tham khảo thêm WordPress Codex

Bạn có thể xem thêm về cách sử dụng hàm này tại trang WordPress Codex

Demon Warlock Website facebook twitter user_email

Tôi được sinh ra ở Việt Nam, nhưng hiện tại đang sống và làm việc tại Mỹ. Ngành tôi học không có liên quan gì đến thiết kế web. Nhưng đây là sở thích từ ngày còn là sinh viên du học, do vậy bây giờ dù cho đang đi làm nhưng tôi vẫn thích dùng thời gian rảnh rỗi của mình để học về thiết kế web. Như các bạn, tôi cũng việc mày mò tự học và khám phá.

  • wordpage

    Mình có mua đĩa của anh. Cho mình hỏi khi cắt chuỗi dùng hàm Excerpt. Nhưng khi xuất ra web nó tự động bao nội dung hiện ra vào thẻ . Làm sao để nó không tự động bao thẻ này vậy anh. Cảm ơn anh

    • wordpage

      thẻ p

  • http://geniusvn.com kienkoi

    Hay quá, tìm mãi giờ mới thấy. Anh cho em hỏi thêm là em muốn xóa cái link continue reading với no comment ấy thì xóa ở đâu nhỉ? Như ở izweb là cái chữ Read More ấy

  • Tai12

    Khi chỉnh sửa lại mã nguồn trong file single.php kết quả là xuất hiện kiểu tùy chỉnh dạng: Trang:1 2 3 và dạng mặc định Pages: 1 2 3, Làm sao để xóa trang mặc định kiểu như: Pages: 1 2 3 trong bài post vậy anh?

  • http://gacon.com gà con

    sao mình chỉ cho cái

    <!--nextpage-->

    vào trong bài post là nó tự phân trang rồi mà không cần phải cho gì vào vòng loop cả. Mình dùng themes eleven

  • http://oto14.host22.com/ xuan vi

    Giúp em với!
    Cái Home của e mới post 2 bài dài là nó hiển thị như dài dằng dặc thế luôn chứ chả biết cắt ngắn như thế nào… Mặc dù đã đọc những điều trên :(
    E muốn nó hiển thị khoảng vài ba dòng rùi làm cái “Read More” thì làm sao!
    Cũng không biết gửi mail cho anh DW… muốn gửi luôn cái themes cho anh fix giùm mà cũng bó tay… Gà quá thì cũng khổ thiệt :(

    em cũng bị hiện tượng như bạn này ,anh nói ky hơn đc không ạ

    thank anh

    • Simle

      Bạn muốn cắt ngắn thì trong phần post chuyển sang chế độ soạn thảo HTML và thêm vào sau phần bạn muốn hiển thị, hoặc trong vòng lặp thay the_content() bằng the_excerpt() ^^

      • Simle

        Bạn muốn cắt ngắn thì trong phần post chuyển sang chế độ soạn thảo HTML và thêm vào sau phần bạn muốn hiển thị, hoặc trong vòng lặp thay the_content() bằng the_excerpt() hì hì

      • http://www.baonailonline.com Tommy

        giờ WP bản mới đều có rồi,mình cũng đang nghiên cứu WP,có gì anh em mình trao đổi

        • Conjuror C

          Thank you very much! Mình củng đang mắc phải vấn đề này, mình củng the_content nó sổ ra một đóng luôn,hic chứ không giống như a DW hướng dẫn,mình tưởng là phải điều chỉnh phần height trong CSS. Mình củng đang nghiên cứu WP có gì anh em trao đổi kinh nghiệm hen…

      • Xidau

        thêm cái gì vào sau phần muốn hiển thị vậy ạ

  • Rubic8x

    Thanks bạn nhìu nhìu nha^^, i like this topic :)

  • http://netitqn.com fantu

    vong lap loop o cho nao vay a d w.a co the chi them ko.thank

    • blueangel

      Vòng lặp loop ở đoạn if(have_posts()):while(have_posts()):the_post(); đó bạn,hjhj

  • Mr Leeseawuyhs

    hàm: get_the_excerpt() trong wordrpess

    Mình có 1 ô textbox: cho phép nhập: 12,14,16,18. Những sô đó là post_id.
    $text = ’12,14,16,18′;

    $str = explode(",", $text); 
    	foreach ($str as $s) {
    		$get_post = get_post($s);
                         if($get_post != null){
                             echo get_the_excerpt($get_post->ID);
                         }
    }
    

    Các post_id tồn tại trong bài viết.
    Hàm: echo get_the_excerpt($get_post->ID) lấy về thông tin của các post giống nhau. nó chỉ lấy nội dung của 1 post.

    Can you help me!

    Thanks

  • http://domainlee.info domainlee

    Bạn ơi. Bạn xem giúp mình
    Ảnh mình chụp. Mình chưa làm việc với file single.php
    Mình không hiểu

    http://nd2.upanh.com/b3.s4.d4/bc3c47616e04181a4416e9737062db09_35558572.sample.png

  • http://domainlee.info domainlee

    File single.php là file gì ạ. Em chưa hiểu. Mong Anh DW reply sớm. Thank’s

    • http://minhman.me Agent M

      File single.php là để hiển thị nội dung đầy đủ của bài viết.
      Ví dụ như ngoài index có cái link, bạn nhấp vào xem nội dung chi tiết, đó chính là bạn đang đứng trên file single.php đó.

  • KytoSai

    Sau khi đã thử add vào một bài viết , và chia khoảng 2 trang .
    Đã bỏ vào trong vòng lập của single.php

    1- Ở trang thứ nhất phần hiển thị danh sách các trang ( tức các số 1,2 ) thì nó tự động bỏ cái danh sách này nằm trong vùng ( nghĩa là đúng với ban đầu là mình đặt trong thẻ này và nằm trong vòng lặp ).

    Nhưng bù lại ban đầu mình đặt nằm ngoài thì giờ nó lại bỏ vào trong ( trong code phần single.php thì phần mình đặt ngaòi cái id footer )

    2- Ở trang thứ hai phần hiển thị danh sách các trang ( tức các số 1,2 ) thì nó tự động bỏ cái danh sách này nằm ngoài vùng

    Còn phần footer nó tự đẩy ra khỏi luôn ( lúc trước mình đặt trong )

    • KytoSai

      Đã giải quyết được rồi, mò cả buổi sáng, hóa ra nguyên nhân là do trong phần bài viết mình thử nghiệm, có một vài div kô hiểu ở đâu ra, phải vào xóa hết mới hiển thị lại bình thường !

  • Bi Luci

    Giúp em với!
    Cái Home của e mới post 2 bài dài là nó hiển thị như dài dằng dặc thế luôn chứ chả biết cắt ngắn như thế nào… Mặc dù đã đọc những điều trên :(
    E muốn nó hiển thị khoảng vài ba dòng rùi làm cái “Read More” thì làm sao!
    Cũng không biết gửi mail cho anh DW… muốn gửi luôn cái themes cho anh fix giùm mà cũng bó tay… Gà quá thì cũng khổ thiệt :(

    • quasimodo

      Cái đấy anh ấy nói rồi mà: thêm vào dưới phần mà bạn muổn hiện nó ra

  • Khánh

    Ngoài ra em xin bổ sung mấy cách nữa đọc ở trong sách mà mỗi lần post bài nó sẽ tự động chèn code này vào cho mình, đó là chèn code wp_page vào post.php hoặc chèn code vào file quicktags.dev.js

  • Khánh

    em muốn làm một post tương tự mà click vào một link post sẽ hiện ra một bản dịch tiếng nước ngoài, anh biết phải làm thế nào không ạ?

  • http://webdanang.tk anhduongqn

    cái này mò càng lâu càng ghiền …mã nguồn mở

  • http://webdanang.tk anhduongqn

    Hay quá ..cái này mò lâu càng thấy ghiền …

  • http://ducrom.net keyduc

    cảm ơn nha cái này đang rất cần

  • http://tobestyle.com Kim Huynh

    Anh ơi, cho em hỏi 1 vấn đề ngoài bài viết chút! Em làm wordpress site nhưng khi cắt site ra thành header – sidebar- footer và nối nó lại bằng lệnh get_… thì khi mở web lên thì trang em lại bị vỡ(cụ thể là ở trên đỉnh trang bị đẩy xuống 1 khoảng trống chừng 50px) – mở bên IE9 thì bị tương tự lại thêm hiện tượng cả trang bị đổ sang trái hết. Anh giải đáp giúp em,cảm ơn anh nhiều nhiều !

    • http://www.themetiger.com Nguyen Duc

      Khi ghép vào mã HTML không khớp vậy thôi chứ chẳng có lý do gì hết, em check lại xem có bị trùng hoặc thiếu thẻ (tag) gì ko.

      • http://tobestyle.com Kim Huynh

        em kiểm tra lại rồi nhưng ko hề thiếu thẻ gì cả. Hiện tượng này xảy ra với hầu hết các thẻ template tag wordpress em đưa vào. Cứ đưa vào là bị như vậy. :(

        • http://www.themetiger.com Nguyen Duc

          Em có thể đưa đoạn mã của trang em chưa chia ra và đoạn mã em đã chia ra, a nghĩ a sẽ tìm thấy lỗi cho em.

  • http://heokon.net minhtuan

    Sao e làm hoài mà ko phân trang đc anh nhỉ..
    E mở file single.php và chèn vào cuối trang mà ko được…

    trong bài post e có chèn đoạn code nhưng cũng ko thấy gì thay đổi cả chí những text phía sau thì ko hiển thị..
    Mong anh và các mem giúp e với nhé..
    Thanks…

    • http://www.izwebz.com Demon Warlock

      Em phải thêm đoạn code đó vào trong vòng lặp Loop. Nó không hoạt động ở ngoài vòng Loop.

  • Cthieud7

    Anh Demon bao giờ đưa sách ra cho ng dùng thì post lên nhé em đang chờ cuốn sách này lém

  • http://www.izwebz.com Demon Warlock

    Đã hết chưa quý dzi :-? ? vừa fix rồi đó.

    • http://www.kaylaximuoi.com kaylaximuoi

      Sự thiệt là đã ổn, nhưng cho font lớn tí xíu nhìn cho máu lửa đi wyn. Àh, anh vừa cài plugin emotion gì dzạ, share cho mụi zới…keke… ;))

    • http://www.kaylaximuoi.com kaylaximuoi

      Mụi đã update được emotions rồi, có bổ sung dùm wyn icon smile :) rồi đó. Thanks b-)

  • kimsangyoo

    Em tưởng có mỗi em bị thui, ai dè chị xí muội cũng bị ư?
    Tình hình là nhìn nó kì làm sao ấy anh DW

  • http://www.kaylaximuoi.com kaylaximuoi

    ủa, sao dạo này chữ trên tiêu đề phải dang dang cách cách vậy anh đimần oa cờ lóc!!? :D

    anyway, thanks anh về bài viết này nhé ;-)

Newbie

Các series nên xem trên izwebz cho newbie

Khi vào izwebz chắc nhiều bạn cho rằng các bài viết trên izwebz đều không có hệ thống gì cả? Thực chất, các bài biết đều đi theo một series của riêng nó, ví dụ như PHP, HTML & CSS, PSD2HTML, Photoshop, illustrator,… Trong bài viết này, mình sẽ tổng hợp lại các series bài viết cần thiết cho một newbie.

Izwebz facebook group

Social connect

Recent Comments

Archives