Поддержка Проблемы и решения Как лучше реализовать рейтинг постов?

  • Задача следующая:

    Нужно выводить на главной странице лучшие публикации, в зависимости от рейтинга, который формируется следующим образом. Опишите пожалуйсто вкратце как лучше реализовать? может добавить поле в таблицу wp_posts rating и как то записывать, по таймеру рейтинг или ещё какие нибудь варианты есть?

    в базе данных поля rating нету, оно формируется в php скрипте, исходя из количество просмотров и лайков, как то так:

    $args = array(
    	'numberposts' => 10,
    	'order' => 'DESC'
    );
    
    $context['posts'] = get_posts($args);
    
    foreach ($context['posts'] as $post) {
    
    	$id_user = $post->post_author; // id пользователя
    
    	$post->category = get_the_category($post->ID);
    	$post->user_name = get_user_by('id', $id_user);
    	$post->publication_date = get_the_date();
    	$post->user_link = "http://lectionem.dssnc.ru/account/?user=" . $id_user . "";
    	$post->announcement = get_post_meta($post->ID, 'anons_66'); // поле анонс записи
    	$post->announcement[0] = crop_str(' ' . $post->announcement[0], 420);
    	$post->publication_date = str_replace('.', '/', $post->publication_date); // формируем строку в нужном формате
    
    	ob_start();
    	ob_implicit_flush(false);
    	$post->views = abc_postvievs_out(); // кол-во просмотров
    	$post->views = ob_get_clean();
    
    	$post->fio = get_user_meta($post->user_name->ID, 'fio_50');
    	$post->fio = $post->fio[0];
    
    	$post->like = count($wpdb->get_results("SELECT * FROM <code>wp_ratings</code> WHERE <code>rating_postid</code> = {$post->ID}")); // кол-во лайков
    	$post->rating = $post->like * 100 + (int)$post->views; // рейтинг постов
    }
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    может добавить поле в таблицу wp_posts rating и как то записывать, по таймеру рейтинг или ещё какие нибудь варианты есть?

    Лучше не добавлять в таблицу собственные столбцы, а использовать штатные произвольные поля, они для этого и предназначены.

    Спасибо, все предельно просто)

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Как лучше реализовать рейтинг постов?» закрыта для новых ответов.