Intereting Posts
WordPress 3.1.2. Сеть включена не-www для www Получить URL темы без результата печати Получить идентификатор из базы данных Как отозвать другое название на страницу, если оно открыто на мобильном телефоне Android Функция для получения URL исходного загруженного изображения – полный размер Атрибуты по умолчанию в Shortcode не работают Как переписать URI пользовательского типа сообщения? Какие проблемы безопасности следует учитывать при настройке FS_METHOD на «direct» в wp-config? Отправка сообщения в базу данных, затем перенаправление на paypal Список последних сообщений с минимальными комментариями в WP-Admin Скрыть текст, если флажок установлен в customizer? Как заставить WordPress запускать мероприятие каждый день? Удалите ссылку wp-login из автоматически созданного сообщения WordPress Может ли wp-cli отображать всех пользователей и их роли на всех сайтах в многопользовательском экземпляре? WP_Query и проблема полиланга

исключая текущий пост из get_posts

У меня есть этот код кода, отображаемый в шаблоне single.php

<ul class="cat-wrap"> <?php global $post; $categories = get_the_category(); foreach ($categories as $category) : ?> <h5>same from <?php echo $category->name; ?></h5> <?php $args = array( 'numberposts' => 5, 'category' => $category->term_id, 'post__not_in' => array( $post->ID ) ); $posts = get_posts($args); foreach($posts as $post) : ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> <li><a href="<?php echo get_category_link($category->term_id);?>" title="View all posts filed under <?php echo $category->name; ?>">جميع مقالات قسم <?php echo $category->name; ?></a></li> <?php endforeach; ?> </ul> 

цикл работает отлично, за исключением 'post__not_in' => array( $post->ID ) ведет себя странным образом. чтобы объяснить больше, если у меня есть должность, которая разделяет 4 разных категории. сгенерированный код следующий

 <ul> <h5>same from Cat1</h5> <li>another article 1</li> <li>another article 2</li> <li>another article 3</li> <li>another article 4</li> <h5>same from Cat2</h5> <li>Current Article</li> <li>another article 1</li> <li>another article 2</li> <li>another article 3</li> <h5>same from Cat3</h5> <li>Current Article</li> <li>another article 1</li> <li>another article 2</li> <li>another article 3</li> <h5>same from Cat4</h5> <li>Current Article</li> <li>another article 1</li> <li>another article 2</li> <li>another article 3</li> 

как вы можете заметить только <h5>same from Cat1</h5> что исключает текущую запись, остальные включают в себя и исключая какую-либо другую случайную запись.

спасибо заранее, и я надеюсь, что мне удалось объяснить мою проблему.

Solutions Collecting From Web of "исключая текущий пост из get_posts"

Вы переписываете значение $post при выводе первого набора сообщений, поэтому он больше не тот же пост-объект, что и ваш единственный пост.

Вы можете либо wp_reset_postdata() после каждого цикла (который вы должны делать после последнего в любом случае), либо назначить $post->ID для какого-либо другого var перед циклом, а вместо этого ссылаться, чтобы он не перезаписывался.