2012-07-07 46 views
7

Đó là về chế độ xem của một bài đăng. Tôi đang cố gắng để thiết lập các liên kết cho blogposts trước và tiếp theo như cách này:cách nhận bài đăng và tiêu đề bài đăng tiếp theo/trước trong wordpress

<a class="prevpost" href="linktoprevpost" title="prev post's title">&nbsp;</a> 
<a class="nextpost" href="linktonextpost" title="next post's title">&nbsp;</a> 

nơi cả hai liên kết có được một hình ảnh làm nền bằng cách sử dụng display: block và chiều rộng quy định và chiều cao. Tiêu đề của các bài đăng được liên kết sẽ có thể truy cập được thông qua thuộc tính tiêu đề của các thẻ, để người dùng có thể xem chúng bằng cách di chuột qua.
Tôi cũng muốn giới hạn các bài đăng được liên kết trên danh mục hiện tại. Vì vậy, tôi cần phải tìm một cách để có được

  1. một một-tag với href của trước/sau bài
  2. đó là trong cùng hạng với một hiện đã được xem
  3. mà không cần văn bản bên trong vì các backgroundimage
  4. với/tiếp theo bài trước đây tên trong tiêu đề thuộc tính
  5. với một tùy chỉnh css-class


Kết hợp danh mục cần phải là cấp độ đầu tiên bởi vì tôi đã chia trang của tôi thành 3 danh mục chính. Tôi đang sử dụng

$a = get_the_category(get_the_ID()); 
$cat = $a[0]->name; 

để lấy tên của danh mục đầu tiên và đặt làm lớp cơ thể bổ sung trong header.php. Có lẽ tôi có thể tái sử dụng điều đó?

Tôi cũng phát hiện ra rằng việc sử dụng previous_post_link() và next_post_link() giống như cách này

next_post_link('%link', '', TRUE); 

mang lại cho tôi những bài viết cùng loại không có nội dung bên trong, vì vậy 1 3 sẽ được giải quyết. Nhưng có vẻ như, để có được 4 & 5 tôi cũng sẽ cần một cách khác.

Sử dụng phiên bản Wordpress 3.4.1.

+0

Xem thêm http://wordpress.stackexchange.co m/câu hỏi/57831/get-the-prev-next-page-links-only-không-title-a-etc – fuxia

+0

Đó là về trang trước, không đăng bài và tôi không thể tìm thấy kết quả phù hợp với 5 điểm của tôi liệt kê ở trên. – 32bitfloat

Trả lời

24

Không cần cho các chức năng và lọc tất cả các bạn cần làm là sử dụng get_adjacent_post thay vì next_post_linkprev_post_link, Lưu ý rằng get_adjacent_post được sử dụng để có được bài trước và tiếp theo, bạn có thể đọc về nó here Để có được bài trước và nó thuộc tính tiêu đề sử dụng này

$prev_post = get_adjacent_post(false, '', true); 
if(!empty($prev_post)) { 
echo '<a href="' . get_permalink($prev_post->ID) . '" title="' . $prev_post->post_title . '">' . $prev_post->post_title . '</a>'; } 

Để có được bài tiếp theo và đó là tiêu đề thuộc tính sử dụng này

$next_post = get_adjacent_post(false, '', false); 
if(!empty($next_post)) { 
echo '<a href="' . get_permalink($next_post->ID) . '" title="' . $next_post->post_title . '">' . $next_post->post_title . '</a>'; } 
+0

Điều này đã lưu ass của tôi. Cảm ơn bạn rất nhiều – Christina

-2
<? 
echo '<a href="'.get_permalink(get_the_ID()-1).'" title="'.get_the_title(get_the_ID()-1).'">Previous</a>'; 
echo '<a href="'.get_permalink(get_the_ID()+1).'" title="'.get_the_title(get_the_ID()-1).'">Next</a>'; 

?> 
+2

cảm ơn câu trả lời của bạn nhưng tôi đoán tôi không thể đi thẳng dọc theo ID bài đăng nếu tôi muốn giới hạn các bài đăng được liên kết trên danh mục chính hiện tại. Có thể là ID tiếp theo sẽ trả lại bài đăng của một danh mục khác. – 32bitfloat

+0

Không dễ dàng. Bạn có thể sử dụng câu lệnh if để xem liệu có trang tiếp theo hay nếu có trang trước – maxhud

+6

cộng và trừ 1 từ ID chắc chắn không phải là cách đáng tin cậy để nhận bài đăng tiếp theo và trước đó. – jessica

1

OK.

Bây giờ đây là mã của tôi:

$p = get_adjacent_post(1, '', 1); 
if(!empty($p)) echo '<a class="prevpost" href="'.$p->guid.'" title="'.$p->post_title.'">&nbsp</a>'; 
$n = get_adjacent_post(1, '', 0); 
if(!empty($n)) echo '<a class="nextpost" href="'.$n->guid.'" title="'.$n->post_title.'">&nbsp</a>'; 

Hàm này trả về một đối tượng của prev/bài tiếp theo mà tôi có thể sử dụng để tạo ra các liên kết của tôi. Tham số đầu tiên là để hạn chế bài đăng trên cùng một con mèo.
Tôi đã tìm kiếm trong codex wordpress vài lần ngày hôm qua nhưng không gặp phải chức năng này, bây giờ tình cờ gặp phải nó.

Nếu ai đó có phương thức tốt hơn/đơn giản/nhanh hơn, vui lòng đăng để nhận câu trả lời được chấp nhận.

+1

không sử dụng guid làm liên kết bài đăng, nó không được cập nhật khi các bài đăng thay đổi hoặc nếu bạn chuyển sang tên miền mới, v.v. sử dụng 'get_permalink ($ post-> ID)' thay vào đó, vì sẽ luôn cung cấp cho bạn liên kết chính xác. – jessica

+0

Điều này rất hữu ích .. – sun

Các vấn đề liên quan