Можно ли использовать поле post_object
внутри пользовательского wp_query
? Я создал шаблон для перечисления всех сообщений в блоге и получения различного контента, получая post_format. В одном из форматов я хочу получить post_object
из типа пользовательской записи, который я создал. То, с чем я борюсь, это получение значений полей ACF из этого поста, даже если я передаю второй параметр (ID) в the_field()
, он всегда дает мне запасной вариант, например, для даты, она всегда показывает мне сегодняшнюю дату.
Вот код запроса:
$args = array(
'post_type' => 'post',
'post_status' => 'publish'
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) :
while ( $loop->have_posts() ) : $loop->the_post();
?>
<?php get_template_part( 'template-parts/content', get_post_format() ); ?>
<?php
endwhile;
wp_reset_postdata(); ?>
<?php else : ?>
<p><?php esc_html_e( 'There is no post to display' ); ?></p>
<?php endif; ?>
В php
файле формата ссылки Я проверяю, проверяет ли пользователь, что он хочет загрузить сообщение из CPT или ввести информацию вручную. Как видите, поля HTML
и ACF одинаковы, просто если пользователь проверяет это поле, весь контент загружается из CPT
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<a href="<?php echo get_permalink(); ?>">
<h4><strong><?php the_title(); ?></strong></h4>
</a>
<?php
if ( get_field( 'dafed_promo' ) == 1 ) :
$post_object = get_field( 'choose_dafed' );
if ( $post_object ):
$post = $post_object;
setup_postdata( $post ); ?>
<?php if ( have_rows( 'event_details' ) ) : ?>
<?php while ( have_rows( 'event_details' ) ) : the_row(); ?>
<div class="event-info">
<p></p>
<?php // Load field value and convert to numeric timestamp.
$unixtimestampdafed = strtotime( get_sub_field( 'event_time_and_date' ) );
?>
<div class="date">
<div class="month"> <?php echo date_i18n( "M", $unixtimestampdafed ); ?></div>
<div class="number"><?php echo date_i18n( "d", $unixtimestampdafed ); ?></div>
</div>
<p>
<strong>Vreme: </strong> <?php the_sub_field( 'event_time' ); ?><br>
<strong>Lokacija: </strong><?php the_sub_field( 'event_location' ); ?><br>
<strong>Organizator: </strong> <?php the_sub_field( 'event_organizer' ); ?>
</p>
</div>
<span class="path"><strong><a>
<?php echo get_the_author(); ?></a></strong> / <?php echo get_the_date(); ?>/
<strong>
<?php
$post_id = get_the_ID();
$post_categories = get_the_category( $post_id );
foreach ($post_categories as $category) {
echo '<a class="category-name">' . $category->cat_name . '</a> ';
}
?>
</strong>
</span>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php endif; ?>
<a href="<?php echo get_permalink(); ?>" class="btn btn-border">Pročitaj više</a>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
<?php else : ?>
<?php if ( have_rows( 'event_details' ) ) : ?>
<?php while ( have_rows( 'event_details' ) ) : the_row(); ?>
<div class="event-info">
<p></p>
<?php // Load field value and convert to numeric timestamp.
$unixtimestamp = strtotime( get_sub_field( 'event_time_and_date' ) );
?>
<div class="date">
<div class="month"> <?php echo date_i18n( "M", $unixtimestamp ); ?></div>
<div class="number"><?php echo date_i18n( "d", $unixtimestamp ); ?></div>
</div>
<p>
<strong>Vreme: </strong> <?php the_sub_field( 'event_time' ); ?><br>
<strong>Lokacija: </strong><?php the_sub_field( 'event_location' ); ?><br>
<strong>Organizator: </strong> <?php the_sub_field( 'event_organizer' ); ?>
</p>
</div>
<span class="path"><strong><a>
<?php echo get_the_author(); ?></a></strong> / <?php echo get_the_date(); ?>/
<strong>
<?php
$post_id = get_the_ID();
$post_categories = get_the_category( $post_id );
foreach ($post_categories as $category) {
echo '<a class="category-name">' . $category->cat_name . '</a> ';
}
?>
</strong>
</span>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php endif; ?>
<a href="<?php echo get_permalink(); ?>" class="btn btn-border">Pročitaj više</a>