Сегодня хочу поделится с вами очередной функцией вывода записей. Функция является прямым дополнением статьи "Считаем количество посещений страниц на WordPress без плагинов". В задачу функции входит вывод записей отсортированных по произвольному полю, в котором собирается количество просмотров каждого поста. Проще говоря, функция выводит самые ...
- Предыдущие по меткам
- Предыдущие записи
Ранее: Юзабилити
- Автоматическое растягивание поля (textarea) комментария ← 16.Июл.2010 // 4
- Перелинковка статей в WordPress (предыдущие записи из категории) ← 4.Май.2010 // 91
- Отключаем уведомления (пинги) на свои же посты ← 5 Июнь 2010 // 8
- Плагин для защиты от спама в комментариях WordPress ← 14 Июль 2010 // 80
- Автоматическое растягивание поля (textarea) комментария ← 16 Июль 2010 // 4

Есть еще один вопросик.
Каким образом можно в этой конструкции в выводе реализовать проверку: если есть миниатюра 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; ?>Как заюзать сюда миниатюры ,
Мои попытки методом тыка и втыка никак непомогли
Привет Сергей
Судя по коду, у каждого поста, нужно создать произвольное поле ibizmag_postimg_100px и в него записать ссылку (УРЛ) на картинку-миниатюру, тогда этот код выведет картинку. Но это не очень удобно, лучше воспользоваться встроенной функцией ВП the_post_thumbnail() или моим плагином kama thumbnail.
П.С. я что-то не понял, почему коммент к этому посту?
Доброе утро, Kama.
Конечно стоит.
У меня как раз назрел вопрос примерно на эту тему. Я тут мучаюсь со слайдером вывода постов на главной странице. Вот и вопрос - хотела бы сделать вывод в слайдере анонсов поста по количеству просмотров. Но не очень получается вывести хоть что-то запрограммированное (еще пока новичек в ВП).
в 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 трогать не надо для решения вашей задачи.
Спасибо
Будем разбираться 
Автор, нужна помощь! Можно ли организовать вывод записей по их рейтингу, присвоенному путем выставления оценок юзерами (например на основе плагина WP-PostRatings) ?
Можно конечно, у этого плагина даже есть специальная функция вроде. Какая именно я не подскажу.
Все-равно спасибо)
Большое спасибо!!!
1) Помогите, пожалуйста! В php полный 0!!! Как дополнить вывод превьюшками картинок. В файле loop.php у меня
В файле 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 в одинарных ковычках
как это исправить на двойные ковычки?
1. Не знаю почему у вас не работает, коды вроде правильные. Сюда загляните на всякий случай.
2. Зачем ставить двойные кавычки? Если это оч нужно, то почему просто не поменять на двойные? Я что-то не понял проблемы.
П.С. коммент совсем не по теме статьи...
Все что написала выше (в моем комментарии) относится к статье «Функция вывода записей по количеству просмотров». Ваш код вывода записей по количеству просмотров у меня работает. Я хочу добавить вывод к ним превьюшек-картинок.
<?php kama_get_most_viewed("num=10 & ПРЕВЬЮШКА format={a}{title}{/a} - Просмотров: {views}"); ?>Вывод превьюшек в моем шаблоне выводится
Помогите, пожалуйста! В php полный 0!!!
В коде в строке:
используйте get_the_post_thumbnail($pst->ID):
1) Огромное спасибо!!! Все получилось!!!
А «про кавычки» я имела ввиду следующее:
Так можно? Делала методом «погугливания»
2) А как сделать следующие:
Вывод популярных статей находится в сайдбаре, например их 10шт.
Переходя по ссылке «Популярная статья 1» исключить показ «Популярная статья 1» из блока в сайдбаре.
В идеале было бы здорово, чтобы статей по-прежнему в сайдбаре (на странице отдельно взятого поста) оставалось 10шт. Т.е. статья заменялась 11 менее популярной. Как то так))
Или ссылка на статью становилась не активной (без
), тем более что при переходе на страницу отдельно взятого поста добавляется class="li1 current-item"
Если у Вас есть такое решение, поделитесь, пожалуйста!
Так же буду признательна если вы поделитесь своими наработками по юзабилити WP!
Чтобы удалить из этого блока ссылку на текущую статью, добавьте в запрос такую строчку AND p.ID <> $post->ID:
Вау!
Спасибо!!!
У меня почему-то эта функция не работает. Все другие, взятые с этого сайта, работают, а эта нет.
заметила… со строчкой AND p.ID $post->ID на странице результатов поиска в случае «Ничего не найдено» в виджете не отображаются популярные статьи. А это можно исправить?
Так попробуйте вписать: AND p.ID '$post->ID'.
Большое спасибо! Все работает AND p.ID '$post->ID'
Попробовал на новом шаблоне, почему-то не отображается количество, пустота. Код из прошлой статьи и этот код скопировал в функшн, а код на вывод скопировал в сайдбар (может надо подождать, пока много посетителей будет).
Количество просмотров будет корректно отображаться только на страницах типа single.
Проверьте произвольное поле у поста какого-нить — записываются ли в него просмотры: если пишутся, то вы как-то не так выводите или в шаблоне глюки, если не пишутся то проблема в этом коде или его установке.
Спасибо большое! Немного подождав,все появилось, в сайдбаре так же хорошо отображается, как и в постах.
Вот есть вопрос: можно ли добавить надписи "просмотров" и/или "комментариев", как переменную или будет проблема с окончаниями?