PenguiN560
Ответы в темах
-
С получением термов разобрался. Глупая ошибка была, стоило только в очередной раз документацию перечитать и заменить ‘child_of’ на ‘parent’
@yube благодарю за замечание, уже удалил данный параметр.
В итоге для вывода только дочерних записей у меня получился такой кусок кода.$term_slug = get_query_var('term'); $taxonomy = get_query_var('taxonomy'); $posts = get_posts( array( 'post_type' => 'catalog', 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $term_slug, 'include_children' => false ) ) ) );
На первый взгляд работает как и задумывалось и без усложнений. Правильно ли я понимаю, что после
foreach( $posts as $post ) : setup_postdata($post);
я могу использовать все возможности цикла, в том числе выводить пагинацию на страницеthe_posts_pagination( $args );
а после мне необходимо вызватьwp_reset_postdata();
?Так же смежный вопрос: есть какая-то большая разница между получением записей используя get_posts и WP_Query? Есть смысл стараться использовать get_posts или отказаться от него в пользу WP_Query?
С выводом термов без вложенных пока больше не экспериментировал, продолжу чуть позже.
- Ответ изменён 4 года, 9 месяцев назад пользователем PenguiN560.
@yube https://wp-kama.ru/function/get_posts/comment-page-2#numberposts-chislo
numberposts(число)
Количество выводимых постов. Установить на 0, чтобы ограничить вывод максимальным числом постов на страницу (устанавливается в настройках ВП) или поставить -1 чтобы убрать ограничения вывода (LIMIT).
По умолчанию: 5То есть хотел задать ограничение согласно настройкам
@qwert555 спасибо за ответ.
Я забыл указать что изначально я совсем не мог получить записи, сейчас удается их получать используя код$posts = get_posts( array( 'numberposts' => 0, 'post_type' => 'catalog', 'suppress_filters' => 0, 'catalog-category' => $term_slug, //вместо названия таксономии в ключе использовал tag - с этим была проблема 'tax_query' => array( 'include_children' => false ) ) );
но к сожалению вложенные записи добавленные во вложенные термы я все так же получаю. Правильно ли я понимаю, что вместо get_posts я могу написать new WP_Query с тем же массивом параметров и в дальнейшем работать как while ( $posts->have_posts() ) : $posts->the_post(); ?
С получением термов без вложенных, пока тоже безрезультатно
- Ответ изменён 4 года, 9 месяцев назад пользователем PenguiN560.