Intereting Posts
загрузка файлов в папку uploads через ftp Удалите определенное имя тега из tagcloud Получите доступ к WordPress при выходе из системы Список файлов / папок, доступных для записи на веб-сервере? the_time () возвращает неверную дату / время (путь в будущем) Добавить кнопки быстрого вызова в редактор HTML Отображение тегов сообщения в таблице Как создать пользовательский плагин, который позволяет анонимным пользователям регистрироваться без регистрации? Неустранимая ошибка: вызов неопределенной функции wpsc_cart_item_count () Пользовательское полевое изображение вместо миниатюры сообщений на странице категории выдержка в символах Каждая новая запись / черновик имеет настраиваемую полевую переменную «yst_is_cornerstone», показывающая add_filter: Передача массива вместо функции обратного вызова? Лучше ли в долгосрочной перспективе использовать дату публикации или пользовательскую таксономию для сортировки / разделения сообщений по годам? удалить архив из url :: marketpress

Сделать несколько заданий на дату изменения без работы WordPress cron

Я пытаюсь рандомизировать несколько сообщений на моем сайте клиента, которые находятся на разных страницах каждый день. Поэтому я написал функцию, которая возвращает true при изменении даты, и если это так, я рандомизирую идентификаторы сообщений и сохраняю их в базе данных и использую одни и те же значения в течение дня. Итак, вот что я делаю,

function comi_date_change(){ date_default_timezone_set('Asia/Kolkata'); $current_date = date('j F Y'); $comi_current_date = get_option('comi_current_date'); if($current_date == $comi_current_date){ return FALSE; }else{ update_option('comi_current_date', $current_date ); return TRUE; } } 

Когда я проверяю условие mocomi_date_chage () как true или false, оно работает, но только один раз, поскольку в момент выполнения этой функции он сохраняет текущую дату в базе данных и возвращает false для остальных? Я не хочу использовать функцию работы cron WordPress wp_schedule_event() , есть ли альтернатива?

благодаря

Solutions Collecting From Web of "Сделать несколько заданий на дату изменения без работы WordPress cron"

Другой способ повторить задачу регулярно – но не на каждом обновлении страницы – без использования cron – использовать переходный процесс, который длится целый день. Это даже поможет вашему веб-сайту быстрее показать свою домашнюю страницу!

Переходным является способ WordPress для кэширования бит html. Это особенно полезно для сложных запросов к базе данных. С переходным процессом вы выполняете сложные запросы, а затем храните вывод html в базе данных за определенное количество времени. Таким образом, вы можете запустить свою функцию, сохранить ее выход и кэшировать ее на X секунд (день = 24 * 60 * 60 секунд = 86400).

Ниже приведен пример (уменьшенный) того, что вы должны использовать в своем шаблоне front-page.php.

 // Get any existing copy of our transient data if ( false === ( $special_query_results = get_transient( 'frontpage_random_posts' ) ) ) { // It wasn't there, so regenerate the data and save the transient $special_query_results = new WP_Query( 'cat=5&order=random&limit=1&orderby=date' ); set_transient( 'frontpage_random_posts', $special_query_results, 86400 ); } // Use the data like you would have normally... 

Дополнительная информация: http://wp.tutsplus.com/tutorials/getting-started-with-the-wordpress-transients-api-part-1/

Поскольку я должен проверить 8 условий, это то, что я сейчас делаю.

 add_action('init', 'comi_date_change'); function comi_date_change(){ date_default_timezone_set('Asia/Kolkata'); $current_date = date('j F Y'); $comi_current_date = get_option('comi_current_date'); if($current_date !== $comi_current_date){ update_option('comi_current_date', $current_date ); update_option('dc_home_mustview', '2'); update_option('dc_fun_mustview', '2'); update_option('dc_learn_mustview', '2'); update_option('dc_fun_subcat_one', '2'); update_option('dc_fun_subcat_two', '2'); update_option('dc_learn_subcat_one', '2'); update_option('dc_home_learn_subcat_two', '2'); update_option('dc_editors_picks', '2'); update_option('dc_home_factory', '2'); } } 

При каждом изменении даты он устанавливает значение 2 для каждого ключа, а затем я могу индивидуально проверять каждый из них для каждого условия.

 $date_change = get_option('dc_home_mustview'); if($date_change == 2){ //do stuff update_option('dc_home_mustview', 1); } 

и то же самое для условий отдыха на разных страницах.