Переходные перерывы каждый раз, когда я перезагружаю окно браузера или добавляю новый пост в Wordpress - PullRequest
0 голосов
/ 17 января 2020

Я пытался настроить переходный процесс для моего пользовательского запроса, но он не работает должным образом. Целью переходного процесса является кэширование сообщений, которые выводятся (в случайном порядке со смещением 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' );

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...