Лучший способ реализовать функцию открытия / закрытия метки - PullRequest
1 голос
/ 19 мая 2019

У меня есть страница со списком WordPress, где перечислены 200 магазинов, поэтому у меня есть функция PHP, которая показывает ярлык открытия / закрытия в зависимости от рабочего времени:

$status = open_close_status($restaurant_id);
<span class="restaurant-status <?php echo $status; ?>"><?php echo $status; ?></span>

Проблема в том, что метки кэшируются и остаются неизменными даже при перезагрузке страницы. Каков наилучший способ реализовать такую ​​функцию, чтобы PHP оставался динамичным? необходимо исключить из кэширования только этот фрагмент кода, но остальная часть страницы должна быть кэширована.

1 Ответ

1 голос
/ 19 мая 2019

Страницы с динамическим содержимым не должны кэшироваться на сервере, или их кэш должен обновляться сервером (возможно, задание cron) каждые пять минут или около того.Похоже, у вас есть проблема с запросом.Возможно, лениво загружать любые рестораны после определенной точки и удостовериться, что вы не используете мета-запрос.

Однако, чтобы решить проблему в том виде, в каком она есть, вам нужно динамически обновлять статусы с помощью JavaScript,в частности AJAX.Взгляните на документацию AJAX WP , чтобы получить краткий обзор о том, как она работает.

По сути, вам придется заменить ваш статус HTML / PHP на <span class="restaurant-status" data-restaurant-id="<?php echo $restaurant_id;"></span>.Затем оттуда вы можете перехватить и просмотреть все статусы ресторана с помощью JavaScript и передать идентификаторы в функцию open_close_status (не забудьте добавить их в хук действия wp_ajax_nopriv_, измените класси измените внутренний текст.

Тем не менее, я по-прежнему считаю, что в первую очередь следует учитывать медлительность ваших страниц, вне кэширования сервера. Ленивая загрузка, проверка сжатых изображений, в значительной степени не зависящая от медленных / раздутых плагинов,и т. д. WordPress должен иметь возможность очень быстро выплевывать 10, 50, 100 или даже 200 сообщений. (Как пример, у меня есть сайт, над которым я работаю, с 400 000 записей в таблице сообщений, 35 000 - это компании).", а 350 000 - это" отзывы ", связанные друг с другом, и они могут выплюнуть 250 компаний и их отзывы менее чем за полсекунды.)

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