WordPress как на ладони
rgbcode is looking for WordPress developers. eurobyte.ru - мощные сервера с Дата-центрами в Нидерландах и Москве. От 159 ₽/мес.

Вывод постов с помощью WP_Query: запись на текущий пост должна выводиться без ссылки

Хочу вывести нужные посты по ID. Внутри записи должны выводиться ссылки на указанные посты, но запись на текущий пост должна выводиться без ссылки.

К примеру: читать книги нужно в такой последовательности:

  • Том 1 (ссылка на пост)
  • Том 2 (ссылка на пост)
  • Том 3 (текущая запись без ссылки)

Вся загвоздка, чтобы запись в которой находиться пользователь выводилась не ссылкой а просто названием.

Использую для вывода стандартный код WP_Query, но его нужно доработать

 $args = array(
	'post_type' => 'post',
	'orderby' => 'ID',  
	'post__in' =>  array( 4, 52, 49, 59, 56),
);

$query1 = new WP_Query( $args );

// Цикл
if ( $query1->have_posts() ) {
	while ( $query1->have_posts() ) {
		$query1->the_post();
		echo '<li>' . get_the_title() . '</li>';
	}
} else {    
}
wp_reset_postdata();
0
Андрей
6.3 года назад
  • 0
    Kama9744

    В цикле проверяй не текущий ли это пост. Текущий находится в глоб. переменной $post. Будет примерно так:

    $my_posts = get_posts( array(
    	'post_type' => 'post',
    	'include'   =>  array( 4, 52, 49, 59, 56),
    	'orderby'   => 'ID',   
    	//'numberposts' => -1, // не нужен, есть include
    ) );
    
    // есть посты выводим
    if ( $my_posts ) {
    
    	global $post;
    
    	$cur_post = $post; // сохраним текущий пост, потому что ниже переменная будет меняться
    
    	foreach( $my_posts as $post ){
    
    		if( $cur_post->ID == $post->ID ){
    			echo '<li>' . get_the_title() . '</li>';
    		}
    		else {
    			echo '<li><a href="'. get_permalink() .'">' . get_the_title() . '</a></li>';
    		}
    
    	}
    	wp_reset_postdata(); // вернем все переменные обратно
    }
    else {
    	echo 'Постов нет';
    }
    
    Андрей 6.3 года назад

    Спасибо, работает. Как отсортировать посты по IP, которые указываются в массиве?

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация