WordPress как на ладони
rgbcode is looking for WordPress developers.

ACF. Объект записи внутри повторителя, вывести категорию записи.

Сделал вывод объекта записи внутри повторителя, сейчас стоит задача вывести категорию (term) записи рядом с самой записью.

Использовал такой код:

<?php
$terms = get_the_terms( get_the_ID(), 'cat_rbp' );
if( is_array( $terms ) ) : ?>
  <ul>
	<?php foreach( $terms as $term ) : ?>
	  <li>
		<a href="<?php echo esc_url( get_term_link( $term->term_id, $term->taxonomy ) ); ?>"><?php echo esc_html( $term->name ); ?></a>
	  </li>
	<?php endforeach; ?>
  </ul>
<?php endif; ?>

Ничего не выводится, print_r результатов тоже не дает, не могу зацепиться за пост чтоб вытащить его категорию.

$post не возвращает название таксономии, уже голову сломал как эту казалось бы простую вещь реализовать, код вместе с повторителем и объектом записи внутри повторителя такой:

  <?php if( have_rows('block_biblio') ): ?>

					<?php while( have_rows('block_biblio') ): the_row(); ?>
						<?php $article_mitarbeiter = get_sub_field( 'objectssbio' ); ?>
						<?php global $post; ?>

			<div class="block-width-wp-bibliografiya">
				<div class="cat-bibliografiya">
					<h4><?php the_sub_field('date_biobio'); ?></h4>
				</div>
						<?php if ( $article_mitarbeiter ) : ?>
							<?php $post = $article_mitarbeiter; ?>
							<?php setup_postdata( $post ); $loop = 0;?>

							<div class="flex-bibliografiya">

							<?php foreach ($post as $item) {?>

								<?php
								$loop ++;

								if ( $loop == 1 ) {
									echo '<div class="block-bgb">';
								}
								?>
									<div class="type-bibiliografiya">
										<?php
										$terms = get_the_terms( get_the_ID(), 'cat_rbp' );
										if( is_array( $terms ) ) : ?>
											<ul>
												<?php foreach( $terms as $term ) : ?>
													<li>
														<a href="<?php echo esc_url( get_term_link( $term->term_id, $term->taxonomy ) ); ?>"><?php echo esc_html( $term->name ); ?></a>
													</li>
												<?php endforeach; ?>
											</ul>
										<?php endif; ?>

									</div>
									<div class="title-bibliografiya">
										<a href="<?php echo $item->post_name;?>"> <?php echo $item->post_title;?> </a>
									</div>
								<?php if ( $loop == 3 ) {
									echo "</div>";
									$loop = 0;
								}
								?>
							<?php   } ?>
							</div>
							</div>

					<?php wp_reset_postdata(); ?>
					<?php endif; ?>
					<?php endwhile; ?>
					</div>
				<?php else : ?>
				<?php endif; ?>
0
abumuslim
1.6 года назад
  • 2
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    что вы творите?
    Что находится в переменной $post ?
    Массив???

    Если вы делате такое

    setup_postdata( $post );

    то как тогда там может быть массив???

    Ответ на вопрос:

    если $post - это массив, то чтоб тогда ваш код нужно поправить на

    $terms = get_the_terms( $item->ID, 'cat_rbp' );

    Но нужно убедиться, что в $item - это обьект поста.
    А для этого print_r()

    сделайте $post - чтоб понимать, что в нем - массив или нет.

    abumuslim 1.5 года назад

    Спасибо за помощь. setup_postdata( $post ); из примера самого acf был взят, пост это массив. Спасибо еще раз за помощь

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