У меня есть этот WP_Query:
$query = new WP_Query(
array(
'posts_per_page' => $postsCount,
'post_type' => 'events',
'taxonomy' => 'events-category',
'meta_key' => 'event-start-date',
'orderby' => $postsOrderBy,
'order' => $postsOrder,
'meta_query' => array(
array(
'key' => 'event-start-date',
'compare' => '>=',
'value' => date("Y-m-d"),
'type' => 'DATE',
),
),
),
);
if ($query->have_posts()):
while ($query->have_posts()): $query->the_post();
// content
endwhile;
wp_reset_query();
endif;
В 'контенте' у меня есть что-то вроде этого:
<?php
$post_object = get_field('event-ticket');
if( $post_object ):
$post = $post_object;
setup_postdata( $post );
$product->get_id(); ?>
<div class="e-post__details-item e-post__details-item--event-price"><i class="e-post__details-item--icon fas fa-ticket-alt"></i><?php woocommerce_get_template( 'single-product/price.php' ); ?></div>
<div class="l-cta l-cta--events">
<div class="e-post__event-stock-status">
<?php if ( $product->is_in_stock() ) {
echo '<div class="e-post__event-stock-status-available">'.__('Dostępne!', 'woocommerce').'</div>';
} elseif ( ! $product->is_in_stock() ) {
echo '<div class="e-post__event-stock-status-unavailable">'.__('Wyprzedane!', 'woocommerce').'</div>';
} ?>
</div>
</div>
<?php
wp_reset_postdata();
endif;
?>
get_field ('event-ticket') - тип поля постобъекта ACF с 'Post Object' вернуть объект. Это поле указывает на продукт WooCommerce для получения цены и количества товара.
WP_Query равен l oop CPT «События». В каждом случае я использую поле постобъекта для указания на продукт WooCommerce, который является тикетом.
ПРОБЛЕМА : Данные из 'event-ticket' работают на всех подстраницах (архивы, таксономия, страницы, посты cpt), но не на первой (главной) странице:
Uncaught Error
: Call to a member function get_id() on null
В чем может быть причина?