Intereting Posts
Могу ли я юридически удалить кредит из бесплатного плагина на wordpress.org? WordPress конвертирует? page = 2 в / 2 Как я могу сделать свой WordPress общедоступным? Как удалить все помеченные элементы в один конец сложный вопрос о отображаемом изображении Как сделать Домашнее меню (Главная страница) используйте index.php вместо page.php Как подключиться к той же базе данных WordPress с другим пользователем базы данных Календарь событий: страница «События» как домашняя страница Как получить URL-адрес категории из get_the_category? Интеграция API в WordPress Добавление и редактирование пользовательских сообщений без входа в систему Сортировка сообщений по пользовательскому значению поля Панели параметров темы. Каковы некоторые примеры из рамок или премиум-тем? как json_encode (); содержимое Loop, чтобы закодированный массив был Перенос старых правил CMS в WordPress 301?

Исключить категорию из цикла foreach

Как я могу исключить одну категорию из этого цикла, когда я перечисляю проекты своего типа по годам?

<?php foreach(posts_by_year() as $year => $posts) : ?> <h3><?php echo $year; ?></h3> <ul> <?php foreach($posts as $post) : setup_postdata($post); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; ?> <div class="et_pb_column et_pb_column_4_4"><hr class="et_pb_space et_pb_divider"style="border-color: #f7f7f9;"></div> </ul> <?php endforeach; ?> 

обновление, функция:

 function posts_by_year() { // array to use for results $years = array(); // get posts from WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'project', 'post_status' => 'publish', 'category' => -27 )); // loop through posts, populating $years arrays foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // reverse sort by year krsort($years); return $years; } 

Я считаю, что вы используете следующий код из этой ссылки pastebin

 function posts_by_year() { // array to use for results $years = array(); // get posts from WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'my-custom-post-type', 'post_status' => 'publish' )); // loop through posts, populating $years arrays foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // reverse sort by year krsort($years); return $years; } 

Эта функция использует get_posts для возврата списка сообщений. Чтобы исключить категорию, вы можете передать параметр category в свои аргументы. Всего одна заметка

Примечание. Параметром категории должен быть идентификатор категории, а не название категории.

Примечание. Параметр категории может быть разделенным запятыми списком категорий, так как get_posts() передает параметр «category» непосредственно в WP_Query как cat .

РЕДАКТИРОВАТЬ

Обратите внимание, что для исключения категории вам необходимо использовать знак минуса ( - ) перед идентификатором категории. Что-то вроде этого. Просто измените -13 на -ID где ID – это идентификатор категории, которую вы хотите исключить

 function posts_by_year() { // array to use for results $years = array(); // get posts from WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'my-custom-post-type', 'post_status' => 'publish', 'category' => -13 )); // loop through posts, populating $years arrays foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // reverse sort by year krsort($years); return $years; } 

EDIT 2

Скопируйте и вставьте этот код как есть. У вас была синтаксическая ошибка, поэтому вы получили пустую страницу

 function posts_by_year() { // array to use for results $years = array(); // get posts from WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'project', 'post_status' => 'publish', 'category' => -27 )); // loop through posts, populating $years arrays foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // reverse sort by year krsort($years); return $years; } 

ИЗМЕНИТЬ 3

Кажется, что вы используете обычную таксономию. Если это так, используйте tax_query Доступные параметры см. В документе WP_Query . Вам просто нужно добавить имя вашей таксономии в параметр taxonomy

 function posts_by_year() { // array to use for results $years = array(); // get posts from WP $posts = get_posts(array( 'numberposts' => -1, 'orderby' => 'post_date', 'order' => 'ASC', 'post_type' => 'project', 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => 'NAME OF YOUR CUSTOM TAXONOMY', 'field' => 'term_id', 'terms' => '27', 'operator' => 'NOT IN' ), ), )); // loop through posts, populating $years arrays foreach($posts as $post) { $years[date('Y', strtotime($post->post_date))][] = $post; } // reverse sort by year krsort($years); return $years; }