Я пытался настроить переходный процесс для моего пользовательского запроса, но он не работает должным образом. Целью переходного процесса является кэширование сообщений, которые выводятся (в случайном порядке со смещением 4) в течение дня, прежде чем они будут изменены на другие сообщения.
Когда я впервые устанавливаю переходный процесс, добавьте пользовательский запрос в том, что я хочу кешировать, а затем добавить l oop и разместить данные ниже, переходный процесс, кажется, работает так, как я хочу. Однако, когда я обновляю sh окно браузера, кажется, что переходный процесс прерывается, что также разрывает связь между пользовательским запросом и l oop. В результате я получаю следующее сообщение об ошибке: Fatal error: Uncaught Error: Call to a member function have_posts() on null
. Я удалил несколько переходных процессов, которые я создал ранее, и попытался установить новые переходные процессы, чтобы посмотреть, решит ли это проблему, но это не так.
Что я делаю не так?
Вот переходный процесс, который я пытаюсь настроить ниже:
<?php
$clients = get_transient( 'projects_random_order' );
if ( false === $clients) {
$posts_ids = wp_list_pluck( $projects_query->posts, 'ID' );
$clients_array = array(
'post_type' => 'projects',
'posts_per_page' => 4,
'post_status' => 'publish',
'orderby' => 'rand',
'post__not_in' => $posts_ids
);
$clients_query = new WP_Query( $clients_array );
set_transient( 'projects_random_order', $clients, DAY_IN_SECONDS);
}
if( $clients_query->have_posts() ) {
while( $clients_query->have_posts() ) {
$clients_query->the_post();
$client_logo = get_the_post_thumbnail_url(get_the_ID(),'full'); ?>
<div class="col-lg-3 col-md-4 col-sm-12 client-logo">
<a href="<?php echo get_field('link_if_applicable');?>" rel="external" target="_blank">
<div class="embed-responsive embed-responsive-16by9 client-logo-image" style="background-image: url(<?php echo $client_logo; ?>);">
<div class="client-logo-overlay">
</div>
</div>
<div class="client-name">
<h2><?php the_title(); ?></h2>
</div>
</a>
</div>
<?php }
}
delete_transient( 'cached_projects' );
delete_transient( 'cached_projects_two' );
delete_transient( 'cached_projects_three' );
delete_transient( 'cached_projects_four' );
delete_transient( 'random_projects' );
delete_transient( 'random_projects_two' );
delete_transient( 'projects_random' );
?>