czy można uzyskać link next_post_link

9

Natknąłem się na problem podczas korzystania z funkcji next_post_link (). Wygląda na to, że ta funkcja automatycznie echa, z powodów pozycji potrzebuję tego, aby tylko zwrócić link. Czy jest jakaś dostępna funkcja lub obejście, którego można użyć do osiągnięcia tego wyniku?

GaryDevenay
źródło

Odpowiedzi:

17

spróbuj pracować z http://codex.wordpress.org/Function_Reference/get_adjacent_post ;

przykład:

$next_post_link_url = get_permalink( get_adjacent_post(false,'',false)->ID ); 
$prev_post_link_url = get_permalink( get_adjacent_post(false,'',true)->ID );
Michał
źródło
1
Pamiętaj, że otrzyma tylko sąsiedni adres URL - będziesz musiał wygenerować HTML tak jak next_post_linkTy.
TheDeadMedic
2

Jeśli spojrzysz na źródło, next_post_linkto tylko opakowanie adjacent_post_link.

Niestety, ta funkcja nie przyjmuje żadnej formy parametru „echo”, więc musisz albo zreplikować kod we własnej funkcji i zwrócić wartość, albo złapać ją w buforze wyjściowym;

ob_start();
next_post_link();
$next_post_link = ob_get_clean();
TheDeadMedic
źródło
1

Właściwie tak: po prostu użyj get_next_posts_link(), używając tych samych argumentów.

next_posts_lin()Funkcja po prostu echa wracającego wartość get_next_posts_link().

EDYTOWAĆ

Eee, nieważne. Źle odczytałem nazwę funkcji.

Możesz użyć get_next_post(), który zwraca obiekt postu; to możesz uzyskać bezpośredni link z parametru zwróconego obiektu ID:

$nextpost = `get_next_post( $args )`;
$nextpostid = $nextpost->ID;
$nextpostlink = get_permalink( $nextpostid );
Chip Bennett
źródło