- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем доброго времени суток! Прошу помощи! Как можно решить такую проблему: необходимо добавить сортировку записей по числу просмотров за определённый период, например 5 дней. В данный момент я имею такой код, который просто сортирует записи по числу просмотров за все время.
Если у вас нигде не хранится число просмотров за каждый день - то ваша задача невыполнима.
Предположим, что хранится? Как тогда должен выглядеть код?
Зависит от реализации. Самое простое, наверно, это раз в сутки аггрегировать число просмотров и записывать их в какое-то поле метаданных - типа post_views_count_5days, тогда у вас код будет такой же как сейчас, за исключением 'meta_key' => 'post_views_count_5days'
Но поскольку в WP, насколько я знаю, данные о просмотрах по дням не хранятся - вам надо будет как-то прикручивать систему, кототрая будет эти данные считать и записывать в этот meta_key - post_views_count_5days
Зависит от реализации. Самое простое, наверно, это раз в сутки аггрегировать число просмотров и записывать их в какое-то поле метаданных - типа post_views_count_5days, тогда у вас код будет такой же как сейчас, за исключением 'meta_key' => 'post_views_count_5days'
Но поскольку в WP, насколько я знаю, данные о просмотрах по дням не хранятся - вам надо будет как-то прикручивать систему, кототрая будет эти данные считать и записывать в этот meta_key - post_views_count_5days
Это трудно реализовать? Сколько это может стоить?
На первый взгляд не трудно, но лучше у спецов по WP узнавать.
Без понятия.
Посмотрите тут http://font-family.ru/query-post-vse-mozhet-luchshie-zapisi-za-poslednij-mesyac/
Посмотрите тут http://font-family.ru/query-post-vse-mozhet-luchshie-zapisi-za-poslednij-mesyac/
Там выбираются посты по дате публикации, совсем не то.
Там выбираются посты по дате публикации, совсем не то.
Недавно решал похожую, слегка даже усложненную задачу.
В вашем случае все просто.
Формируйте запрос и сразу сортируйте по доп-полям (я так понимаю, что в доп-поле вы храните число просмотров? Т.е что то типа того будет.
$events_args = array(
'numberposts' => -1,
'offset' => 0,
'category' => get_cat_ID('События'),
'meta_key' => 'mer_nastr_data',
'orderby' => 'meta_value',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish'
);
а потом просто посты загребаем.
$events = get_posts($events_args);
PS mer_nastr_data - это имя доп поля.
В том то вся и проблема, что у меня посты реализованы через стандартные средства WP. Прописаны GetPost и SetPost. Сортировка идет через post_view_count. Как мне научить сайт сохранять данные о просмотрах за нужное мне время отдельно?
<?php
// Создадим новую функцию которая добавит условие where в запрос
function filter_where( $where = '' ) {
// за последние 5 дней
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-5 days')) . "'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );
query_posts( $query_string . 'meta_key=post_views_count&orderby=meta_value_num&order=DESC' );
remove_filter( 'posts_where', 'filter_where' );
?>