• Добрый день, уважаемые спецы!

    Вопрос собственно такой: Как вывести популярные записи на главной странице без плагина?

    Естественно я погуглил и у яши тоже спросил:) Нашел пару вариантов, но с точки зрения функциональности — не совсем подходят эти варианты. Т.к. я бы хотел вывести не только заголовок Популярной записи… В общем, вот критерии:

    1. Миниатюра записи;
    2. Заголовок записи;
    3. Текст записи (вывожу первый абзац)
    4. Количество Просмотров записи
    5. Количество Комментариев записи
    6. Автор
    7. Рубрика
    8. Метки

    Кто поможет? Спасибо!

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Нашел решение! Но нужна помощь по доработке!

    Описание: выводит популярные статьи по количеству просмотров. Использованием custom fields, что позволяет при необходимости вручную скорректировать количество просмотров конкретной статьи.

    Код:

    — Код который надо добавить в functions.php

    function setPostViews($postID) {
        $count_key = 'post_views_count';
        $count = get_post_meta($postID, $count_key, true);
        if($count==''){
            $count = 0;
            delete_post_meta($postID, $count_key);
            add_post_meta($postID, $count_key, '0');
        }else{
            $count++;
            update_post_meta($postID, $count_key, $count);
        }
    }
    function getPostViews($postID){
        $count_key = 'post_views_count';
        $count = get_post_meta($postID, $count_key, true);
        if($count==''){
            delete_post_meta($postID, $count_key);
            add_post_meta($postID, $count_key, '0');
            return "0";
        }
        return $count;
    }

    — Вызываем счетчик в index.php внутри цикла loop

    <?php setPostViews(get_the_ID()); ?>

    — Собственно HTML код

    <div class="widget popular">
        <h3 class="widget-title">Популярные статьи</h3>
        <ul>
            <?php
                $args = array( 'numberposts' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
                query_posts($args);
                while ( have_posts() ) : the_post();
            ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
            <?php endwhile; wp_reset_query(); ?>
        </ul>
    </div>

    Вариант работает, все ок! Но данное решение выводит только заголовки статей, а мне бы хотелось организовать полноценный вывод постов:

    1. Миниатюра записи;
    2. Заголовок записи;
    3. Текст записи (вывожу первый абзац)
    4. Количество Просмотров записи
    5. Количество Комментариев записи
    6. Автор
    7. Рубрика
    8. Метки

    Помогите доделать, плиз! Зарание БОЛЬШУЩИЕ спасибо!

    Здраствуй
    Извени но счас могу дат токо совет:
    Ты докопался и сделал лвиную долю работы. Ты имееш список своих постоф и их ID.
    Все что осталос так ето наити и вывести функцею по каждому твоему пункту.
    А они все ест и наити их можеш на http://codex.wordpress.org/ или в бей
    те же пункты тока на EN в гоогл.

    1) get_the_post_thumbnail
    2) get_the_title
    3) the_content
    и так дале…

    бустрее будет есле доделаеш сам.

    Методом научного тыка, организовал вывод данных таким способом:

    <div class="widget popular">
        <h3 class="widget-title">Популярные статьи</h3>
        <ul>
            <?php
                $args = array( 'numberposts' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
                query_posts($args);
                while ( have_posts() ) : the_post();
            ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    	<li><?php the_post_thumbnail ('thumbnail'); ?></li>
    	<li>Автор: <?php the_author_link(); ?></li>
            <li>Текст записи:<?php the_content(); ?></li>
    	<li>Количество Просмотров записи:<?php echo get_post_meta($post->ID, 'post_views_count', true); ?></li>
    	<li>Количество Комментариев записи:<?php comments_number('пока нет комментариев', '1 комменатрий', '% комментариев'); ?></li>
    	<li>Рубрика: <?php the_category(' '); ?> </li>
    	<li>Метки:<?php the_tags(' ', ', ', '<br />'); ?> </li>
    	<li>Дата:<?php the_date(); ?></li>
    	<li></li>
    
    <?php endwhile; wp_reset_query(); ?>
        </ul>
    </div>

    ВОПРОС: Насколько это правильно и корректно? Может есть способ более лаконичный?

    ПРОБЛЕМА: Счетчик просмотров записи, после каждого обновления, добавляет 2 просмотра. Т.е. было 100 — обновил страницу — стало 102 — еще раз обновил, получилось 104…

    Помойму так быть не должно!? Код <?php endwhile; wp_reset_query(); ?> обнуляет счетчик, насколько я понял используется если на странице еще что то считается…

    Жду ваших комментариев! Заранее, Спасибо!

    Кажется, что проблема со счетчиком это уже вопрос новой темы…

    Вопрос с выводом популярных записей можно считать решенным, т.к. код потихоньку собрал — записи выводятся.

    Всем кто участвовал — Спасибо!

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