@HeadOnFire Понятно, значит надо стремится к тому чтобы не использовать их. Я вот думаю метки на которые пользователь подписывается заносить в дополнительное поле пользователя, после чего выводить его в массив и подставлять в query, правильно ли это?
@HeadOnFire и таки да, я путал с кешированием страниц, нужно дописать 'cache_results' => true, или я опять не в ту сторону смотрю? Если не трудно, дайте почитать про данное кеширование
@AlexPTS Посмотрел видео, возник вопрос. Тоесть если я использую pre_get_posts, то на главной странице уже будет выводиться то что заданной в аргументах?
Что если мне нужно создать страницу my-page.php, и там изменить основной запрос? А остальные страницы оставить по дефолту.
Спасибо за столь обширный вопрос, т.е. если использовать через хук то проблем со скорость загрузки не будет? Я тут вспомнил что еще будет 3 разных типа записей, вот конечный код
// WP_Query arguments
$args = array (
'post_type' => array('post','audio','video'),
'post_status' => 'publish',
'tag_id' => '1,35,10,15,11,2,5,6,95,258,354,218,188,55,66,70,77,78,65,33',
'author' => '55,89,10,15,11,1,5,111,588,888,666,33,444,458,134,341,66',
);
// The Query
$query = new WP_Query( $args );
Ну и данный запрос без кеширования, так как новости обновляются часто, надо чтобы лента была актуальной, и лента уникальная у каждого пользователя. Я не силен в бд, поэтому мне сложно оценить перспективы. Но если использовать данные аргументы внутри functions.php нагрузки сильной не будет?
Вот примерный запрос
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND 0 = 1 AND wp_posts.post_author IN (55,89,10,15,11,1,5,111,588,888,666,33,444,458,134,341,66) AND wp_posts.post_type IN ('post', 'audio', 'video') AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
Это wp_query переведенный в sql, думаю это окончательный вид. Не будет тормозить страница, если загружать 10 постов?
Если использовать все по дефолту, как дает wordpress, с моим примером, долго ли оно будет обрабатывать, чтобы вывести 10 последних постов? Или это будет незаметно пользователю?
И еще будет 3 разных типа записи, и они тоже будут в аргументах.
@gwer На сколько правильно будет если:
Здоровье или еще что то там, изменяется при
- Обновлении страницы пользователем
- При взаимодействии других пользователей с конкретным пользователем
Или все же лучше по таймеру обновлять всем, кто онлайн?
@gwer Просто для интереса скачал скрипт игры Травиан, там ничего кроме php нету. С постройками все уже понятно, а вот например здоровье как восстанавливается?
@gwer Если долгоживущий скрипт то что сильнее нагружает, он или одноразовый по крону? С учетом того, что действий может быть много у разных пользователей.