é possível obter o next_post_link

9

Encontrei um problema ao usar a função next_post_link (). Parece que esta função ecoa automaticamente, por motivos de posição, preciso que apenas retorne o link. Existe alguma função ou solução disponível que eu possa usar para alcançar esse resultado?

GaryDevenay
fonte

Respostas:

17

tente trabalhar com http://codex.wordpress.org/Function_Reference/get_adjacent_post ;

exemplo:

$next_post_link_url = get_permalink( get_adjacent_post(false,'',false)->ID ); 
$prev_post_link_url = get_permalink( get_adjacent_post(false,'',true)->ID );
Michael
fonte
11
Lembre-se de que isso só obterá o URL adjacente - você precisará gerar o HTML como next_post_linkvocê mesmo.
TheDeadMedic
2

Se você der uma olhada na fonte, next_post_linké apenas um invólucro adjacent_post_link.

Infelizmente, essa função não assume nenhuma forma de parâmetro 'echo'; portanto, você precisará replicar o código em sua própria função e retornar o valor ou capturá-lo em um buffer de saída;

ob_start();
next_post_link();
$next_post_link = ob_get_clean();
TheDeadMedic
fonte
1

Na verdade, sim: basta usar get_next_posts_link(), usando os mesmos argumentos.

A next_posts_lin()função simplesmente ecoa o valor retornado de get_next_posts_link().

EDITAR

Erm, deixa pra lá. Eu li mal o nome da função.

Você poderia usar get_next_post(), que retorna um objeto de postagem; você pode obter o link permanente do parâmetro do objeto de ID retornado:

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