viksnamax
@viksnamax
All-in-One

Как установить текущий пост в WordPress?

У WordpPress есть функция get_next_post(), которая возвращает следующий пост.
Вопрос: что бы вернуть следующий пост WordPress должен знать текущий, как установить этот текущий пост самому, зная ID поста, что бы воспользоваться функцией get_next_post()?
  • Вопрос задан
  • 33 просмотра
Пригласить эксперта
Ответы на вопрос 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Функция get_next_post() работает в цикле the_post(). Для того чтобы установить текущий пост самостоятельно надо создать дополнительный цикл и в нём получить интересующую вас ссылку, например так:

$myid = 999;
$next_post = '';
$previous_post = '';

$args = array('p'=> $myid, 'post_type' => 'any');
$my_posts = new WP_Query($args);
if($my_posts){
	foreach( $my_posts as $post ){
		$next_post = get_next_post_link();
		$previous_post = get_previous_post_link();
	}
}
wp_reset_postdata();


Или так:

$myid = 999;
$next_post = get_around_post ($myid, 'ASC');
$previous_post = get_around_post ($myid, 'DESC');

function get_around_post ($custom_id, $side){
	global $posts;
	$category = get_the_category();
	rsort( $category );
	$cat_add_id = $category[0]->term_id;
	$around_post = '';
	$my_posts = get_posts( array(
		'cat' => $cat_add_id,
		'posts_per_page' => 1,
		'exclude' => $custom_id,
		'order' => $side,
	) );

	if( $my_posts ){
		foreach( $my_posts as $post ){
			$around_post = '<a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a>';
		}
	}
	wp_reset_postdata();
	return $around_post;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы