web-dev-qa-db-ja.com

next_post_linkを取得することは可能ですか

Next_post_link()関数を使用しているときに問題が発生しました。この関数は自動的にエコーしているように見えます。ポジション上の理由から、リンクを返すためにはこれが必要です。この結果を得るために使用できる機能または回避策はありますか?

9
GaryDevenay

http://codex.wordpress.org/Function_Reference/get_adjacent_post ;で作業してみてください。

例:

$next_post_link_url = get_permalink( get_adjacent_post(false,'',false)->ID ); 
$prev_post_link_url = get_permalink( get_adjacent_post(false,'',true)->ID );
15
Michael

ソースを見てみると、next_post_linkadjacent_post_linkのラッパーです。

残念ながら、この関数は 'echo'パラメータの形式をとらないので、あなた自身の関数のコードを複製してその値を返すか、あるいは出力バッファでそれをキャッチする必要があります。

ob_start();
next_post_link();
$next_post_link = ob_get_clean();
2
TheDeadMedic

実のところそうです、同じ引数を使ってget_next_posts_link()を使うだけです。

next_posts_lin()関数は単にget_next_posts_link()の戻り値をエコーバックします。

_編集_

Erm、決して気にしないでください。関数名を読み間違えました。

Postオブジェクトを返すget_next_post()を使うことができます。その後、返されたIDオブジェクトパラメータからパーマリンクを取得できます。

$nextpost = `get_next_post( $args )`;
$nextpostid = $nextpost->ID;
$nextpostlink = get_permalink( $nextpostid );
1
Chip Bennett