ГлавнаяWordpressАвторские Функции → Функция вывода записей по количеству просмотров
GoGetLinks.net

Функция вывода записей по количеству просмотров

Комментариев: 124Функция вывода записей по количеству просмотров
  • Есть еще один вопросик.
    Каким образом можно в этой конструкции в выводе реализовать проверку: если есть миниатюра the_post_thumbnail('medium') то вывод миниатюры, а если нет - то вывод первого изображения.
    Сейчас вывод делается таким образом

    $out .= "\n<div class='lastnews'><a href='". get_permalink($pst->ID) ."'>". kama_thumb_img("post_id=$pst->ID &w=246 &h=132 &no_stub") ."</a>$Sformat</div>";

    Вы уж простите, что так много вопросов сегодня задаю

    ОТВЕТИТЬ ↓
    • Есть такой условный тег: has_post_thumbnail(). А дальше так:

      if( has_post_thumbnail( $pst->ID ) )
          $img = get_the_post_thumbnail($pst->ID, 'medium');
      else
          $img = kama_thumb_img("post_id=$pst->ID &w=246 &h=132 &no_stub");
      
      $out .= "\n<div class='lastnews'><a href='". get_permalink($pst->ID) ."'>". $img ."</a>$Sformat</div>";

      Короче можно записать так:

      $img = has_post_thumbnail( $pst->ID ) ? get_the_post_thumbnail($pst->ID, 'medium') : kama_thumb_img("post_id=$pst->ID &w=246 &h=132 &no_stub");
      
      $out .= "\n<div class='lastnews'><a href='". get_permalink($pst->ID) ."'>". $img ."</a>$Sformat</div>";
      ОТВЕТИТЬ ↓
  • Спасибо большое за очень ценные материалы, всегда ценный советы и оперативные ответы на вопросы в комментариях. ваш блог - лучший на тему Вордпресс. Очень познавательный.

    ОТВЕТИТЬ ↓
  • Привет Kama.
    У меня вопрос по поводу вывода миниатюр с этим кодом, вот мой код вывода последних постов:

    <?php
    $myposts = get_posts('numberposts=5');
    foreach($myposts as $post) :
    ?>
    <?php
    		$ibizmag_postimg_100px = get_post_meta($post->ID, "ibizmag_postimg_100px", true);
    		$ibizmag_post_excerpt = $post->post_content;
    		?>
            <div class="recent_content">
    		<div class="recent_image"><img src="<?php echo $ibizmag_postimg_100px; ?>" width="38" height="30" /></div>
    		<div class="recent_desc">
    			<h3><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
    			</div>
    
    		    <div class="recentcoms"><?php comments_popup_link('Комментарии отсутствуют', '1 Comment', '% Comments','','' ); ?> </div>
    	  </div>
            <?php endforeach; ?>
    

    Как заюзать сюда миниатюры ,
    Мои попытки методом тыка и втыка никак непомогли smile

    ОТВЕТИТЬ ↓
    • Привет Сергей *victory*

      Судя по коду, у каждого поста, нужно создать произвольное поле ibizmag_postimg_100px и в него записать ссылку (УРЛ) на картинку-миниатюру, тогда этот код выведет картинку. Но это не очень удобно, лучше воспользоваться встроенной функцией ВП the_post_thumbnail() или моим плагином kama thumbnail.

      П.С. я что-то не понял, почему коммент к этому посту? smile

      ОТВЕТИТЬ ↓
  • Доброе утро, Kama.

    Задумался собрать обе эти функции и сделать плагин, нечто подобное wp-postviews. Только гораздо проще. Стоит ли стараться?

    Конечно стоит.

    У меня как раз назрел вопрос примерно на эту тему. Я тут мучаюсь со слайдером вывода постов на главной странице. Вот и вопрос - хотела бы сделать вывод в слайдере анонсов поста по количеству просмотров. Но не очень получается вывести хоть что-то запрограммированное (еще пока новичек в ВП).

    в index.php:
    [здесь был код]

    в featured.php:

    <?php
    if(get_theme_option('featured_posts') != '') {
    ?>
    <script type="text/javascript">
    	function startGallery() {
    		var myGallery = new gallery($('myGallery'), {
    			timed: true,
    			delay: 6000,
    			slideInfoZoneOpacity: 1.0,
    			showCarousel: false
    		});
    	}
    	window.addEvent('domready', startGallery);
    </script>
    <div class="fullbox_excerpt">
    	<div class="fullbox_content">
    		<div class="smooth_gallery">
    			<div id="myGallery">
    
    				<?php
    				$featured_posts_category = get_theme_option('featured_posts_category');
    
    				if($featured_posts_category != '' && $featured_posts_category != '0') {
    					global $post;
    
    					 $featured_posts = get_posts("numberposts=5&&category=$featured_posts_category");
    					 $i = 0;
    					 foreach($featured_posts as $post) {
    					 	setup_postdata($post);
                            if ( version_compare( $wp_version, '2.9', '>=' ) ) {
                                $slide_image_full = get_the_post_thumbnail($post->ID,'large', array('class' => 'full'));
                                $slide_image_thumbnail = get_the_post_thumbnail($post->ID,'large', array('class' => 'thumbnail'));
                            } else {
                                $get_slide_image = get_post_meta($post->ID, 'featured', true);
                                $slide_image_full = "<img src=\"$get_slide_image\" class=\"full\" alt=\"\" />";
                                $slide_image_thumbnail = "<img src=\"$get_slide_image\" class=\"thumbnail\" alt=\"\" />";
                            }
    
    					  ?>
    					  <div class="imageElement">
    							<h3><?php the_title(); ?></h3>
    							<?php the_excerpt(); ?>
    
    							<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="open"></a>
    							<?php echo  $slide_image_full; ?>
    							<?php echo  $slide_image_thumbnail; ?>
    						</div>
    					 <?php }
    				} else {
    					for($i = 1; $i <=5; $i++) {
    						?>
    							<div class="imageElement">
    								<h3>This is featured post <?php echo $i; ?> title</h3>
    								<p>To set your featured posts, please go to your theme options page in wp-admin. You can also disable featured posts slideshow if you don't wish to display them.</p>
    								<a href="#" title="This is featured post <?php echo $i; ?>" class="open"></a>
    								<img src="<?php bloginfo('template_directory'); ?>/jdgallery/slides/<?php echo $i; ?>.jpg" class="full" alt="" />
    								<img src="<?php bloginfo('template_directory'); ?>/jdgallery/slides/<?php echo $i; ?>.jpg" class="thumbnail" alt="" />
    							</div>
    						<?php
    					}
    				}
    
    				?>
    			</div>
    		</div>
    	</div>
    </div>
    <?php } ?>
    

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

    ОТВЕТИТЬ ↓
    • Вам нужно изменить параметры получения постов в этой строке (featured.php):

      $featured_posts = get_posts("numberposts=5&&category=$featured_posts_category");

      К этим параметрам нужно добавить получение по произвольному полю, куда записываются просмотры (views):
      "numberposts=5&category=$featured_posts_category&meta_key=views"

      Параметры смотрите у меня на блоге.

      Также прочитайте последнюю статью на этом блоге о циклах, про get_posts().

      П.С. Код в index.php трогать не надо для решения вашей задачи.

      ОТВЕТИТЬ ↓
  • Спасибо smile Будем разбираться smile

    ОТВЕТИТЬ ↓
  • Автор, нужна помощь! Можно ли организовать вывод записей по их рейтингу, присвоенному путем выставления оценок юзерами (например на основе плагина WP-PostRatings) ? *wacko*

    ОТВЕТИТЬ ↓
    • Можно конечно, у этого плагина даже есть специальная функция вроде. Какая именно я не подскажу.

      ОТВЕТИТЬ ↓
      • Все-равно спасибо)

        ОТВЕТИТЬ ↓
  • Большое спасибо!!! *good*
    1) Помогите, пожалуйста! В php полный 0!!! Как дополнить вывод превьюшками картинок. В файле loop.php у меня

    <a href="<?php the_permalink();?>"><?php the_post_thumbnail(); ?></a>

    В файле function.php:

    if ( function_exists( 'add_theme_support' ) ) {
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 75, 55, true ); // Default thumbnails
    	add_image_size( 'large', 600, 250, true ); // Large thumbnails
    	add_image_size( 'medium', 285, 175, true ); // Medium thumbnails
    	add_image_size( 'small', 180, 125, true ); // Small thumbnails
    }

    Из комментариев Ксаны и ваших ответов… у меня ничего не вышло((
    2) В коде идет вывод css класса, адреса и title в одинарных ковычках

    <li class='li1'><a href='...' title='...'>

    как это исправить на двойные ковычки?

    ОТВЕТИТЬ ↓
    • 1. Не знаю почему у вас не работает, коды вроде правильные. Сюда загляните на всякий случай.

      2. Зачем ставить двойные кавычки? Если это оч нужно, то почему просто не поменять на двойные? Я что-то не понял проблемы.

      П.С. коммент совсем не по теме статьи...

      ОТВЕТИТЬ ↓
      • Все что написала выше (в моем комментарии) относится к статье «Функция вывода записей по количеству просмотров». Ваш код вывода записей по количеству просмотров у меня работает. Я хочу добавить вывод к ним превьюшек-картинок.

        <?php kama_get_most_viewed("num=10 & ПРЕВЬЮШКА format={a}{title}{/a} - Просмотров: {views}"); ?>

        Вывод превьюшек в моем шаблоне выводится

        <a href="<?php the_permalink();?>"><?php the_post_thumbnail(); ?></a>

        Помогите, пожалуйста! В php полный 0!!! *blush*

        ОТВЕТИТЬ ↓
        • В коде в строке:

          $out .= "\n<li class='$x'>$Sformat</li>";

          используйте get_the_post_thumbnail($pst->ID):

          $out .= "\n<li class='$x'>". get_the_post_thumbnail($pst->ID) ."$Sformat</li>";
          ОТВЕТИТЬ ↓
          • 1) Огромное спасибо!!! Все получилось!!! *good*
            А «про кавычки» я имела ввиду следующее:

            $a1 = "<a href=\"". get_permalink($pst->ID) ."\" title=\"$Title\">";

            Так можно? Делала методом «погугливания»

            2) А как сделать следующие:
            Вывод популярных статей находится в сайдбаре, например их 10шт.
            Переходя по ссылке «Популярная статья 1» исключить показ «Популярная статья 1» из блока в сайдбаре.
            В идеале было бы здорово, чтобы статей по-прежнему в сайдбаре (на странице отдельно взятого поста) оставалось 10шт. Т.е. статья заменялась 11 менее популярной. Как то так))

            Или ссылка на статью становилась не активной (без

            <a></a>

            ), тем более что при переходе на страницу отдельно взятого поста добавляется class="li1 current-item"

            Если у Вас есть такое решение, поделитесь, пожалуйста! smile
            Так же буду признательна если вы поделитесь своими наработками по юзабилити WP!

            ОТВЕТИТЬ ↓
          • Чтобы удалить из этого блока ссылку на текущую статью, добавьте в запрос такую строчку AND p.ID <> $post->ID:

            ....
            AND p.post_status = 'publish'
            AND p.ID <> $post->ID
            ...
            ОТВЕТИТЬ ↓
          • Вау! smile Спасибо!!!

            ОТВЕТИТЬ ↓
  • У меня почему-то эта функция не работает. Все другие, взятые с этого сайта, работают, а эта нет.

    ОТВЕТИТЬ ↓
  • заметила… со строчкой AND p.ID $post->ID на странице результатов поиска в случае «Ничего не найдено» в виджете не отображаются популярные статьи. А это можно исправить? *blush*

    ОТВЕТИТЬ ↓
    • Так попробуйте вписать: AND p.ID '$post->ID'.

      ОТВЕТИТЬ ↓
      • Большое спасибо! Все работает AND p.ID '$post->ID'

        ОТВЕТИТЬ ↓
  • Попробовал на новом шаблоне, почему-то не отображается количество, пустота. Код из прошлой статьи и этот код скопировал в функшн, а код на вывод скопировал в сайдбар (может надо подождать, пока много посетителей будет).

    ОТВЕТИТЬ ↓
    • Количество просмотров будет корректно отображаться только на страницах типа single.

      Проверьте произвольное поле у поста какого-нить — записываются ли в него просмотры: если пишутся, то вы как-то не так выводите или в шаблоне глюки, если не пишутся то проблема в этом коде или его установке.

      ОТВЕТИТЬ ↓
      • Спасибо большое! Немного подождав,все появилось, в сайдбаре так же хорошо отображается, как и в постах.
        Вот есть вопрос: можно ли добавить надписи "просмотров" и/или "комментариев", как переменную или будет проблема с окончаниями?

        ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?